Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: восстановление тактовой частоты при двух отчетах на символ
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
des00
Добрый день!

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

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

Но меня интересует вот какой вопрос. Промоделированная система это система в которой частоты передатчика и приемника равны, отличаются только их фазы. Будет ли работать такая система если частоты разные? Да частоты будут отличаются не сильно, но тем не менее они разные?
Если частота передатчика ниже частоты приемника, то система будет работать, ошибка будет копиться и рано или поздно будет взят 1 отчет за 2 такта.
Но что будет если частота передатчика будет выше частоты приемника? Ведь NCO в такой системе упирается в верхнюю границу по генерируемой частоте и он не сможет сделать так что бы взять 2 отчета за 1 такт.

Или я не правильно понимаю принцип работы петли по тактовой для системы с интерполятором ?

ЗЫ. Как я понимаю подобная ситуация не возникнет если в системе с интерполятором больше чем 2 отсчета на символ или в системе с ГУНом, который сможет дотянуть частоту.


Спасибо!
eugen_pcad_ru
А если к подстройке фазы добавить еще и подстройку по частоте, но с гораздо меньшей чувствительностью?
alex_os
Цитата(des00 @ Apr 16 2009, 20:53) *
Или я не правильно понимаю принцип работы петли по тактовой для системы с интерполятором ?

ЗЫ. Как я понимаю подобная ситуация не возникнет если в системе с интерполятором больше чем 2 отсчета на символ или в системе с ГУНом, который сможет дотянуть частоту.


Спасибо!

Все будет работать. Немножко не правильно Вы себе представляете систему, интерполятор вырабатывает выходной отсчет не из одного входного а из нескольких последовательных входных отсчетов. Вообще проще представлять себе интерполятор+NCO как некое единое устройство - ресамплер, которое в единицу времени потребляет N отсчетов и производит M отсчетов. M может быть как больше, так и меньше N.
-----------------------------------
Интересно при каком минимальном отношении частоты дискретизации к символьной скорости возможно восстановить тактовую, мне кажется что эта величина должна быть больше (1+коэффициент_скругления)?
des00
Цитата(alex_os @ Apr 16 2009, 22:32) *
Все будет работать. Немножко не правильно Вы себе представляете систему, интерполятор вырабатывает выходной отсчет не из одного входного а из нескольких последовательных входных отсчетов. Вообще проще представлять себе интерполятор+NCO как некое единое устройство - ресамплер, которое в единицу времени потребляет N отсчетов и производит M отсчетов. M может быть как больше, так и меньше N.


Спасибо за ответ и отдельное спасибо MKS за модель. Я смотрел на интерполятор не с той стороны и рассматривал его как устройство у которого на входе 2 отсчета и на выходе 2 отсчета. А надо было смотреть как на входе 2 отсчета, а на выходе один.

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

Спасибо.

PS. глупый вопрос, почти уверен что до %)
alex_os
Цитата(des00 @ Apr 17 2009, 08:40) *
Тогда возник еще вопрос, в такой системе где должен стоять дробный эквалайзер работающей с двумя отсчетами на символ? До или после интерполятора?


После интерполятора , конечно, если до интерполятора то его очень тяжко будет подстраивать (если LMS подобный алгоритм, то придется ошибку на выходе решателя как-то пересчитывать в domain до интерполятора, что-то такое сложное и непонятное нужно будет городить).
petrov
Цитата(des00 @ Apr 16 2009, 20:53) *
На данном форуме в темах про интерполяторы для восстановления тактовой/символьной частоты несколько раз встречал упоминание, что если ошибки вызванные влиянием интерполятора устраивают, то можно восстановить тактовую частоту всего при двух отчетах на символ.


При двух отсчётах должно быть ну очень плохо.


Цитата(des00 @ Apr 16 2009, 20:53) *
Но меня интересует вот какой вопрос. Промоделированная система это система в которой частоты передатчика и приемника равны, отличаются только их фазы. Будет ли работать такая система если частоты разные? Да частоты будут отличаются не сильно, но тем не менее они разные?
Если частота передатчика ниже частоты приемника, то система будет работать, ошибка будет копиться и рано или поздно будет взят 1 отчет за 2 такта.
Но что будет если частота передатчика будет выше частоты приемника? Ведь NCO в такой системе упирается в верхнюю границу по генерируемой частоте и он не сможет сделать так что бы взять 2 отчета за 1 такт.


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

