Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: BPSK carrier recovery
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
maxfox2k
уважаемый all

собственно кто-нибудь может обяснить по-простому как ето стделать?

исходные данные: symbol rate 256 KHz
несущая 950-1500 MHz
несущая может плавать в пределе 1 MHz

какои алгоритм есть, чтобы понять, локалная отстаёт или опережает несущую принятого сигнала?
fontp
Цитата(maxfox2k @ Apr 28 2008, 14:27) *
уважаемый all

собственно кто-нибудь может обяснить по-простому как ето стделать?

исходные данные: symbol rate 256 KHz
несущая 950-1500 MHz
несущая может плавать в пределе 1 MHz

какои алгоритм есть, чтобы понять, локалная отстаёт или опережает несущую принятого сигнала?


Ну разные есть. С обратной связью (feedback) и без (feedforward). C обратной связью - это ФАПЧ.
Без обратной связи - прямые алгоритмы. Среди прямых алгоритмов опять подходы разнятся

1) data driven. Это когда данные известны (преамбула). Тогда модуляцию (на преамбуле) снимают и остаётся выявить комплексный тон

2) слепые. Сигнал возводят в квадрат (для BPSK) и модуляция опять же исчезает. Опять остаётся определить частоту комплексной экспоненты удвоеной частоты. Всякое возведение в степень ведёт к энергетическим потерям, но приходится чем-то поступиться, если известной преамбулы нет

Для определения частоты комплексной экспоненты опять же предложено много эффективных методов. Применение того или иного зависит от компромисса : быстродействие против snr
maxfox2k
Цитата(fontp @ Apr 28 2008, 13:40) *
Ну разные есть. С обратной связью (feedback) и без (feedforward). C обратной связью - это ФАПЧ.
Без обратной связи - прямые алгоритмы. Среди прямых алгоритмов опять подходы разнятся

1) data driven. Это когда данные известны (преамбула). Тогда модуляцию (на преамбуле) снимают и остаётся выявить комплексный тон

2) слепые. Сигнал возводят в квадрат (для BPSK) и модуляция опять же исчезает. Опять остаётся определить частоту комплексной экспоненты удвоеной частоты. Всякое возведение в степень ведёт к энергетическим потерям, но приходится чем-то поступиться, если известной преамбулы нет

Для определения частоты комплексной экспоненты опять же предложено много эффективных методов. Применение того или иного зависит от компромисса : быстродействие против snr


1. preambuly net.

2. est li primer, blok-shema ili ponyatnoe opisanie algoritma?
fontp
Цитата(maxfox2k @ Apr 28 2008, 15:19) *
1. preambuly net.

2. est li primer, blok-shema ili ponyatnoe opisanie algoritma?


Преамбулы нет - значит нужно снимать модуляцию, возводя сигнал в квадрат.

Изощрённый быстрый алгоритм определения частоты немодулированой несущей здесь внизу приатачен

Работает идеально при не слишком низких отношениях snr

При очень низких snr используют преобразование Фурье, полученные отсчёты так или иначе интерполируют и находят максимум построеной модели - там и есть частота

Типа как здесь

http://home.comcast.net/~kootsoop/EricJ2/index.htm

При совсем низких SNR у меня получались более устойчивые решения, если дополнить блок данных нулями вдвое, сделать ДПФ, найти максимум и по трём точкам построить параболическую интерполяцию аналитически. Аргумент максимума параболы и есть искомая частота.

Можно использовать ФАПЧ для захвата частоты. Но время захвата будет всегда хуже, чем у методов feed forward. Поэтому если требуется минимизировать время измерения частоты/фазы, то сначала используют метод feed forward, а потом уже запускают ФАПЧ, инициировав ему значения частоты и фазы, найденными на первом этапе
petrov
Вот посмотрите модели:
http://electronix.ru/forum/index.php?showtopic=23652

