Модемные гуру подскажите в чем причина следующего эффекта:
В приложении две модели дробных трансиверов. Символьная частота == Тактовая частота * 1.25. Для простоты использовано QPSK, гарднер, ошибки по несущей нет. Частота АЦП/ЦАП 10sps.
В модели ideal_usial_fract обычный демодулятор с RRC фильтром на 10sps, за ним интерполятор на 2sps и восстановление данных. NCO генерирует частоты следующим образом тактовая -> 8sps -> 2/1sps. Все работает.
В модели ideal_usial_fract_2 приемник с RRC фильтром на 8sps, интерполятор стоит перед ним как ресамлер 10sps->8sps(фильтра до NCO для простоты нет). NCO генерирует частоты тактовая -> 8/2/1sps. Качество работы много хуже.
Чую что по второй схеме делать демодуляторы нельзя, но объяснить почему для себя не могу. Вроде все верно. Какая разница на какой частоте выкусывать интерполятором нужную фазу 8sps/2sps. Ведь в случае 8sps приемника частота 2sps получается синхронно из 8sps. А модуль восстановления тактовой привязывается к отчетам на 2sps. Или я не правильно собрал демодулятор?
Спасибо.
ЗЫ. Старой ошибки реализации NCO, в виде неправильного накопления ошибки, в модели нет, т.к. порт timing error стоит в режиме reset в ноль.