По вопросу эквалайзера до интерполятора alex_os совершенно прав, тут как с задержками при конвейеризации фильтра было, приходилось ставить аналогичную задержку в апдейт коэффициентов, здесь придётся ставить интерполятор.
alex_os
Цитата(petrov @ Apr 17 2009, 12:12) *
При двух отсчётах должно быть ну очень плохо.

Вы имеете ввиду, что интерполятор некачественный получается при двух отсчетах на символ?
fontp
Цитата(des00 @ Apr 16 2009, 20:53) *
На данном форуме в темах про интерполяторы для восстановления тактовой/символьной частоты несколько раз встречал упоминание, что если ошибки вызванные влиянием интерполятора устраивают, то можно восстановить тактовую частоту всего при двух отчетах на символ.


Существуют работающие feedforward схемы для 2-х отсчетов, которые нормально работают c mPSK
Предполагается, что тактовые частоты приемника и передатчика совпадают с нужной точностью.
Что обычно выполняется легко для пакетных (burst) модемов
dF*N/F<<1
и никогда не выполняется для непрерывного модема, разве что проводить периодически пересинхронизацию заново


Кубический интерполятор (не совсем Farrow) для 2=х точек докучи
petrov
Цитата(alex_os @ Apr 17 2009, 12:30) *
Вы имеете ввиду, что интерполятор некачественный получается при двух отсчетах на символ?


Да, des00 использует Farrow кубический, ессно он будет большие искажения вносить.
des00
Цитата(petrov @ Apr 17 2009, 02:12) *
При двух отсчётах должно быть ну очень плохо.


хмм, я может быть что то не понимаю, но вот моделька для 2-х отчетов на символ. В модели использован самый простой линейный интерполятор. В данной модели есть расстройка частоты передатчика на 1кгц, если ее убрать (поставить в Signal Source -> Random Integer Generator -> Sample Time == 1/Fs) то видно что ошибка для QPSK составит 4.5 градуса. Если в этой модели использовать кубический интерполятор то ошибка составит ~1 градуса. Для моей системы эти ошибки допустимы, т.к. потом планируется поставить деджитер с аналоговым ГУНом. Расшифруйте пожалуйста что вы понимаете под словами ну очень плохо. Если судить по созвездию, то не все так плохо.

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


Если посмотреть модель, то там вычисления идут последовательно и при расстройке частот да видны ухудшения (точки "булькают"), но при этом вроде как все работает.
-----------------
Кажеться доходит вы имеете в виду что в этом случае дробный эквалайзер будет не успевать проводить последовательные вычисления со скоростью 2 отчета на символ, т.к. будет разрыв когда NCO возьмет отчеты каждый такт?


Цитата(fontp @ Apr 17 2009, 02:32) *
Существуют работающие feedforward схемы для 2-х отсчетов, которые нормально работают c mPSK
Предполагается, что тактовые частоты приемника и передатчика совпадают с нужной точностью.
Что обычно выполняется легко для пакетных (burst) модемов
dF*N/F<<1
и никогда не выполняется для непрерывного модема, разве что проводить периодически пересинхронизацию заново


если рассмотреть 2 генератора в приемнике и передатчике на одну частоту ~30МГц со стабильностью 100ppm, если я правильно понял ваш критерий то dF*1/2 << 1 будет выполняться и для непрерывных модемов. Или я ошибаюсь ?

Есть ли среди ваших запасников статьи о feedback синхронизации по 2-м отсчетам ? smile.gif

Спасибо.
fontp
Цитата(des00 @ Apr 17 2009, 13:45) *
если рассмотреть 2 генератора в приемнике и передатчике на одну частоту ~30МГц со стабильностью 100ppm, если я правильно понял ваш критерий то dF*1/2 << 1 будет выполняться и для непрерывных модемов. Или я ошибаюсь ?

Есть ли среди ваших запасников статьи о feedback синхронизации по 2-м отсчетам ? smile.gif

Спасибо.