Практическая книга:
http://rapidshare.com/files/45943139/%%%%%...Nezami.rar.html
MKS
Приветствую всех. Решил спросить в этой теме.
Начитавшись Скляра с Незами сделал простую модельку петли костаса для QPSK с детектором фазы в виде . У меня вопрос какие потери SNR будут в этом случае? И как это вобще это можно оценить?
Моих знаний для этого пока малавато. 05.gif
fontp
Цитата(MKS @ Apr 29 2008, 13:05) *
Приветствую всех. Решил спросить в этой теме.
Начитавшись Скляра с Незами сделал простую модельку петли костаса для QPSK с детектором фазы в виде . У меня вопрос какие потери SNR будут в этом случае? И как это вобще это можно оценить?
Моих знаний для этого пока малавато. 05.gif


Незами не называет схему с арктангенсом - петлёй Костаса, это Вы сами придумали :-)
Петля Костаса - это схема с умножением функций от I и Q, e= sign(I)*Q-sign(Q)*I для QPSK
Хотя известно, что схема с арктангенсом имеет такие же точно потери как петля Костаса
Я как то приатачивал статью про энергетические потери QPSK
http://electronix.ru/forum/index.php?act=A...st&id=18829

Обратите внимание, что оптимально с точки зрения потерь модифицировать Костас в
e= th(I)*Q - th(Q)*I (энергия сигнала нормирована на дисперсию шума)

при низких SNR. Для реализации это бывает часто сложновато
Математика там действительно сложноватая, чтобы самому выводить, да и хрен с ним, всё сам не выведешь :-) если иметь в виду всякую нелинейщину, жизнь слишком коротка
petrov
Цитата(MKS @ Apr 29 2008, 13:05) *
Приветствую всех. Решил спросить в этой теме.
Начитавшись Скляра с Незами сделал простую модельку петли костаса для QPSK с детектором фазы в виде . У меня вопрос какие потери SNR будут в этом случае? И как это вобще это можно оценить?
Моих знаний для этого пока малавато. 05.gif


Практически просто оценить, уменьшается евклидово расстояние на приёме между точками созвездия, на сколько надо SNR поднять чтобы получить такое же расстояние как и в случае идеальной синхронизации это и есть потери. Можно BER посчитать и сравнить с теоритическими BER для идеальной синхронизации.
maxfox2k
через фурье удаётся довольно точно подстроить несущую, если изначално она была смещена довольно далеко.
но затем никак не могу разобратся что делать дальше.

что даёт возведение сигнала в квадрат? собственно что делать, чтобы понять как изменяется несущая?
пытаюс делат следующее:
нахожу период символа, если он начинает уменшатся, пытаюс увеличить несущыю. если становится есче хуже (символ становится короче), то меняю направление и уменшаю несущую.
делаю всё в фпга. алгоритм правильный?

можете обяснить, что такое петля костаса и как исползовать этот алгоритм?
fontp
Цитата(maxfox2k @ May 8 2008, 09:04) *
можете обяснить, что такое петля костаса и как исползовать этот алгоритм?


Рис. 3-8 в книге Низами. Для BPSK ошибка фазового детектора фапч даётся

e= i*q

Про QPSK я уже написал выше

ДПФ может дать любую нужную теоретически достижимую точность (CRLB) измерения несущей. Посредством интерполяции,
как здесь
http://home.comcast.net/~kootsoop/EricJ2/index.htm
Раз у вас преамбулы нет и нужно умножать частоту на 2, чтобы снять модуляцию, то максимальный диапазон измерения частоты равен половине от частоты Найквиста
petrov
Цитата(maxfox2k @ May 8 2008, 09:04) *
через фурье удаётся довольно точно подстроить несущую, если изначално она была смещена довольно далеко.
но затем никак не могу разобратся что делать дальше.

