Добрый день,
Пытаюсь поcтроить модель демодулятора QPSK.
Сейчас на этапе символьной синхронизации.
Есть блок Фарроу, есть блок Гарднера, есть Loop фильтр(2-го порядка, пропорц+интегр части),
есть аккумулятор мю для фарроу.
В принципе работает как ожидается, но только на модельном сигнале "11,00,11,00 ..."
т.е. когда по i и по q максимум переходов через ноль
На случайном сигнале ошибку (выход после loop фильтра) начинает достаточно сильно колбасить.
В принципе это понятно - переходы через ноль теперь есть не каждый такт и следовательно на Гарднера
приходят комплекты отсчётов, у который межсимвольный отсчёт не всегда ноль, что даёт большие значения на его выходе.
Loop фильтр их гасит похоже не очень эффективно, т.к. у него есть пропорциональная часть.
Я всё-таки предполагал, что выход loop фильтра должен быть очень стабилен. Ну максимум шевелится в каком-то далёком знаке.
Как с этим бороться ?
1. Фильтровать данные, поступающие на Гарднера ? Подавать только те, у которых межсимвольный отсчёт около нуля?
2. Считать коэффициенты loop фильтра как-то по другому ?
Считал по документу
http://ece485web.groups.et.byu.net/ee485.f...s/pll_notes.pdf, стр 333.
K0 = 1
Kp = 1
bandwidth (% of symbol speed) = 0.125
получил
k1 0,003992012
k2 3,99201E-06
3. Есть какой-то секретный ингредиент ?
Заранее спасибо за ответы.