Я элементарно полагаю, что для 100 ppm в тактовой необходима пересинхронизация на << 1/100ppm = 10000 символов. Фаза не успевает уйти. Для пакетных модемов это выполняется практически всегда, если мы синхронизируем тактовую в начале по преамбуле или даже по всей длине пакета, если демодулятор программный и памяти хватает. В пакетных модемах практически никогда не следят за тактовой, достаточно определить её один раз (на пакет)

Для непрерывного модема фаза раньше или позже уйдет на пол-символа

У вас же есть модель на R14 зачем Вам ещё статьи? rolleyes.gif

Классический алгоритм Гарднера как раз для двух отсчетов на символ.
Хотя реальные возможности любого модемного алгоритма кроются в деталях, которые Вы "скрываете": тип модуляции, х-ки канала и т.д.
petrov
Цитата(des00 @ Apr 17 2009, 13:45) *
Если судить по созвездию, то не все так плохо.


По мне так плохо, можно вообще упростить модель и смотреть наихудший случай когда на интерполятор постоянно подаётся mu = 0.5 , посмотрите в литературе ЧХ для этого случая.


Цитата(des00 @ Apr 17 2009, 13:45) *
Кажеться доходит вы имеете в виду что в этом случае дробный эквалайзер будет не успевать проводить последовательные вычисления со скоростью 2 отчета на символ, т.к. будет разрыв когда NCO возьмет отчеты каждый такт?


Да нужен будет лишний такт которого нету.
des00
Цитата(petrov @ Apr 17 2009, 06:08) *
По мне так плохо, можно вообще упростить модель и смотреть наихудший случай когда на интерполятор постоянно подаётся mu = 0.5 , посмотрите в литературе ЧХ для этого случая.