что даёт возведение сигнала в квадрат? собственно что делать, чтобы понять как изменяется несущая?
пытаюс делат следующее:
нахожу период символа, если он начинает уменшатся, пытаюс увеличить несущыю. если становится есче хуже (символ становится короче), то меняю направление и уменшаю несущую.
делаю всё в фпга. алгоритм правильный?

можете обяснить, что такое петля костаса и как исползовать этот алгоритм?


Рано в FPGA лезть, читайте Низами и моделируйте в симулинке, посмотрите модели выложенные, возведение в квадрат даёт умножение фазы на 2 и для BPSK даёт устранение модуляции, можно непосредственно вычислять аргумент входного вектора и умножать на 2 без всяких возведений в квадрат , таким образом выделяется несущая, ещё надо позаботиться о символьной синхронизации. Фурье здесь вообще не нужно.
fontp
Цитата(petrov @ May 8 2008, 10:06) *
Рано в FPGA лезть, читайте Низами и моделируйте в симулинке, посмотрите модели выложенные, возведение в квадрат даёт умножение фазы на 2 и для BPSK даёт устранение модуляции, можно непосредственно вычислять аргумент входного вектора и умножать на 2 без всяких возведений в квадрат , таким образом выделяется несущая, ещё надо позаботиться о символьной синхронизации. Фурье здесь вообще не нужно.



Это вряд ли, что он обойдётся без Фурье. Расстройка несущей предельно велика по отношению к символьной. ( Задача полностью масштабируется по символьной). Символьная 256кгц Пусть он использует 8 отсчётов на символ.Самплинг Fs = 2 мгц. Найквист = 1 мгц. После умножения частоты на 2 он увидит только +-500 кгц. На 4 точках на символ он этот диапазон вообще не увидит, нужно 8, а лучше 12-16 )))

Т.е. нужен поиск несущей в полном диапазоне частот. От -Найквиста до + Найквиста. Никакой фапч хвататься не будет.
При предельно низких snr это только Фурье. Причём, поскольку полного диапазона - то БПФ
При предельно низких snr (ebno<5) корреляционные методы (как тот же DMA-RAD) не работают
Разве что у него рабочий ebno 8-10 дб
maxfox2k
Цитата(petrov @ May 8 2008, 09:06) *
Рано в FPGA лезть, читайте Низами и моделируйте в симулинке, посмотрите модели выложенные, возведение в квадрат даёт умножение фазы на 2 и для BPSK даёт устранение модуляции, можно непосредственно вычислять аргумент входного вектора и умножать на 2 без всяких возведений в квадрат , таким образом выделяется несущая, ещё надо позаботиться о символьной синхронизации. Фурье здесь вообще не нужно.


модели для bpsk без несущей.

с залочиванием фазы модулируемого сигнала проблем нет.

и может обяснишь, как без фурье можно подстроить несущую, сдвинутую скажем на 1.5 mhz?
petrov
Цитата(fontp @ May 8 2008, 10:38) *
Это вряд ли, что он обойдётся без Фурье. Расстройка несущей предельно велика по отношению к символьной. ( Задача полностью масштабируется по символьной). Символьная 256кгц Пусть он использует 8 отсчётов на символ.Самплинг Fs = 2 мгц. Найквист = 1 мгц. После умножения частоты на 2 он увидит только +-500 кгц. На 4 точках на символ он этот диапазон вообще не увидит

Т.е. нужен поиск несущей в полном диапазоне частот. От -Найквиста до + Найквиста. Никакой фапч хвататься не будет.
При предельно низких snr это только Фурье. Причём, поскольку полного диапазона - то БПФ
При низких snr корреляционные методы (как тот же DMA-RAD) не работают


Да действительно, забыл уже про первое сообщение. Тут вопрос есть обосновано ли такая нестабильность несущей и полоса сигнала, при наличии соседних каналов как все эти поиски работать будут?


Цитата(maxfox2k @ May 8 2008, 10:47) *
и может обяснишь, как без фурье можно подстроить несущую, сдвинутую скажем на 1.5 mhz?


