Цитата(fontp @ Feb 19 2010, 16:19)

Не очень понятно как сигнал получен и при каких условиях.
Алгоритм определения частотного сдвига несущей квадратурно-модулированого сигнала в слепую посредством возведения в степень и спектрального анализа приписывают Viterbi&Viterbi.
Там должны выполняться различные дополнительные условия
- должна быть предварительно восстановлены символьная частота и фаза и отсчеты должны браться в правильных точках.
- должен поддерживаться достаточно высокий SNR, поскольку алгоритм обладает некоторыми потерями по отношению к CRLB и эти потери резко возрастают при снижении SNR. Фактически алгоритм проявляет пороговое поведение - при некотором достаточно низком SNR он срывается и дает недостоверные результаты. Немного расширить диапазон SNR к 0дб помогает использование нелинейности по отношению к амплитуде, вместо четвертой степени r*r*r*r*exp(4*i*Ф) используется H( r )*exp(4*i*Ф), для QPSK оптимальна более низкая степень, кажется H( r )=r*r, т.е. не просто возвести сигнал в четвертую степень, но и разделить его на квадрат огибающей
Вам бы сначала нужно выяснить является ли аномальное поведение систематической ошибкой или оно обусловлено шумами. При высоком отношении сигнал/шум никаких аномалий не должно наблюдаться, тогда это ошибки реализации. А потом, наверное, обратиться к работам Viterbi&Viterbi для QPSK
С юбилеем Вас(1000-й пост)!
У меня 4 отсчёта на символ,применяю r*r*r*r*exp(4*i*Ф),насколько я знаю,в алгоритме DFT используются все отсчёты символа. В подтверждение могу сказать что если изменять ошибку частоты кратно бинам FFT то синхронизация выполняется замечательно. А H( r )*exp(4*i*Ф) посмотрю,спасибо!
Алгоритм Витерби действительно выполняется с одним отсчётом на символ и требуется наличие символьной синхронизации, но он не является алгоритмом DFT.