вот это мне тоже не понятно. В атаче АЧХ и ФЧХ фарроу первого порядка и простая модель с фарроу первого и второго порядка при mu = 0.5 при 2-х отчетах на символ. Если смотреть на ЧХ то видно что по идее, при 2-х отчетах на символ, будет полный ужас, но в модельке с первым порядком ошибка ~4.5 градусов, а с третим порядком ~1 градуса. Результат странный, но факт остается фактом. %(


про эквалайзер понятно, надо уходить на 4 отсчета на символ. А как поступают в ситуации когда АЦП может дать только 2 отсчета на символ ? повышают частоту дискретизации интерполяцией в 2 раза и берут сигнал с интерполятора ?

Спасибо.
petrov
Цитата(des00 @ Apr 17 2009, 15:25) *
А как поступают в ситуации когда АЦП может дать только 2 отсчета на символ ? повышают частоту дискретизации интерполяцией в 2 раза и берут сигнал с интерполятора ?


Параллельно вычислять раз тактов не хватает.
des00
Цитата(petrov @ Apr 17 2009, 06:38) *
Параллельно вычислять раз тактов не хватает.


я вас правильно понял, интерполировать по двум информационным отсчетам промежуточный отчет и пропустить отчет этого "лишнего такта" и следующий за ним информационный через эквалайзер и детектор гарднера за один такт символьной частоты? Или этот отчет можно вытащить из интерполятора взяв его в середине между информационными отчетами ?
petrov
Цитата(des00 @ Apr 17 2009, 15:25) *
вот это мне тоже не понятно. В атаче АЧХ и ФЧХ фарроу первого порядка и простая модель с фарроу первого и второго порядка при mu = 0.5 при 2-х отчетах на символ. Если смотреть на ЧХ то видно что по идее, при 2-х отчетах на символ, будет полный ужас, но в модельке с первым порядком ошибка ~4.5 градусов, а с третим порядком ~1 градуса. Результат странный, но факт остается фактом. %(


Да ничего странного(если всё там правильно, хотя честно сказать думал что будет хуже), значит вот такая МСИ при такой ЧХ интерполятора, при некоторых других коэффициентах ската возможно будет хуже, возможно что такая ошибка в градусах не совсем объективно характеризует МСИ, если устраивают такие искажения то незачем делать сложнее.


Цитата(des00 @ Apr 17 2009, 15:59) *
я вас правильно понял, интерполировать по двум информационным отсчетам промежуточный отчет и пропустить отчет этого "лишнего такта" и следующий за ним информационный через эквалайзер и детектор гарднера за один такт символьной частоты? Или этот отчет можно вытащить из интерполятора взяв его в середине между информационными отчетами ?


Ну смысл то в том что отсчёты вы можете вычислить любые, но не сможете на этой тактовой подавать на эквалайзер отсчёт за отсчётом 2 отсчёта на символ если символьная частота передатчика чуть выше, придётся как то параллельно вычислять по 2 отсчёта и параллельно подавать на эквалайзер работающий скажем на символьной частоте но при этом дробный, т е будет управление не во времени енаблом а в пространстве мультиплексором, кароче так сходу не могу нарисовать блок-схему но очевидно что это возможно сделать, дело только в том как это правильно организовать, но не касается принципов работы синхронизатора.
des00
Добрый день господа!

Обьясните что происходит с простой моделью модема ?

модель передатчик работает при 4-х отсчетах на символ, приемник тоже. интерполятор скидывает данные в домен 2 отсчета на символ, там домент 1 отсчет на символ и гарднер с петлевым фильтром.

Не понятно вот что : когда есть расстройка генераторов приемника и передатчика, есть точка разрыва 0-1 на mu с выхода NCO. Это понятно, в цифровом виде подстраивается частота. Не понятно почему при этом на созвездии появляться выброс ? От порядка интерполятора это не зависит. Если убрать расстройку частот, то видно что переходный процесс в петле завершается, форма переходного процесса тоже нормальная. Т.е. петля настроена.

И еще не понятно в используемых интерполяторах первого/третьего порядка рабочий диапазон [0:1], если судить по статьям про интерполяторы, данный переход не должен вызывать разрыва в сигнале, но если судить по данной модели то этот разрыв есть?

Подскажите в чем может быть проблема ?


Спасибо.
petrov
Это ошибка в NCO, управлении интерполятором, формировании енабла и т. п. Можно и без расстройки генераторов подобрать ситуацию когда она постоянно будет появляться, много раз сталкивался с таким когда модели делал.
MKS
Если взглянуть на тестовый сигнал, который идет на демодулятор становится понятно что модель работает правильно. smile.gif
Дело в том что скачками изменяется фаза входного сигнала, и демодулятор правильно ее отрабатывает. Если нужно сымитировать небольшую расстройку по частотам то нужно перед блоком Zero-Order Hold иметь больше число отсчетов на символ. Я немного переделал модель, попробуйте ее запустить для k=1 (это ваш случай) и к примеру для k=50, и посмотрите на созвездия входного и востановленого сигнала, а также на график mu от времени. В прицепе модели для matlab 7.3 и 7.0
Нажмите для просмотра прикрепленного файла
petrov
Чтобы посмотреть как символьная синхронизация работает при расстройке символьных генераторов между передатчиком и приёмником посмотрите у меня модели с задержкой переменной длины в канале, на её выходе как раз получается сигнал с различным дробным количеством отсчётов на символ. Можно сделать модель которая буквально будет имитировать небольшие расстройки тактовых генераторов, но это делается не увеличением количества отсчётов на символ в модели, это слишком грубо или долго, придётся делать в передатчике NCO и интерполировать.
links
Цитата(des00 @ Apr 24 2009, 17:58) *
Добрый день господа!

Обьясните что происходит с простой моделью модема ?

модель передатчик работает при 4-х отсчетах на символ, приемник тоже. интерполятор скидывает данные в домен 2 отсчета на символ, там домент 1 отсчет на символ и гарднер с петлевым фильтром.

Не понятно вот что : когда есть расстройка генераторов приемника и передатчика, есть точка разрыва 0-1 на mu с выхода NCO. Это понятно, в цифровом виде подстраивается частота. Не понятно почему при этом на созвездии появляться выброс ? От порядка интерполятора это не зависит. Если убрать расстройку частот, то видно что переходный процесс в петле завершается, форма переходного процесса тоже нормальная. Т.е. петля настроена.

И еще не понятно в используемых интерполяторах первого/третьего порядка рабочий диапазон [0:1], если судить по статьям про интерполяторы, данный переход не должен вызывать разрыва в сигнале, но если судить по данной модели то этот разрыв есть?

Подскажите в чем может быть проблема ?


Спасибо.


Всё упирается в особенности работы симулинка. Поскольку симулинк должен на каждый такт внутреннего генератора вырабатывать сигналы для всех блоков, то невозможно сделать операцию "добавление-выбрасывание" отсчёта, которая необходима для моделирования расстройки генераторов приёмника и передатчка. В модели Петрова с переменной задержкой канала сдвиг больше чем на один тактовый отсчёт формируется выбором соответствующего вектора отсчётов в (SelectRows в блоке channel_delay). Но это моделирует колебания фазы тактового генератора передатчика, а не его расстройку, т.е. постоянный набег или постоянное отставание фазы.
petrov
Цитата(links @ Apr 25 2009, 12:34) *
Всё упирается в особенности работы симулинка. Поскольку симулинк должен на каждый такт внутреннего генератора вырабатывать сигналы для всех блоков, то невозможно сделать операцию "добавление-выбрасывание" отсчёта, которая необходима для моделирования расстройки генераторов приёмника и передатчка. В модели Петрова с переменной задержкой канала сдвиг больше чем на один тактовый отсчёт формируется выбором соответствующего вектора отсчётов в (SelectRows в блоке channel_delay). Но это моделирует колебания фазы тактового генератора передатчика, а не его расстройку, т.е. постоянный набег или постоянное отставание фазы.


Всё упирается в разработчика а не в симулинк. Можно сделать модель которая будет имитировать расстройку реальных тактовых генераторов, никаких препятствий для этого нету. В модели с переменной задержкой в канале ессно нельзя сделать расстройку т к линия задержки либо опустошится либо переполнится, но можно съимитировать расстройку в разумных пределах чтобы проверить работу символьной синхронизации, ведь время установления ФАПЧ конечное, делайте длиннее линию задержки, увеличите таким образом длительность отрезка соответствующего разности частот тактовых генераторов передатчика и приёмника.
links
Цитата(petrov @ Apr 25 2009, 12:55) *
Всё упирается в разработчика а не в симулинк. Можно сделать модель которая будет имитировать расстройку реальных тактовых генераторов, никаких препятствий для этого нету. В модели с переменной задержкой в канале ессно нельзя сделать расстройку т к линия задержки либо опустошится либо переполнится, но можно съимитировать расстройку в разумных пределах чтобы проверить работу символьной синхронизации, ведь время установления ФАПЧ конечное, делайте длиннее линию задержки, увеличите таким образом длительность отрезка соответствующего разности частот тактовых генераторов передатчика и приёмника.

Всё упирается в разработчика, возражений нет. smile.gif
Если нужно определить кривые помехоустойчивости для коэффициентов ошибок 10е-3 - 10е-6 при работе такой схемы в установившемся режиме, то какая должна быть длительность линии задержки?
petrov
Цитата(links @ Apr 25 2009, 14:59) *
Если нужно определить кривые помехоустойчивости для коэффициентов ошибок 10е-3 - 10е-6 при работе такой схемы в установившемся режиме, то какая должна быть длительность линии задержки?


Нет нужды в этом для символьной синхронизации с ФАПЧ, не будет BER от расстройки зависеть, прибавьте константу на входе NCO символьной ФАПЧ, ФАПЧ отработает и накопит в интегрирующем звене этот сдвиг по частоте, а шумы будут от коэффициентов пропорционального и интегрирующего звена зависеть.
links
Цитата(petrov @ Apr 25 2009, 15:38) *
Нет нужды в этом для символьной синхронизации с ФАПЧ, не будет BER от расстройки зависеть, прибавьте константу на входе NCO символьной ФАПЧ, ФАПЧ отработает и накопит в интегрирующем звене этот сдвиг по частоте, а шумы будут от коэффициентов пропорционального и интегрирующего звена зависеть.


Да, не будет. Но если поставлена задача проверить работу модема при заданных условиях, среди которых рассогласование приёмного и передающего генераторов? В симулинке единой моделью этого не сделать.
petrov
Цитата(links @ Apr 25 2009, 16:05) *
Да, не будет. Но если поставлена задача проверить работу модема при заданных условиях, среди которых рассогласование приёмного и передающего генераторов? В симулинке единой моделью этого не сделать.


Можно сделать и единой моделью в симулинке.
links
Цитата(petrov @ Apr 25 2009, 16:16) *
Можно сделать и единой моделью в симулинке.


У меня не получилось, не смог обойти проблему вставки-удаления. В итоге проще оказалось на С.
des00
Всем спасибо за ответы, не все так плохо с моделью %)

Возник у меня еще вот такой вопрос. Где принято ставить приемный RRC фильтр в модемах с интерполятором ?

У меня в железке АЦП работает в домене 4sps, затем интерполятор сбрасывает все на 2sps, за ним стоит RRC фильтр, гарднер и петля. Петля вроде настроена (коэффициенты подобрал в матлабе, проверил в железке переходную рисует верно).

При работе вижу следующую картину если интерполятором в передатчике подобрать такую фазу, что в приемнике mu "колбасится" 0-1 (не то что бы постоянно, но регулярно возникают переходы), то на выходе приемного rrc фильтра иногда видны искажения, при переходе mu из 0-1 и наоборот. Искажения проявляются в виде изменения амплитуды в точках по данным где-то на 10-15%. Если в передатчике поставить RC фильтр с тем же скруглением то данных искажений нет.

модель в матлабе пока предоставить не могу, т.к. не могу поймать в нем данный эффект sad.gif

Но данный эффект поймал в моделсиме, в котором, для частоты эксперимента, заменил все RTL блоки (с конвейеризацией и т.д.) идеальными, считающими за 0/1 такт. на скриншоте на decoder__idat приходит выход приемного RRC фильтра, декодированные данные лежат в регистре dat_reg. На вейвформе данные имеют размах ~+-70, но отсчет выделенный красным (слева от курсора) равен 50 ти.

Данный эффект мне не понятен, если не сложно просветите ламера %)