Поиском обычным, в телевизоре настраивали каналы?
maxfox2k
Цитата(fontp @ May 8 2008, 09:38) *
Это вряд ли, что он обойдётся без Фурье. Расстройка несущей предельно велика по отношению к символьной. ( Задача полностью масштабируется по символьной). Символьная 256кгц Пусть он использует 8 отсчётов на символ.Самплинг Fs = 2 мгц. Найквист = 1 мгц. После умножения частоты на 2 он увидит только +-500 кгц. На 4 точках на символ он этот диапазон вообще не увидит, нужно 8, а лучше 12-16 )))

Т.е. нужен поиск несущей в полном диапазоне частот. От -Найквиста до + Найквиста. Никакой фапч хвататься не будет.
При предельно низких snr это только Фурье. Причём, поскольку полного диапазона - то БПФ
При предельно низких snr (ebno<5) корреляционные методы (как тот же DMA-RAD) не работают
Разве что у него рабочий ebno 8-10 дб


сэмплирование 16 mhz
fft на 128 точек / 32к точка
делаю грубую подстройку.
с qpsk можно определить, несушая отстаёт или опережает. использую угол текущеи точки и угол, где, должна была быть.
в bpsk q условно 0, поетому по углу не получается определить опережение или опаздывание несущеи.
fontp
Цитата(petrov @ May 8 2008, 10:51) *
Да действительно, забыл уже про первое сообщение. Тут вопрос есть обосновано ли такая нестабильность несущей и полоса сигнала, при наличии соседних каналов как все эти поиски работать будут?


Нестабильность несущей обосновывается дешёвыми кварцами на ВЧ. Температурная стабилизация стоит очень дорого.
Поэтому в автономной аппаратуре она всегда высока, нестабильность. Другое дело системы, когда кварцы элементов системы синхронизируются отдельно. Как требует например стандарт DVB, пилот-сигналами

Поиски отлично работают если полоса правильно отфильтрована. Проверено.
Единственная неприятность при слепой обработке - враг легко может поставить синусовую помеху - и всякие интерполяции перестанут работать сразу. Порвать такую связь легко
В случае использования псевдослучайных преамбул нет даже такой опасности. Кроме того и диапазон измеряемых частот в два (М) раз больше. В приличной аппаратуре вообще дожны использоваться data-driven алгоритмы, а не слепые, imho
petrov
Цитата(fontp @ May 8 2008, 10:58) *
В приличной аппаратуре вообще дожны использоваться data-driven алгоритмы, а не слепые, imho

И дешёвые кварцы... :)
Вобщем не писал автор про борьбу с врагами, может хватит ему генератора пилы в фапч чтоб по диапазону пробежаться.
maxfox2k
Цитата(fontp @ May 8 2008, 09:58) *
Нестабильность несущей обосновывается дешёвыми кварцами на ВЧ. Поэтому в автономной аппаратуре она всегда высока. Другое дело системы, когда кварцы элементов системы синхронизируются отдельно. Как требует например стандарт DVB, пилот-сигналами

Поиски отлично работают если полоса правильно отфильтрована. Проверено.
Единственная неприятность при слепой обработке - враг легко может поставить синусовую помеху - и всякие интерполяции перестанут работать сразу. Порвать такую связь легко
В случае использования псевдослучайных преамбул нет даже такой опасности. Кроме того и диапазон измеряемых частот в два (М) раз больше. В приличной аппаратуре вообще дожны использоваться data-driven алгоритмы, а не слепые, imho

так собственно и есть, синхронизатсия происходит по данным.
в обсчем делаем спутниковыи приёмник.
maxfox2k
Цитата(petrov @ May 8 2008, 10:12) *
И дешёвые кварцы... smile.gif
Вобщем не писал автор про борьбу с врагами, может хватит ему генератора пилы в фапч чтоб по диапазону пробежаться.

может я не очень правилно сформулировал проблему.
несущая может менятся от частоты канала плюс/минус 1.5 mhz
весь диапазон около 900-1500 mhz

