BPSK угол отклонения - PullRequest
1 голос
/ 05 мая 2019

У меня проблема с обработкой сигнала 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)

Тестовый сигнал (в порядке) Test signal (ok)

Тестовый сигнал (не в порядке) Test signal (not ok)

Шум в реальном сигнале - это пилот-сигнал синусоподобного типа.

Второйскрипт:

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)

Тестовый сигнал (в порядке) Test signal (ok)

Тестовый сигнал (не в порядке) Test signal (not ok)

Учитывая все эти предыдущие результаты, я думаю, что мне следует уйти от квадратуры.Итак, у меня есть следующие вопросы: Как я могу найти средний угол созвездия без привязки к квадратурам?

Может быть, существует какой-то стандартный метод для определения среднего угла созвездия?

1 Ответ

0 голосов
/ 06 мая 2019

Используйте функцию atan2 , чтобы определить, в каком квадранте принят полученный символ. А затем вычтите угол принятого символа из идеального символа, чтобы получить фазовую ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...