Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: модель 8PSK модема
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
Страницы: 1, 2, 3, 4
petrov
Цитата(des00 @ Jul 2 2010, 15:36) *
а если модем с непрерывным режимом? В качестве цепи анализа первоначальной расстройки, что бы снизить требования к стабильности СВЧ синтезаторов.


Скорее всего смысла нету, те синхронизаторы не дают какую-то принципиально более широкую полосу захвата.
Можно для первоначальной настройки полосу ФАПЧ пошире сделать и модуляцию BPSK использовать.
Делайте полосу сигнала шире чтобы снизить требования к стабильности синтезаторов. %)
des00
Цитата(petrov @ Jul 2 2010, 06:53) *
Скорее всего смысла нету, те синхронизаторы не дают какую-то принципиально более широкую полосу захвата.

самое интересное что есть линейный модем, который именно так работает. у него требования к стабильности синтезаторов под 200ppm на частотах 2/4/8гиг (если мне память не изменяет).

ЗЫ. при этом, это на узких спектрах.
petrov
Цитата(des00 @ Jul 2 2010, 16:25) *
самое интересное что есть линейный модем, который именно так работает. у него требования к стабильности синтезаторов под 200ppm на частотах 2/4/8гиг (если мне память не изменяет).


Да можно сделать хоть поиск, хоть в параллель несколько несколько модемов, стоит ли это дешевле более стабильных опорных генераторов?
des00
Цитата(petrov @ Jul 2 2010, 07:43) *
Да можно сделать хоть поиск, хоть в параллель несколько несколько модемов, стоит ли это дешевле более стабильных опорных генераторов?

насколько мне известно, в том решении модем один, поиска нет, сделано именно оценка несушки и ее вколачиваение в DDS. Всё в цифре на плис. Хороший генератор от 200 баксов, 10к логики на такой эстиматор вряд ли стоят больше %)
petrov
Цитата(des00 @ Jul 2 2010, 16:48) *
насколько мне известно, в том решении модем один, поиска нет, сделано именно оценка несушки и ее вколачиваение в DDS. Всё в цифре на плис. Хороший генератор от 200 баксов, 10к логики на такой эстиматор вряд ли стоят больше %)


Да можно наверное всё сделать. Но всё же если есть возможность лучше упрощать, усложнение синхронизации надёжности не добавляет, всё же какие-нибудь ADF4360+GTXO92 дешевле 200 баксов стоят.
vadimuzzz
Цитата(des00 @ Jul 2 2010, 17:23) *
хммм, чую здесь некоторый подвох, пока возьму таймаут. Порою книги гуру и feedfordard модели petrov, знаний не хватает %)

да нет тут никакого подвоха, всего делов-то сумматор в вашу схему добавить. если не жалко логики на 2 приемных фильтра вместо одного, то у незами есть еще одна классная схема. посмотрите у него главу про AFC
des00
Цитата(vadimuzzz @ Jul 2 2010, 07:18) *
если не жалко логики на 2 приемных фильтра вместо одного, то у незами есть еще одна классная схема. посмотрите у него главу про AFC

если вы про схему на двух фильтрах +-1/2T, то перекос(наклон) спектра в 10 дБ положит эту синхру только в путь %)
vadimuzzz
Цитата(des00 @ Jul 2 2010, 20:28) *
если вы про схему на двух фильтрах +-1/2T, то перекос(наклон) спектра в 10 дБ положит эту синхру только в путь %)

а почему он наклонен? д.б. симметричен отн-но несущей
des00
Цитата(vadimuzzz @ Jul 2 2010, 08:01) *
а почему он наклонен? д.б. симметричен отн-но несущей

это частый вид искажений в линейных трактах, лечится эквалайзером наклона или эквалайзером с обратными связями.
petrov
pi/4 dqpsk coherent demodulation feedforward NDA 4-power phase sync

simulink matlab R2010a

Нажмите для просмотра прикрепленного файла
_Anatoliy
Цитата(petrov @ Jul 15 2010, 12:08) *
pi/4 dqpsk coherent demodulation feedforward NDA 4-power phase sync

simulink matlab R2010a

Нажмите для просмотра прикрепленного файла

Та же версия матлаба,но ругается на блок 8psk_data_mapper,не нравится запись exp(i*([0:7]*pi/4+pi/4)).Переписать не проблема,просто интересно - ваш матлаб не ругается?
Везде нужно заменить i на 1i.
petrov
Цитата(_Anatoliy @ Jul 15 2010, 15:45) *
Та же версия матлаба,но ругается на блок 8psk_data_mapper,не нравится запись exp(i*([0:7]*pi/4+pi/4)).Переписать не проблема,просто интересно - ваш матлаб не ругается?
Везде нужно заменить i на 1i.


