[an error occurred while processing this directive]
|
Делал демодулятор QPSK на FPGA, пока не отмоделировал всё в симулинке
книжки соответствующие не перелопатил тоже ничего не получалось, видимо с програмной реализацией то же самое.
Действительно нужно пренести спектр на нулевую частоту, затем согласованные фильтры в квадратурных каналах. Потом у вас должно быть устройство символьной синхронизации чтобы брать отсчёты с выхода фильтров в моменты максимального отношения сигнал шум. Далее вычисляете arg() комплексных отсчётов, получаете фазу на каждом символьном интервале, находите разность фаз на текущем и предыдущем символьных интервалах(так называемая дифференциальная демодуляция), в зависимости от полученного угла определяете переданные биты. Если сдвиг частот 2*pi*df*T много много меньше чем pi/4(для QPSK, для BPSK pi/2) df-суммарный сдвиг частоты в канале, T-длительность символа, то фазу можно не подстраивать. Иначе разность фаз на текущем и предыдущем символьных интервалах имеет постоянную угловую составляющую, которую можно усреднить интегратором и вычитать по обратной связи из искомой разности углов.
E-mail: info@telesys.ru