Спасибо.

ЗЫ. Может быть это связанно с тем, что стробы с NCO, идущие на декодер, нужно дополнительно задерживать на задержку приемного RRC фильтра, но тогда этот эффект был бы легко наблюдаем в матлабе, что у меня не получилось сделать.
links
Цитата(des00 @ Apr 26 2009, 23:26) *
Возник у меня еще вот такой вопрос. Где принято ставить приемный RRC фильтр в модемах с интерполятором ?


Если в передатчике поставить RC фильтр с тем же скруглением то данных искажений нет.


Лучше поставить схему гарднера (с мягким оцениванием) до RRC фильтра, тогда не будет задержки на длину фильтра и схема будет устойчивее.
У вас используется SQRT RRC? Не понятна последняя фраза, ведь в передатчике такой фильтр должен быть обязательно.
des00
Цитата(links @ Apr 27 2009, 00:04) *
Лучше поставить схему гарднера (с мягким оцениванием) до RRC фильтра, тогда не будет задержки на длину фильтра и схема будет устойчивее.


хмм, попробую порыть у незами, но тогда есть 3 вопроса :

1. В моделях у petrov RRC фильтр стоит до гарнднера, правда и до интерполятора и его модемы работают.
2. Если поставить гарднера до RRC фильтра, то куда ставить дробный эквалайзер? Ведь дробный эквалайзер должен стоять после согласованной фильтрации и править сигнал в том числе для цепей выделения тактовой частоты.
3. в этой статье http://www.commsdesign.com/main/9807fe3.htm в разделе Receiver structures for fixed-rate interpolation приведена схема приемника в котором согласованный фильтр стоит после интерполятора