Нет не ругается.
MKS
А мне вот что интересно уважаемый petrov. Что это за блок channel_delay который есть во многих ваших моделях. Если это просто задержка в канале, то мне не понятно зачем там матричные операции нужны. Раскройте тайну предназначения smile.gif .
Нажмите для просмотра прикрепленного файла
petrov
Цитата(MKS @ Jul 15 2010, 17:36) *
А мне вот что интересно уважаемый petrov. Что это за блок channel_delay который есть во многих ваших моделях. Если это просто задержка в канале, то мне не понятно зачем там матричные операции нужны. Раскройте тайну предназначения smile.gif .


Это задержка переменной длины, изменяющаяся непрерывно по синусоидальному закону, служит для демонстрации работы символьной синхронизации, операции там нужны для того чтобы правильные отсчёты с линии задержки с отводами на интерполятор Фарроу подавать.
Alex65111
Подскажите, пожалуйста, такой вопрос.
Есть проблема синхронизации по несущей - по частоте и по фазе.
Есть проблема синхронизации по такту - по частоте и по фазе.

Когда речь идет о несущей, то считается, что ФАПЧ помимо фазы в состоянии еще и небольшие отклонения/скачки частоты отслеживать/корректировать.

Когда речь идет о такте, то даже при отклонении частоты отсчетов всего на 1/400 частоты символов люди вставляют дополнительную процедуру либо вставки, либо удаления нулей. Почему петля корректировки фазы такта, вырабатывающая соответствующий сигнал ошибки не в состоянии сама постоянно подтягивать момент взятия отсчета и вроде как корректировать небольшое отклонение частоты отсчетов от частоты символов?
petrov
Почему же не в состоянии? В состоянии. Откуда нам знать что там у людей? Давайте конкретику.
Alex65111
Цитата(petrov @ Jul 26 2010, 12:01) *
Почему же не в состоянии? В состоянии. Откуда нам знать что там у людей? Давайте конкретику.


Старая ссылка http://ece485web.groups.et.byu.net/ee485.f...ation_notes.pdf

стр267-270
petrov
Цитата(Alex65111 @ Jul 26 2010, 19:57) *


Ну там же всё так замечательно расписано, возникают сложности при работе с сигналом продискретизированым с частотой 2 отсчёта на символ. Например когда частота чуть меньше 2-х отсчётов периодически возникает ситуация когда не хватает такта чтобы запустить схему 2 раза за символ. Это проблема с манипуляциями с отсчётами сигнала но не с принципами работы ФАПЧ.
Alex65111
Цитата(petrov @ Jul 26 2010, 21:50) *
Ну там же всё так замечательно расписано, возникают сложности при работе с сигналом продискретизированым с частотой 2 отсчёта на символ. Например когда частота чуть меньше 2-х отсчётов периодически возникает ситуация когда не хватает такта чтобы запустить схему 2 раза за символ. Это проблема с манипуляциями с отсчётами сигнала но не с принципами работы ФАПЧ.


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

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

Просто получается интересная вещь. В принципе идеально невозможно обеспечить равенство/кратность взятия отсчетов частоте символов, всегда будет хоть микроскопическая, но ошибка, ты будешь думать, что частоты такие то, а на самом деле они будут как то разъежаться. Как в этом случае, по какому критерию осуществлять коррекцию?, т.е. известно что частота чуть меньше/больше 2-х отсчётов, но неизвестно насколько чуть. Тогда в этом случае получается, что либо это несоответствие как бы само корректируется (на базе сигнала ошибки от TED, который корректирует состояние счетчика), либо рано или поздно должен происходить перехлест и соответственно ошибка.
petrov
Для таких случаев нужно специально вычисления организовывать, о чём в книжке и написано. Сделайте модель для скажем для полутора отсчётов на символ(коэффициент ската такой чтоб дискретизация не нарушала теорему Котельникова) без повышения частоты дискретизации и все вопросы отпадут.
des00
Цитата(petrov @ Jul 27 2010, 02:28) *
Для таких случаев нужно специально вычисления организовывать, о чём в книжке и написано.

все вынашиваю идею сделать 2sps приемник с FSE эквалайзером, как нить доберусь
petrov
Цитата(des00 @ Jul 27 2010, 13:58) *
все вынашиваю идею сделать 2sps приемник с FSE эквалайзером, как нить доберусь


И чтобы на 500 МГц работало. smile.gif
des00
Цитата(petrov @ Jul 27 2010, 04:08) *
И чтобы на 500 МГц работало. smile.gif

