Общая модуляция QAM в канале AWGN

Передайте и примите данные с помощью непрямоугольного 16-арного созвездия в присутствии Гауссова шума. Покажите график поля точек шумного созвездия и оцените вероятность ошибки символа (SER) для двух различных отношений сигнал-шум.

Создайте 16-QAM созвездие на основе стандарта V.29 для телефонных модемов.

c = [-5 -5i 5 5i -3 -3-3i -3i 3-3i 3 3+3i 3i -3+3i -1 -1i 1 1i];
M = length(c);

Сгенерируйте случайные символы.

data = randi([0 M-1],2000,1);

Модулируйте данные с помощью genqammod функция. Общая модуляция QAM необходима, потому что пользовательское созвездие не прямоугольное.

modData = genqammod(data,c);

Пропустите сигнал через канал AWGN, имеющий отношение сигнал/шум (ОСШ) 20 дБ.

rxSig = awgn(modData,20,'measured');

Отобразите график поля точек принятого сигнала и ссылки созвездия, c.

h = scatterplot(rxSig);
hold on
scatterplot(c,[],[],'r*',h)
grid
hold off

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains 2 objects of type line. This object represents Channel 1.

Демодулируйте принятый сигнал при помощи genqamdemod функция. Определите количество ошибок символа и коэффициент ошибки символа.

demodData = genqamdemod(rxSig,c);
[numErrors,ser] = symerr(data,demodData)
numErrors = 1
ser = 5.0000e-04

Повторите процесс передачи и демодуляции с каналом AWGN, имеющим ОСШ на 10 дБ. Определите вероятность ошибки символа для уменьшенного ОСШ. Как ожидалось, эффективность снижается, когда ОСШ уменьшается.

rxSig = awgn(modData,10,'measured');
demodData = genqamdemod(rxSig,c);
[numErrors,ser] = symerr(data,demodData)
numErrors = 462
ser = 0.2310