http://i.cmpnet.com/csd/gifs/9807fe17.gif

Цитата
У вас используется SQRT RRC? Не понятна последняя фраза, ведь в передатчике такой фильтр должен быть обязательно.


я сравниваю два варианта :
1. В передатичке и в приемнике стоят фильтры корень из приподнятого косинуса со скруглением 0.5 (RRC - Root Raised Cosine)
2. В передатичке стоит фильтр приподнятного косинуса со скруглением 0.5 (RC - Raised Cosine) в приемнике фильтра нет.

Спасибо.
petrov
Цитата(des00 @ Apr 27 2009, 13:05) *
3. в этой статье http://www.commsdesign.com/main/9807fe3.htm в разделе Receiver structures for fixed-rate interpolation приведена схема приемника в котором согласованный фильтр стоит после интерполятора.


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





Цитата(des00 @ Apr 27 2009, 13:05) *
я сравниваю два варианта :
1. В передатичке и в приемнике стоят фильтры корень из приподнятого косинуса со скруглением 0.5 (RRC - Root Raised Cosine)
2. В передатичке стоит фильтр приподнятного косинуса со скруглением 0.5 (RC - Raised Cosine) в приемнике фильтра нет.


Второй вариант заведомо неправильный, лучше делать по 1 варианту.
links
Цитата(des00 @ Apr 27 2009, 13:05) *
хмм, попробую порыть у незами, но тогда есть 3 вопроса :