ну 500 достаточно сложно сделать, а вот 150-200 вполне на третьем сыклоне, правда он должен будет быть толстым %)
tim_s80
Начал изучать главу 6 Незами и сразу же пошли вопросы.
1. При описании формулы 6-4 не говорится о соотношении Ts и T. Далее выводится 6-8, 6-9 где нет упоминания ни о Ts ни о T. Разве для этих формул соотношение Ts и T неважно?
2. 6-9 в каких единицах измеряется? MCRB=10^-2 для 10кбит/сек и для 1000кбит/сек это одно и тоже или разное?
3. Как так получается, что в формуле 6-8 под знаком суммы стоят чистые комплексные символы (а), а не пропущенные через формирующий фильтр (g)? Если я правильно понял, то в 6-8 по сути рассчитывается корреляция между выходом согласованного фильтра и опорной последовательностью и если так, то вроде бы логичнее и надежнее было считать не с (а), а с (sum(аg)) или даже с (sum(аg)) пропущенной через согласованный фильтр?
4. На стр 6-5 после формулы 6-17 рассматривается пример. Правильно ли я понимаю, что для его реализации необходимо чтобы отсчеты (z) были взяты уже с правильной символьной частотой и только с неизвестной фазой?
5. На стр 6-7 как то непонятна логика. Вроде бы как и ранее решается задача нахождения смещения/фазы такта эпсилон. В 6-19 вроде как берут квадрат огибающей и говорят что оно циклостационарно с частотой символов. Но далее вдруг говорят о решении задачи не оценки фазы, а о оценке именно частоты символов (the symbol rate clock is estimated by solving for the value …). Потом о symbol rate вроде дальше ни слова, а начинают вертеться вокруг эпсилон. Кроме того, если 6-19 циклостационарен с символьной частотой, то почему разложение Фурье делается относительно эпсилон?, она разве является циклической частотой? В итоге крутят туда сюда и получают формулу 6-25. Не понятно как они перешли к параметру N (ratio of samples to symbols)? Если на 6-25 посмотреть без цепочки ее вывода, то внешне она напоминает вычисление корреляции предварительно нелинейно преобразованного выхода согласованного фильтра с одной частотой, определяемой коэффициентом передискретизации N. Получается, что в этом случае опять предварительно необходимо четко знать symbol rate?
6. Если в формуле 6-9 играет Roll-off, то как все таки соотносятся 6-25 и 6-17 по отношению к Roll-off?, кто из них менее чувствителен к Roll-off?
7. И на сколько рассмотренные два метода чувствительны к неточности/ошибке по symbol rate?

Буду признателен если сообщество поможет разобраться хотя бы с частью вопросов.

voloda
1) Тs - частота выборок, T - частота символов. Тs всегда больше Т.
2)измеряется оно в рад^2. Для разных скоростей соотношение сигнал/шум - разное, что учитывается в формуле. Посмотри,как и для чего MCBR применяется, станет понятнее.
3)Там внизу есть ряд условий, при которых произведена эта оценка. Если я правильно понял - это условия идеального фильтра.
4)В примере как раз рассматривается восстановление символьной частоты (грубо - частота следования нулей и еденичек). Сам он работает на частоте выборок (частота АЦП, если грубо). Частота выборок в несколько раз ( 2 -8 ) больше частоты символов. Разберись с понятиями частоты символов и выборок - все станет ясно.
5) Особо в вопрос не вникал. Вроде - см п. 4)
6) - не готов ответить.
7) неточность в восстановлении тактовой можно выразить как добавление шума. Дальше, на вход блока синхронизации фазы и частоты сигнал поступает с добавлением шума канала + шум символьной синхронизации.

Почитай Скляра про частоту символов и выборок. Про соотношение сигнал/шум там тоже хорошо изложено.
tim_s80
Цитата
1) Тs - частота выборок, T - частота символов. Тs всегда больше Т.

Ну то что больше это понятно, вопрос на сколько - 1 отсчет на символ,2,4? или 1,333..., неужели формула одинакова для любого соотношения?

Цитата
2)измеряется оно в рад^2. Для разных скоростей соотношение сигнал/шум - разное, что учитывается в формуле. Посмотри,как и для чего MCBR применяется, станет понятнее.

Просто не пойму, если подставить все размерности в формулу 6-9, то вроде бы рад^2 не получается. MCBR как я понимаю это предельная точность (дисперсия) оценки. Только это формула дает точность символьной частоты или ее фазы? И все таки при MCRB=10^-2 что будет для 10кбит/сек и для 1000кбит/сек?

Цитата
3)Там внизу есть ряд условий, при которых произведена эта оценка. Если я правильно понял - это условия идеального фильтра.

Эти условия я вроде бы видел, но все равно как то не клеится. Если у нас есть цепочка обработки с контрольными точками на выходе каждого обработчика 1,2,3, и т.д. Тогда, если мы берем сигнал с точки, например, 3 (что в книге соответствуе z-выходу согласованного фильтра, то и в качестве опоры логичнее было бы подставлять наш известный/идеальный сигнал прошедший этот же согласованный фильтр, а не скакой либо другой контрольной точки, например, 1.)