есть возможность подстраивать локальную несущую с шагом 80-100hz

сначала грубо +/-32к находится несущая через бпф
с qpsk вроде как работает, правда есть одна проблема.
с bpsk вообще трабл.

по идее можно модуль I с символ реитом пропустить через LP filter и замерять период.
изменяя частоту локальнои несущеи и выбирать направление, где период наибольшии.
будет ли работать такое?
petrov
Цитата(maxfox2k @ May 8 2008, 15:27) *
может я не очень правилно сформулировал проблему.
несущая может менятся от частоты канала плюс/минус 1.5 mhz
весь диапазон около 900-1500 mhz

есть возможность подстраивать локальную несущую с шагом 80-100hz

сначала грубо +/-32к находится несущая через бпф
с qpsk вроде как работает, правда есть одна проблема.
с bpsk вообще трабл.

по идее можно модуль I с символ реитом пропустить через LP filter и замерять период.
изменяя частоту локальнои несущеи и выбирать направление, где период наибольшии.
будет ли работать такое?


Вобщем для символьной частоты 256 килогерц и нестабильности несущей плюс/минус 1.5 mhz обычные методы синхронизации не работают, вы просто в полосу согласованного фильтра не попадаете, делайте дополнительно поиск, например в цифре гетеродин по пилообразному закону изменяет частоту плюс/минус 1.5 mhz достаточно медленно чтобы синхронизация успевала срабатывать, как только настроились этот гетеродин отключаете, критерием отключения служит детектор качества сигнала, например EVM, или лок-индикторы синхронизаций. Промоделируйте это в симулинке!
maxfox2k
Цитата(petrov @ May 8 2008, 15:07) *
Вобщем для символьной частоты 256 килогерц и нестабильности несущей плюс/минус 1.5 mhz обычные методы синхронизации не работают, вы просто в полосу согласованного фильтра не попадаете, делайте дополнительно поиск, например в цифре гетеродин по пилообразному закону изменяет частоту плюс/минус 1.5 mhz достаточно медленно чтобы синхронизация успевала срабатывать, как только настроились этот гетеродин отключаете, критерием отключения служит детектор качества сигнала, например EVM, или лок-индикторы синхронизаций. Промоделируйте это в симулинке!

собственно так и делаем. сначала подстраиваемся довольно грубо, +- 50 khz.
затем точнее. на все про-все есть только неско секунд после задания канала. учитывая скорость залочивания pll, сейчас около 100 мс, конечно можно по спецификации убыстрить до 15, но не надо. т.е. тупо просканировать не реально, да и в этом проблемы нет.

а вот потом начинается сложность c bpsk. т.е. с того момента, как мы нашли канал, несущая может плавно уходить +-1.5 mhz. с qpsk у нас довольно рабочий алгоритм, который находит несущую на удалении +-15 khz и затем уже он не рассинхронизируется и следует за несущей без проблем.

с bpsk мы его в симуляции не проверили, на все про все было 4 месяца, вместе с хардом и софтом.

т.е. сейчас думаем над алгоритмом, который бы смог показать куда изменяется несущая, убыстряется или замедляется после того, как мы ее нашли
вот собственно проблема.
petrov
Цитата(maxfox2k @ May 8 2008, 19:01) *
собственно так и делаем. сначала подстраиваемся довольно грубо, +- 50 khz.
затем точнее. на все про-все есть только неско секунд после задания канала. учитывая скорость залочивания pll, сейчас около 100 мс, конечно можно по спецификации убыстрить до 15, но не надо. т.е. тупо просканировать не реально, да и в этом проблемы нет.

а вот потом начинается сложность c bpsk. т.е. с того момента, как мы нашли канал, несущая может плавно уходить +-1.5 mhz. с qpsk у нас довольно рабочий алгоритм, который находит несущую на удалении +-15 khz и затем уже он не рассинхронизируется и следует за несущей без проблем.