1. В моделях у petrov RRC фильтр стоит до гарнднера, правда и до интерполятора и его модемы работают.
2. Если поставить гарднера до RRC фильтра, то куда ставить дробный эквалайзер? Ведь дробный эквалайзер должен стоять после согласованной фильтрации и править сигнал в том числе для цепей выделения тактовой частоты.
3. в этой статье http://www.commsdesign.com/main/9807fe3.htm в разделе Receiver structures for fixed-rate interpolation приведена схема приемника в котором согласованный фильтр стоит после интерполятора


Гарднера можно ставить до и после RRC, но если ставить после, то на схему восстановления тактовой будет влиять задержка фильтра, что уменьшает устойчивость. Правда, если рассогласование тактовых частот передатчка и приёмника небольшое, то схемы работают практически одинаково. У схемы с гарднером до RRC ещё один плюс: короткая обратная связь от детектора к интерполятору лучше ложится на ПЛИС.
Если канал такой, что требуется эквалайзер, то RRC вообще можно не ставить, эквалайзер его заменит. Тоже самое про СФ (если эквалайзер дробный). Что касается гарднера с мягкой оценкой, то эта оценка будет ухудшаться по мере увеличения искажений канала и тогда ничего не остаётся, как оставить его после эквалайзера.


Цитата
я сравниваю два варианта :
1. В передатичке и в приемнике стоят фильтры корень из приподнятого косинуса со скруглением 0.5 (RRC - Root Raised Cosine)
2. В передатичке стоит фильтр приподнятного косинуса со скруглением 0.5 (RC - Raised Cosine) в приемнике фильтра нет.


Второй вариант - только теоретический. Позволяет убрать межсимволику, но не обеспечивает согласованной фильтрации. Первый делает и то и другое.
des00
Спасибо всем за ответы, кое что прояснилось smile.gif

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


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

Цитата
Если канал такой, что требуется эквалайзер, то RRC вообще можно не ставить, эквалайзер его заменит. Тоже самое про СФ (если эквалайзер дробный). Что касается гарднера с мягкой оценкой, то эта оценка будет ухудшаться по мере увеличения искажений канала и тогда ничего не остаётся, как оставить его после эквалайзера.


Если я правильно понял в передатчике стоит только RRC, а в приемнике эквалайзер, который при адаптации прикинется RRC и скорректирует искажения? Но ведь в таком случае имеем следующее : на RRC с a=0.5 и 14 ти битных коэффициентах, требуется приемный FIR 23-25 го порядка (это фильтр в домене 2sps), логично предположить что эквалайзер должен быть аналогичного порядка. Но вот весить такой эквалайзер будет много больше чем RRC и эквалайзер 8-12 го порядка, которого достаточно для компенсации искажений в канале в моем случае. Т.е. такой вариант мне не подходит.

Цитата
Можно и после интерполятора ставить, можно в качестве согласованного фильтра использовать сам эквалайзер, но всёравно до интерполятора должен стоять ФНЧ фильтр, вы ведь осуществляете децимацию а значит должны подавить область верхних частот чтобы небыло спектральных наложений, просто в итоге получается что согласованный фильтр и есть лучший вариант этого ФНЧ


Вы мне говорили что делать согласованный фильтр на адаптивном не есть хорошо, т.к. это требует ресурса и большего динамического диапазона коэффициентов. Но похоже везде есть исключения %)