Цитата
4)В примере как раз рассматривается восстановление символьной частоты (грубо - частота следования нулей и еденичек). Сам он работает на частоте выборок (частота АЦП, если грубо). Частота выборок в несколько раз ( 2 -8 ) больше частоты символов. Разберись с понятиями частоты символов и выборок - все станет ясно.

Что вообще понимается под термином восстановление символьной частоты? В этом примере написано -error is equal to 12 to 13 samples, т.е. ответ содержит смысл именно сдвижки/фазы, а не измерения самой частоты как я понимаю. И откуда цифры 2-8?, а сколько достаточно?, как это вытекает из 6-9 и 6-8?


Цитата
7) неточность в восстановлении тактовой можно выразить как добавление шума. Дальше, на вход блока синхронизации фазы и частоты сигнал поступает с добавлением шума канала + шум символьной синхронизации.

В рамках одного символа для задачи его детектирования вроде бы понятно, что это можно описать дополнительным шумом, а в рамках задачи восстановления фазы символьной частоты просто описание доп шумом пока не понятно, потому что по сути формулами 6-17 и 6-25 мы будем сравнивать что то, что никогда выравнить друг относительно друга невозможно (из-за набега смещения из-за неравенства символьных частот опорного и принимаемого колебаний). Хотя кажись для 6-25 такой проблемы не должно получаться, так как мы опорник из саого принимаемого сигнала формируем, но для 6-17 вопрос остается.
voloda
Цитата
Что вообще понимается под термином восстановление символьной частоты?


Читай 2-ую главу. или у Прокиса посмотри. Подробнее сейчас не могу ответить.
tim_s80
Цитата(voloda @ Aug 13 2010, 16:03) *
Читай 2-ую главу. или у Прокиса посмотри. Подробнее сейчас не могу ответить.

Как я понял решаются две задачи - определение/восстановление самой частоты и ее фазы. А в примере ни слова о частоте, только о смещении я увидел разговор.
voloda
Открываем Скляр -а "Цифровая связь". Листаем на главу 10 "синхронизация" (ст.620). Абзац 3-ий

Цитата
Кроме того, предпологается, что приемник точно знает, где начинается поступающий сигнал, и где он заканчивается...


И дальше там посмотри.

то же, но в картинках и на английском есть тут
http://www.mathworks.com/company/events/we...99&p2=47201

При синхронизации приемник должен восстановить фазу и частоту принимаемого сигнала. Это фазовая и частотная подстройка. Это есть даже в аналоговых системах связи. Кроме того, при приеме цифровых сообщений, необходимо провести символьную синхронизацию (термина "восстановление символьной частоты" нет, это я неправильно написал). Иногда так же применяется термин тактовая синхронизация. Это одно и то же. Провести символьную синхронизацию - значит узнать, где один символ заканчивается ( в принятом сигнале), и начинается другой. Есть еще кадровая синхронизация - в пакетных системах связи.

У Незами термин Symbol Timing Estimation Algorithms - алгоритмы символьной синхронизации. И то, что мы рассматриваем - алгоритм тактовой синхронизации. Там выводиться, что (timing estimate) - оценка символьной частоты - может быть проведена без оценки фазы (phase information). Выводится условие, как тактовую оценивать.

MCRB - по ней идет оценка качества работы алгоритмов синхронизации. Ее вывод и подробное обсуждение есть, скажем, в
U. Mengali and N.D’ Andrea. Synchronization techniques for digital recevers. – Plenum press, New York, 1997. У Незами такого вывода нет, он просто берет эту формулу, и поэтому понять, что и откуда - по его формулам сложно.

MCRB учитывает и нерочности символьной синхронизации, и неточночти фазовой/частотной синхронизации. Считаем, что два других параметра у нас синхронизированны идеально, строим график для третьего пар-ра. Тут лучше на примерах посмотреть.

От скорости связи зависит соотношение сигнал/шум в системе, что учтено в формуле для MCRB.

В цифровых системах связи один символ описывается несколькими отсчетами (выборками). Минимум - 2 отсчета на символ. Но, чаще берут больше. В моделях petrov-а, например, 8 отсчетов на символ. Больше 8 - обычно не берут. Как у Незами это учтено - не знаю. Не смотрел.
petrov
qpsk flat fading SIMO channel maximal ratio combining

simulink matlab R2010a

Нажмите для просмотра прикрепленного файла
Oldring
Цитата(petrov @ Aug 27 2010, 17:33) *
qpsk flat fading SIMO channel maximal ratio combining

simulink matlab R2010a

Нажмите для просмотра прикрепленного файла