с bpsk мы его в симуляции не проверили, на все про все было 4 месяца, вместе с хардом и софтом.

т.е. сейчас думаем над алгоритмом, который бы смог показать куда изменяется несущая, убыстряется или замедляется после того, как мы ее нашли
вот собственно проблема.


ФАПЧ упрвляемая решениями может отслеживать уходы, что для QPSK что для BPSK один алгоритм. Уходы конечно безобразные.
maxfox2k
как засимулировать несущую?
тобишь на перидатчике имеем:
RF(n) = I(n)*cos(f)-j*Q(n)*sin(f)

как затем обратно получить дейcтвительные I, Q если локальная частота f1?

тобишь на приёмнике имеем:
I(n)=RF(n)*cos(f1)
Q(n)=-RF(n)*sin(f1)

но если f не равно f1, то мы просто не можем избавиться от мнимои части
petrov
Цитата(maxfox2k @ May 12 2008, 12:20) *
как засимулировать несущую?
тобишь на перидатчике имеем:
RF(n) = I(n)*cos(f)-j*Q(n)*sin(f)

как затем обратно получить дейcтвительные I, Q если локальная частота f1?

тобишь на приёмнике имеем:
I(n)=RF(n)*cos(f1)
Q(n)=-RF(n)*sin(f1)

но если f не равно f1, то мы просто не можем избавиться от мнимои части


Это не представляет никакой проблемы, PSK, QAM так и демодулируются в комплексном виде.
fontp
Цитата(maxfox2k @ May 12 2008, 12:20) *
как засимулировать несущую?
тобишь на перидатчике имеем:
RF(n) = I(n)*cos(f)-j*Q(n)*sin(f)

как затем обратно получить дейcтвительные I, Q если локальная частота f1?

тобишь на приёмнике имеем:
I(n)=RF(n)*cos(f1)
Q(n)=-RF(n)*sin(f1)

но если f не равно f1, то мы просто не можем избавиться от мнимои части


Ну не знаю... Не будете же Вы симулировать ВЧ, это лишнее
Лучше начинать уже после DDC (на видеочастоте), а это что-то вроде уже

I1(n) = I(n)cos(n*dF+Ф) + Q(n)sin(n*dF+Ф)
Q1(n)=Q(n)*cos(n*dF+Ф)-I(n)*sin(n*dF+Ф)

dF=f-f1
Ф - фазовая ошибка

В общем, она крутится...
maxfox2k
Цитата(fontp @ May 12 2008, 11:44) *
Ну не знаю... Не будете же Вы симулировать ВЧ, это лишнее
Лучше начинать уже после DDC (на видеочастоте), а это что-то вроде уже

I1(n) = I(n)cos(n*dF+Ф) + Q(n)sin(n*dF+Ф)
Q1(n)=Q(n)*cos(n*dF+Ф)-I(n)*sin(n*dF+Ф)

dF=f-f1
Ф - фазовая ошибка

В общем, она крутится...


da, spasibo, pohozhe na to, chto i nuzhno bylo
maxfox2k
с какой частотои надо считать цикл костаса?
и чем руководствоваться при выборе луп-фильтра?
petrov
Цитата(maxfox2k @ May 13 2008, 10:20) *
с какой частотои надо считать цикл костаса?
и чем руководствоваться при выборе луп-фильтра?


Незами почитайте там есть ответы на эти вопросы очень кратко и доступно.
maxfox2k
Цитата(petrov @ May 13 2008, 10:25) *
Незами почитайте там есть ответы на эти вопросы очень кратко и доступно.

sorry, не нашел.
не могли бы подсказат, где именно написано?

не могу понять.
луп-филтр уходит в верх и переполняется, даже в симуляции, даже если разница фаз 0.
petrov
Цитата(maxfox2k @ May 13 2008, 11:40) *
sorry, не нашел.
не могли бы подсказат, где именно написано?


