Доброе время суток!
Помогите чайнику.
Есть QPSK сигнал
Частота дискретизации 500 кГц.
Символьная скорость 182044 Гц.
Нужно произвести демодуляцию (программная реализация).
Использовал за основу схему Петрова(qpsk_fb_symbol_sync_fb_phase_sync_agc_2008_05_15)
По схеме на вход поступает сигнал с частотой дискретизайии в 8 раз превышающей символьную, для отработки на фильтре Фэрроу 3го порядка.
Вопрос в том, что если на мою реализацию этой схему подается сигнал с Fd = nFs(n-целое), то все работает, я интерполирую сигнал, чтобы было 8 Fd, выход четкий как нужно.
Но если, как в приведенных выше услових, т.е. нужна дробная интерполяция, то вылетает полная ерунда.
Я действую так: интерполирую сигнал в три раза(простым добавлением нулей + КИХ фильтр) Fd = 3*500000 = 1500000 Гц
А потом получается нужно получить частоту дискретизации 8*Fs = 8*182044 = 1456352 Гц.
т.е провести децимацию сигнала в 1500000/1456352 = 1,02997 раза.
Я это делаю путем прибавления к выходу схемы Гарднера (-0,02997/8). Это значение идет в фильтр Фэрроу. 8 потому что 8 отсчетов на 1 символ.
Я либо все сильно усложняю, либо чего-то не понимаю, но не пойму что именно.
Помогите разобраться!