А относительная фаза двух лучей как тут корректируется?
petrov
Цитата(Oldring @ Aug 27 2010, 17:59) *
А относительная фаза двух лучей как тут корректируется?


В адаптивном фильтре комплексные коэффициенты поворачивают лучи. Или что-то другое имеется ввиду?
Oldring
Цитата(petrov @ Aug 27 2010, 18:10) *
В адаптивном фильтре комплексные коэффициенты поворачивают лучи. Или что-то другое имеется ввиду?


Куда они их поворачивают? Они должны их повернуть под одинаковый угол. Но зачем-то после эквалайзера всё равно стоит схема доворота, до неё итоговая констелляция вращается. Так каким же образом обеспечивается исправление разности фаз лучей? Я пока что в модели до конца не разобрался - мне это непонятно.
petrov
Цитата(Oldring @ Aug 27 2010, 20:55) *
Куда они их поворачивают? Они должны их повернуть под одинаковый угол. Но зачем-то после эквалайзера всё равно стоит схема доворота, до неё итоговая констелляция вращается. Так каким же образом обеспечивается исправление разности фаз лучей? Я пока что в мождели до конца не разобрался - мне это непонятно.


Эквалайзер складывает сигналы с антенн в фазе минимизируя MMSE на выходе детектора ошибки Годарда, сумма на выходе может быть повёрнута на произвольный угол и вращаться с разностной частотой между передатчиком и приёмником, последующая схема фазовой синхронизации это устраняет.
Oldring
Цитата(petrov @ Aug 27 2010, 21:18) *
Эквалайзер складывает сигналы с антенн в фазе минимизируя MMSE на выходе детектора ошибки Годарда, сумма на выходе может быть повёрнута на произвольный угол и вращаться с разностной частотой между передатчиком и приёмником, последующая схема фазовой синхронизации это устраняет.


Теперь вижу, спасибо. В Симулинке не всегда оцевидны размерности сигналов.
petrov
GMSK suboptimal coherent demodulation feedback phase sync feedback timing sync


simulink matlab R2010a


Нажмите для просмотра прикрепленного файла
Sleepin' Cat Smile
Всем прывет!

Возник вопрос по поводу модели qam_fb_gardner_symbol_farrow_sync_fb_phase_sync_agc_2007_06_18.mdl, может кто подскажет.
Проектирую демодулятор QAM-16, пока в исследовательско-учебных целях; сигнал - типичный для телефонного модема, несущая 1800 Гц,
символьная скорость 2400 Бод. Есть несколько записей отсчетов оцифрованного сигнала, частота дискретизации 8000 Гц. После преобразования частоты с несущей на нулевую и выделения квадратур с помощью согласованной фильтрации восстанавливается тактовая частота. Пока сделал двумя способами. Первый: передискретизация квадратур, чтобы получить 4 отсчета на символ, вычисление квадратов модулей отсчетов, DFFT по 4 отсчетам и т.п. (из книжки Meyr'а). Второй: сделал как в указанной модели petrov'а, предварительно передискретизировав квадратуры, чтобы получить 8 отсчетов на символ. Первый способ дал вполне приемлемые для дальнейшей работы результаты. Второй после долгих попыток пока не увенчался успехом: созвездия почти не видно. Есть несколько мыслей на этот счет:

1) либо у меня где-то ошибки в реализации (ищу, пока не нашел);
2) символьная синхронизация в модели petrov'а полностью невозможна без восстановления несущей и АРУ (их я пока не трогал), но это вряд ли, ведь из литературы => схема Гарднера не зависит от проблем с несущей + в моей тестовой записи сигнал имеет постоянную амплитуду, без искажений и др.
3) самое вероятное, на мой взгляд: схема в модели petrov'a требует больше отсчетов на символ, а я не могу повысить частоту дискретизации в записи, могу только передискретизировать, из-за этого результаты получаются хуже?

Подскажите, плиз, если есть идеи. Заранее, спасибо, если где-то сказал глупость, прошу сильно не бить rolleyes.gif
petrov
В модели ведь работает? Покажите на модели условия при которых синхронизация не работает. И с 4-мя отсчётами есть модели. Для Гарднера нужно всего 2 отсчёта, 4-8 отсчётов для простоты интерполяции сделано.


Sleepin' Cat Smile
Цитата(petrov @ Oct 14 2010, 14:16) *
В модели ведь работает? Покажите на модели условия при которых синхронизация не работает. И с 4-мя отсчётами есть модели. Для Гарднера нужно всего 2 отсчёта, 4-8 отсчётов для простоты интерполяции сделано.