3 глава




Цитата(maxfox2k @ May 13 2008, 11:40) *
не могу понять.
луп-филтр уходит в верх и переполняется, даже в симуляции, даже если разница фаз 0.


Этот фильтр что из себя предстваляет?
maxfox2k
Цитата(petrov @ May 13 2008, 10:56) *
3 глава

распечатал, прочитал

Цитата(petrov @ May 13 2008, 10:56) *
Этот фильтр что из себя предстваляет?

взял на figure 3-8
коеффициенты, как в симуляции. подставил свои параметры семплированиые, вроде должна лочится.
пробую с частотои f_sym * 4
petrov
Цитата(maxfox2k @ May 13 2008, 12:11) *
распечатал, прочитал
взял на figure 3-8
коеффициенты, как в симуляции. подставил свои параметры семплированиые, вроде должна лочится.
пробую с частотои f_sym * 4


На символьной частоте должна ФАПЧ работать, коэффициенты должны устойчивые быть, посмотрите мои модельки для 16 QAM.
maxfox2k
схему 3-18 из незами можно исползоват и для qpsk так?
какой должен быть параметр фильтра?
реально ли реализовать для 12 битной целочисленной арифметики?
fontp
Цитата(maxfox2k @ May 13 2008, 14:58) *
схему 3-18 из незами можно исползоват и для qpsk так?
какой должен быть параметр фильтра?
реально ли реализовать для 12 битной целочисленной арифметики?


3-20 Костас для QPSK
e = sign(I)*Q - sign(Q)*I

А то что с арктангенсом дальше называется tanlock. его тоже можно использовать и для BPSK и QPSK

Фильтры обычно используются пропорционально-интегрирующие. Их нужно уметь считать. Везде описано, где про ФАПЧ
Реализовать в 12-битовой арифметике (на выходе) может и не получится (фазовая ошибка 360/4000= 0.09 градуса устроит ?), но всегда можно пользовать двойную точность
petrov
Цитата(maxfox2k @ May 13 2008, 14:58) *
схему 3-18 из незами можно исползоват и для qpsk так?
какой должен быть параметр фильтра?
реально ли реализовать для 12 битной целочисленной арифметики?


Нельзя, только для BPSK. Кроме того это аналоговый костас, можно конечно и в цифре так сделать, но будут лишние вычисления, и разрядность коэффициентов будет повышаться с ростом частоты дискретизации. Требуемая разрядность зависит от этих самых коэффициентов, от полосы ФАПЧ.
Andreas1
Цитата(maxfox2k @ May 13 2008, 12:11) *
распечатал, прочитал

Вы нашли Низами в электронном виде? Не поделитесь?
maxfox2k
Цитата(fontp @ May 13 2008, 14:09) *
3-20 Костас для QPSK
e = sign(I)*Q - sign(Q)*I

А то что с арктангенсом дальше называется tanlock. его тоже можно использовать и для BPSK и QPSK

e(t) - ето понятно.
просто в симуляции полная ерунда творится.
не могу исползовать слишком маленкие Ki Kp, скажем <.1, а при таких коеффитсиентах выход луп филтра становится очен болшим. вот и подумал, что аналоговую реализатсию нельзя сделать.

а что с фильтром? какие частоты надо отфильтроват?
petrov
Цитата(Andreas1 @ May 13 2008, 15:15) *
Вы нашли Низами в электронном виде? Не поделитесь?


В соседнюю тему по DQPSK загляните...
maxfox2k
Цитата(fontp @ May 13 2008, 14:09) *
Реализовать в 12-битовой арифметике (на выходе) может и не получится (фазовая ошибка 360/4000= 0.09 градуса устроит ?), но всегда можно пользовать двойную точность

