У меня проблема с обработкой сигнала 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
Результаты:
Реальный сигнал (неудовлетворительный) ![Real signal (unsatisfactory)](https://i.stack.imgur.com/YQlrc.png)
Тестовый сигнал (в порядке) ![Test signal (ok)](https://i.stack.imgur.com/JDSLS.png)
Тестовый сигнал (не в порядке) ![Test signal (not ok)](https://i.stack.imgur.com/tRM91.png)
Шум в реальном сигнале - это пилот-сигнал синусоподобного типа.
Второйскрипт:
ma = rad2deg(angle(mean(x(x >= 0))));
mb = rad2deg(angle(mean(x(x<0))));
mth = (ma + (rad2deg(pi) + mb))/2;
Здесь я проверяю средний угол в 2 областях.Но это слишком неверно, так как, когда сигнал пересекает оси 1 и 2, скрипт не работает.
Результаты:
Реальный сигнал (не в порядке) ![Real signal (not ok)](https://i.stack.imgur.com/f8raB.png)
Тестовый сигнал (в порядке) ![Test signal (ok)](https://i.stack.imgur.com/b7ltj.png)
Тестовый сигнал (не в порядке) ![Test signal (not ok)](https://i.stack.imgur.com/wD8S5.png)
Учитывая все эти предыдущие результаты, я думаю, что мне следует уйти от квадратуры.Итак, у меня есть следующие вопросы: Как я могу найти средний угол созвездия без привязки к квадратурам?
Может быть, существует какой-то стандартный метод для определения среднего угла созвездия?