У меня проблема с обработкой сигнала BPSK.Я хочу определить угол отклонения сигнального созвездия.
У меня есть идея сделать это на основе квадратуры, как в примере ниже.Но это не подходит для случаев, когда шумные созвездия пересекают оси 1 и 4 четверти.В этом случае результат неудовлетворительный - сценарий учитывает средний угол только для части созвездия.
th = angle(x);
if nnz(th < pi/2 & th > 0) > nnz(th > pi/2 & th>0)
mth = rad2deg(mean(th(th < pi/2 & th > 0)));
else
mth = rad2deg(-pi + mean(th(th >= pi/2 & th > 0)));
end
Результаты:
Реальный сигнал (неудовлетворительный)
Тестовый сигнал (в порядке)
Тестовый сигнал (не в порядке)
Шум в реальном сигнале - это пилот-сигнал синусоподобного типа.
Второйскрипт:
ma = rad2deg(angle(mean(x(x >= 0))));
mb = rad2deg(angle(mean(x(x<0))));
mth = (ma + (rad2deg(pi) + mb))/2;
Здесь я проверяю средний угол в 2 областях.Но это слишком неверно, так как, когда сигнал пересекает оси 1 и 2, скрипт не работает.
Результаты:
Реальный сигнал (не в порядке)
Тестовый сигнал (в порядке)
Тестовый сигнал (не в порядке)
Учитывая все эти предыдущие результаты, я думаю, что мне следует уйти от квадратуры.Итак, у меня есть следующие вопросы: Как я могу найти средний угол созвездия без привязки к квадратурам?
Может быть, существует какой-то стандартный метод для определения среднего угла созвездия?