созвездие фиксировать не требуется.
fontp
Цитата(maxfox2k @ May 13 2008, 15:15) *
e(t) - ето понятно.
просто в симуляции полная ерунда творится.
не могу исползовать слишком маленкие Ki Kp, скажем <.1, а при таких коеффитсиентах выход луп филтра становится очен болшим. вот и подумал, что аналоговую реализатсию нельзя сделать.

а что с фильтром? какие частоты надо отфильтроват?


Это не любой фильтр. Фильтр НЧ.
Y(z) = К1*X(z)/z + K2*X(z)
Кажется так в z-плоскости.
Но его нужно уметь рассчитать. Описано в любой книге про ФАПЧ.
Обычно используют расчёт аналоговый, а потом решение переносят в дижитал.
maxfox2k
Цитата(petrov @ May 13 2008, 14:12) *
Нельзя, только для BPSK. Кроме того это аналоговый костас, можно конечно и в цифре так сделать, но будут лишние вычисления, и разрядность коэффициентов будет повышаться с ростом частоты дискретизации. Требуемая разрядность зависит от этих самых коэффициентов, от полосы ФАПЧ.

т.е. если у нас стоит ацп перед фильтром (3-18) и управляем vco с помошью цап, то такое сделать нельзя?
petrov
Цитата(maxfox2k @ May 13 2008, 15:40) *
т.е. если у нас стоит ацп перед фильтром (3-18) и управляем vco с помошью цап, то такое сделать нельзя?


QPSK нельзя схемой (3-18), BPSK можно сделать так как вы описали. Но лучше сделать всё в цифре.
maxfox2k
уф, кажись без математики всё заработало. а то в фпга уже умножители закончились.
maxfox2k
bpsk заработало, но в qpsk большои error rate получился. видимо без математики никак sad.gif
незами конечно хорошая книжка, но хотелось бы почитать из серии "демодулятор для чаиников" smile.gif
petrov
Цитата(maxfox2k @ May 15 2008, 13:04) *
bpsk заработало, но в qpsk большои error rate получился. видимо без математики никак sad.gif
незами конечно хорошая книжка, но хотелось бы почитать из серии "демодулятор для чаиников" smile.gif


Книга Незами и есть "демодулятор для чаиников". Вы связались с такой областью где абы как эвристически на коленке не получится ничего.

Модели симулинковские смотрели? Могу переделать 16QAM в QPSK.
maxfox2k
Цитата(petrov @ May 15 2008, 12:12) *
Модели симулинковские смотрели? Могу переделать 16QAM в QPSK.

da, smotrel. a pochemu v nih net modeli carrier?

Цитата(petrov @ May 15 2008, 12:12) *
Могу переделать 16QAM в QPSK.

esli est vremya peredelat, to konechno by hotelos posmotret smile.gif
petrov
Цитата(maxfox2k @ May 15 2008, 14:43) *
da, smotrel. a pochemu v nih net modeli carrier?


В смысле? Синхронизация несущей там восстанавливается, в комплексном виде удобней моделировать, а перенос на несущую и обратно на нулевую тривиальная вроде штука.
maxfox2k
Цитата(petrov @ May 15 2008, 12:12) *
Вы связались с такой областью где абы как эвристически на коленке не получится ничего.

вы даже и не представляете сколько всякого разного так делается smile.gif
к сожалению я знаю как обстоит дело с разработкой у крупнеиших игроков рынка...
взят хоть тот же 3gpp lte smile.gif
GetSmart
Цитата(maxfox2k @ May 15 2008, 17:49) *
к сожалению я знаю как обстоит дело с разработкой у крупнеиших игроков рынка...
взят хоть тот же 3gpp lte smile.gif
И как у них обстоят дела?smile.gif
maxfox2k
Цитата(GetSmart @ May 15 2008, 14:55) *
И как у них обстоят дела?smile.gif

ну я не имелл ввиду стандард. там сидят умные теоретики, без математиков хрен разберешся...
затем ест стаика математиков, которые могут перелозит вормулы в алгоритм.
затем всё так же, на коленках, на коленках smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.