Спасибо, да я уж и сам догадался, для Гарднера, действительно, не важно, не стал последнее предположение из поста стирать не стал.
Кстати, пробовал свои квадратуры скинуть в mat-файл, и подать в Simulink на вход интерполятора Фарроу и т.д. по Вашей схеме, к сожалению, не прокатило. Разбираюсь сейчас почему. ??? Попытки подстроить фильтр петли: пересчитать или подобрать коэффициенты пока не помогли.
thermit
Тут еще такая штука может быть:

В телефонных модемах для ограничения полосы используется фильтр с довольно крутой х-кой (большая крутизна ската).
И характеристика его - не корень из приподнятого косинуса. В моделях уважаемого Петрова на входе приемника стоит фильтр корень из приподнятого косинуса с альфа=1. В таких условиях детектор гарднера работать будет плохо...
Sleepin' Cat Smile
Цитата(thermit @ Oct 14 2010, 17:10) *
Тут еще такая штука может быть:

В телефонных модемах для ограничения полосы используется фильтр с довольно крутой х-кой (большая крутизна ската).
И характеристика его - не корень из приподнятого косинуса. В моделях уважаемого Петрова на входе приемника стоит фильтр корень из приподнятого косинуса с альфа=1. В таких условиях детектор гарднера работать будет плохо...


Спс. Удалось несколько улучшить результаты изменив характеристику согласованного фильтра, но по ходу еще где-то у меня ошибка, буду дальше работать...
Sleepin' Cat Smile
Цитата(petrov @ Oct 14 2010, 14:16) *
В модели ведь работает? Покажите на модели условия при которых синхронизация не работает. И с 4-мя отсчётами есть модели. Для Гарднера нужно всего 2 отсчёта, 4-8 отсчётов для простоты интерполяции сделано.


Моя программа демодуляции QAM-16, созданная по алгоритму, предложенному в Вашей модели qam_fb_symbol_sync_fb_phase_sync_agc_var_ch_delay_2007_07_10, после обезвреживания всех багов заработала на реальной записи, все три петли (по тактовой, несущей и АРУ) отслеживают изменения соответствующих параметров синхронизации. Но у меня осталась неясность с парой моментов, хотел бы задать Вам вопросы unsure.gif

1. Интерполятор Фарроу (ИФ). Для получения интерполированного отсчета x_interp[nT] (выходной сигнал ИФ на n-ом такте) используются отсчеты x[(n-1)T], x[nT], x[(n+1)T] и x[(n+2)T]. Другими словами, для получения интерполянта на текущем такте нужны входные отсчеты в следующие моменты времени: на предыдущем такте, на текущем и на 2-ух последующих тактах. То есть получается алгоритмическая задержка на 2 такта, если так можно выразиться. Однако, это НЕ требует задерживать сигнал overflow на 2 такта, так как NCO/TCU (timing control unit) формирует сигнал overflow по выходным отсчетам интерполятора, оптимальный момент для взятия значений квадратур соответствует моменту сброса NCO/TCU, когда вырабатывается строб-сигнал overflow. Задержка на 2 такта в ИФ не влияет на работу NCO/TCU. Вроде бы такая логика... Расписываю так подробно такие вещи, потому что просто столкнулся с примером в хелпе MatLab, которые ввели меня в заблуждение относительно этой задержки ИФ, видимо, в этом примере задержка сигнала overflow на 2 такта имела какой-то другой смысл и не связана с ИФ + я не силен в Simulink, привык работать в m-языке.

2. Вы используете блок Downsample в данных моделях, чтобы понизить частоту следования квадратур с 1/8 (частота дискретизации) до 1 (символьная скорость) перед выводом точек на блок просмотра созвездия. Было бы справедливо следующее: запихнуть Discrete-Time Scatter Plot Scope в Subsystem с блоком Enabled и "включать" эту подсистему стробом overflow, а на вход ей подавать квадратуры с выхода ИФ. Такой блок выводил бы интерполированные квадратуры в оптимальный момент для взятия отсчета. У меня вроде бы так работает, но хотел понять почему Вы сделали по другому smile.gif

Вроде все. Теперь, когда согласованная фильтрация и системы синхронизации готовы, возьмусь за эквалайзер, начну с Ваших моделей, так что новые вопросы, наверное, скоро появятся, если, конечно, Вас не напрягает отвечать rolleyes.gif

Спасибо!