Тема интересная и познавательная, спасибо за ваши ответы, но все же мы немного отклонились от вопроса в посте #28. Почему при скачках mu из 0->1 и наоборот при передаче единичного символа, импульс на выходе приемного RRC фильтра, стоящего за интерполятором, достаточно сильно искажается. Мне кажется что это происходит из-за того, что этот импульс на входе RRC фильтра получается не найквистовсим/согласованым с ИХ приемного RRC фильтра, потому и возникают искажения. Но тогда не понятно как тогда вообще работают такие модемы. Ведь режим заворота по mu это нормальный режим работы петли с интерполятором. Если для BPSK/QPSK с этим еще можно мириться, то на высоких камах это сделает систему не работоспособной. Все эти рассуждения для системы с интерполятором для 4sps.
petrov
Цитата(des00 @ Apr 27 2009, 20:08) *
Тема интересная и познавательная, спасибо за ваши ответы, но все же мы немного отклонились от вопроса в посте #28. Почему при скачках mu из 0->1 и наоборот при передаче единичного символа, импульс на выходе приемного RRC фильтра, стоящего за интерполятором, достаточно сильно искажается. Мне кажется что это происходит из-за того, что этот импульс на входе RRC фильтра получается не найквистовсим/согласованым с ИХ приемного RRC фильтра, потому и возникают искажения. Но тогда не понятно как тогда вообще работают такие модемы. Ведь режим заворота по mu это нормальный режим работы петли с интерполятором. Если для BPSK/QPSK с этим еще можно мириться, то на высоких камах это сделает систему не работоспособной. Все эти рассуждения для системы с интерполятором для 4sps.


единичного символа - это что означает? Cкачки mu между 0 и 1 нормальное явление, при этом не должно наблюдаться каких-либо искажений, ведь енабл в противоположную сторону скачет.
des00
вопрос снят, разобрался, не совсем точно перенес модель NCO из матлаба в верилог %))

всем большое спасибо!!!

ЗЫ. на вейвформе этот косяк кстати явно видно %)
Valery_P
Цитата(des00 @ Apr 27 2009, 21:08) *
Почему при скачках mu из 0->1 и наоборот при передаче единичного символа, импульс на выходе приемного RRC фильтра, стоящего за интерполятором, достаточно сильно искажается.


У меня такая же ситуация в железе. Поясните, пожалуйста, как избавиться от искажений?
petrov
Цитата(Valery_P @ Feb 9 2010, 14:08) *
У меня такая же ситуация в железе. Поясните, пожалуйста, как избавиться от искажений?


Отладить ситуацию на модели а потом перенести на железо.
Valery_P
Цитата(petrov @ Feb 9 2010, 16:22) *
Отладить ситуацию на модели а потом перенести на железо.

Так я Вашу модель и взял за основу. Там тоже есть скачок, но он не портит данные, хотя длительность симуляции здесь маленькая и QAM-16. У меня искажения на QAM-16 происходят раз в 4 часа в железе на символьной частоте 2кГц. А вот на QAM-64 при той же символьной искажения(ошибки) проявляются чаще - с кратностью 55с, но не всегда. 55с - это период, через который происходит скачок. На QAM-16 ошибки появляются в момент скачка (это я проверил). Голову уже сломал, ну всё также, как в модели. Скажите хотя бы на что обратить внимание?
des00
Цитата(Valery_P @ Feb 9 2010, 05:08) *
У меня такая же ситуация в железе. Поясните, пожалуйста, как избавиться от искажений?

я незнаю точно как вы тестируетесь и как вы реализовали это в железе. В моем случае, при переносе модели было сделано не правильно :
1. сигнал 2sps был не выровнен с обновлением mu
2. диапазон mu был [0:1) вместо [0:1], (как раз этот косяк в NCO и демонстрирует вейвформа)

Что конкретно в вашей модели происходит надо смотреть. Вы говорите что косяк происходит редко, если вы ошиблись так же как и я, то это действительно редкая ситуация, если вы работаете по завороту от одного генератора. Если взять разные генераторы то скачки по mu должны быть гораздо чаще %)
Valery_P
Цитата(des00 @ Feb 10 2010, 11:27) *
2. диапазон mu был [0:1) вместо [0:1], (как раз этот косяк в NCO и демонстрирует вейвформа)

А это может быть! Сейчас буду тестировать. Спасибо!
Valery_P
Проверил, не в этом дело. sad.gif А при завороте от одного генератора вообще косяков не происходит, что вполне, по-моему логично, т.к. символьная частота кратна частоте дискретизации. Пытаюсь копать дальше.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.