PS. Кстати, еще по поводу согласованной фильтрации. Если неизвестны параметры SRRC-фильтра применявшегося в модуляторе в моей тестовой записи, можно ли как-то оценить их (частота среза, rolloff-фактор, порядок), чтобы добиться оптимальных результатов. Методом поиска я какие-то подобрал, но...правильный ли это путь?
petrov
Цитата(Sleepin' Cat Smile @ Oct 20 2010, 18:57) *
Моя программа демодуляции QAM-16, созданная по алгоритму, предложенному в Вашей модели qam_fb_symbol_sync_fb_phase_sync_agc_var_ch_delay_2007_07_10, после обезвреживания всех багов заработала на реальной записи, все три петли (по тактовой, несущей и АРУ) отслеживают изменения соответствующих параметров синхронизации. Но у меня осталась неясность с парой моментов, хотел бы задать Вам вопросы unsure.gif

1. Интерполятор Фарроу (ИФ). Для получения интерполированного отсчета x_interp[nT] (выходной сигнал ИФ на n-ом такте) используются отсчеты x[(n-1)T], x[nT], x[(n+1)T] и x[(n+2)T]. Другими словами, для получения интерполянта на текущем такте нужны входные отсчеты в следующие моменты времени: на предыдущем такте, на текущем и на 2-ух последующих тактах. То есть получается алгоритмическая задержка на 2 такта, если так можно выразиться. Однако, это НЕ требует задерживать сигнал overflow на 2 такта, так как NCO/TCU (timing control unit) формирует сигнал overflow по выходным отсчетам интерполятора, оптимальный момент для взятия значений квадратур соответствует моменту сброса NCO/TCU, когда вырабатывается строб-сигнал overflow. Задержка на 2 такта в ИФ не влияет на работу NCO/TCU. Вроде бы такая логика... Расписываю так подробно такие вещи, потому что просто столкнулся с примером в хелпе MatLab, которые ввели меня в заблуждение относительно этой задержки ИФ, видимо, в этом примере задержка сигнала overflow на 2 такта имела какой-то другой смысл и не связана с ИФ + я не силен в Simulink, привык работать в m-языке.


Здесь не нужно никак эту задержку учитывать, хоть по 1000 отсчётам интерполятор работал бы, путь сигнала по mu не задержан относительно enable. Не забывайте что комбинационную часть интерполятора можно внести в домен двух отсчётов на символ. Есть ошибки в этой модели, исправленные в последующих, интерполятор работает не в оптимальном диапазоне mu, при 8 отсчётах на символ это незаметно, здесь и линейного интерполятора хватит. Ещё временная ошибка на NCO должна действовать в домене одного отсчёта на символ.


Цитата(Sleepin' Cat Smile @ Oct 20 2010, 18:57) *
2. Вы используете блок Downsample в данных моделях, чтобы понизить частоту следования квадратур с 1/8 (частота дискретизации) до 1 (символьная скорость) перед выводом точек на блок просмотра созвездия. Было бы справедливо следующее: запихнуть Discrete-Time Scatter Plot Scope в Subsystem с блоком Enabled и "включать" эту подсистему стробом overflow, а на вход ей подавать квадратуры с выхода ИФ. Такой блок выводил бы интерполированные квадратуры в оптимальный момент для взятия отсчета. У меня вроде бы так работает, но хотел понять почему Вы сделали по другому smile.gif


Всё верно, правильно располагать в домене одного отсчёта на символ, где-то давно читал рекомендацию не размещать графики внутри Subsystem, не помню с чем это связано, в данном случае нет большой разницы.

Цитата(Sleepin' Cat Smile @ Oct 20 2010, 18:57) *
Вроде все. Теперь, когда согласованная фильтрация и системы синхронизации готовы, возьмусь за эквалайзер, начну с Ваших моделей, так что новые вопросы, наверное, скоро появятся, если, конечно, Вас не напрягает отвечать rolleyes.gif


Спасибо!


На здоровье! С эквалайзерами тема мутная, вопрос много раз поднимался, но так никто и не написал как делать правильно.


Цитата(Sleepin' Cat Smile @ Oct 20 2010, 18:57) *
PS. Кстати, еще по поводу согласованной фильтрации. Если неизвестны параметры SRRC-фильтра применявшегося в модуляторе в моей тестовой записи, можно ли как-то оценить их (частота среза, rolloff-фактор, порядок), чтобы добиться оптимальных результатов. Методом поиска я какие-то подобрал, но...правильный ли это путь?


С помощью эквалайзера можно оценить при условии что в вашей записи канал искажений не вносит.

Sleepin' Cat Smile
Цитата(petrov @ Oct 20 2010, 21:55) *
Здесь не нужно никак эту задержку учитывать, хоть по 1000 отсчётам интерполятор работал бы, путь сигнала по mu не задержан относительно enable. Не забывайте что комбинационную часть интерполятора можно внести в домен двух отсчётов на символ.


Ага. Так примерно и думал, теперь все встало на свои места.

Цитата(petrov @ Oct 20 2010, 21:55) *
интерполятор работает не в оптимальном диапазоне mu


??? 07.gif А что здесь можно изменить? В каком-то другом масштабе считать mu?

Цитата(petrov @ Oct 20 2010, 21:55) *
Ещё временная ошибка на NCO должна действовать в домене одного отсчёта на символ.


Кстати, как раз заинтересовал этот момент. Я вижу два варианта реализации подачи временной ошибки (выходного сигнала фильтра петли) на вход NCO:

1) На каждом такте из текущего значения NCO вычитается 1 (номинальное изменение) и сигнал ошибки, который обновляется 1 раз за символ.

Код
...
NCO = NCO - 1 - timing_pll_signal;
...


2) На каждом такте из текущего значения NCO вычитается 1 (номинальное изменение) и, при наличие сигнала overflow, сигнал ошибки (1 раз за символ), если нет сигнала overflow, то 0.

Код
...
if (overflow)
   NCO = NCO - 1 - timing_pll_signal;
else
   NCO = NCO - 1; % timing_pll_signal = 0
end;
...


По сути получается просто разные способы upsample-инга выходного сигнала фильтра петли: либо повторять на каждом такте в течение символа значение timing_pll_signal до следующего строба overflow, после которого значение timing_pll_signal обновится; либо между двумя значениями timing_pll_signal вставляем нули. Система символьной синхронизации является multirate-системой, фильтр петли выполняет еще и роль "интерполирующего" фильтра, между блоками TED (обновляет выходной сигнал 1 раз за символ) и NCO (выдает выходной сигнал 1*OSR раз за символ, OSR - коэффициент передискретизации).

Вы имели в виду 2-ой вариант smile.gif ?


Цитата(petrov @ Oct 20 2010, 21:55) *
С эквалайзерами тема мутная, вопрос много раз поднимался, но так никто и не написал как делать правильно.


Точно. Нашел теорию у Скляра, вроде у Прокиса тоже есть + Ваши модели, чтобы связать эту теорию с практикой + IEEE.
К сожалению, Майкл Райс этой темы в своей книге "Digital Communications. A Discrete-Time Approach" не касался. Очень хорошая книга по цифровой связи, про петли синхронизации в ней здорово написано.
petrov
Цитата(Sleepin' Cat Smile @ Oct 21 2010, 10:13) *
Вы имели в виду 2-ой вариант smile.gif ?


Посвежее модели посмотрите...
Sleepin' Cat Smile
Цитата(petrov @ Oct 21 2010, 19:57) *
Посвежее модели посмотрите...


Данке шон)
rrr345
Разбираюсь с моделью psk8_fast_ff_nda_symbol_sync_fast_ff_nda_phase_sync_2006_11_15 и возникают вопросы.
1 Какое назначение phase_unwrap в блоке фазовой синхронизации?
2 Приведенная схема отличается от аналогичной у Прокиса отсутствием петли после полосового фильтра. Насколько петля очищает несущую, или достаточно узкополосного фильтра? Понятно что полоса фильтра ограничена всеми суммарными нестабильностями.
3 Пытаюсь перевести приведенную модель на си, и не знаю как поделить частоту несущей на 8. Не могу найти описания реализации. Не ужели частоту делят как в классических синтезаторах(обычный бинарный сигнал и счетчик)? Или существует другие решения?
petrov
Там же показано как фаза на 8 делится, phase_unwrap нужен чтобы после этого деления фазу развернуть до 2pi устойчиво, здесь усреднение фильтром осуществляется дополнительная ФАПЧ не нужна.
rrr345
Цитата(petrov @ Nov 2 2010, 20:54) *
Там же показано как фаза на 8 делится, phase_unwrap нужен чтобы после этого деления фазу развернуть до 2pi устойчиво, здесь усреднение фильтром осуществляется дополнительная ФАПЧ не нужна.

Сапсибо, все понятно.
MKS
Цитата(petrov @ Dec 8 2008, 15:25) *
Filtered Multitone (FMT) Modulation, noncritically sampled filter bank, timing frequency phase tracking primer
simulink matlab 7.0
Здравствуйте, начал разбираться с FMT и наткнулся на вашу модель. Не могли бы вы объяснить каким образом у вас в блоке полифазного фильтра после фурье получается 36 подканалов? Такое ощущение что вы как то на 32-х точечьном ДПФ получили коэфициент интерполяции 36 (в пользу этого говорит и частота среза опорного фильтра) но как это получилось не понятно. В той информации которую удалось найти в интернете обычно коэффициент интерполяции == числу отсчётов ДПФ и если у нас 32 точечное ДПФ то соответственно будет интерполяция в 32 раза и опорный фильтр надо считать на 32 отсчёта на символ. Но если так делать и распологать поднесущие в плотную то они начинают сильно перекрыватся и мешать друг другу, если ставить через один то большие зазоры остаются. У вас похоже как то получилось "плавненько" их сдвинуть. Если не трудно хотелось бы про это поподробней узнать.
Заранее спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.