exponenta event banner

genqammod

Общая квадратурная амплитудная модуляция (КАМ)

Синтаксис

Описание

пример

y = genqammod(x,const) возвращает комплексную огибающую QAM для сигнала сообщения x. Вход const определяет отображение сигнала для модуляции.

Примеры

свернуть все

Передавать и принимать данные с помощью неразводной 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 дБ (SNR).

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, имеющим SNR 10 дБ. Определите частоту ошибок символов для уменьшенного SNR. Как и ожидалось, производительность ухудшается при уменьшении SNR.

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

Создайте точки, описывающие шестиугольное созвездие.

inphase = [1/2 1 1 1/2 1/2 2 2 5/2];
quadr = [0 1 -1 2 -2 1 -1 0];
inphase = [inphase;-inphase]; inphase = inphase(:);
quadr = [quadr;quadr]; quadr = quadr(:);
const = inphase + 1i*quadr;

Постройте график созвездия.

h = scatterplot(const);

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

Создание символов входных данных. Модулировать символы с помощью этой совокупности.

x = [3 8 5 10 7];
y = genqammod(x,const);

Демодулировать модулированный сигнал, y.

z = genqamdemod(y,const);

Постройте график модулированного сигнала на том же рисунке.

hold on;
scatterplot(y,1,0,'ro',h);
legend('Constellation','Modulated signal');

Figure Scatter Plot contains an axes. The axes with title Scatter plot contains 2 objects of type line. These objects represent Constellation, Modulated signal.

Определите количество символьных ошибок между демодулированными данными и исходной последовательностью.

numErrs = symerr(x,z)
numErrs = 0

Входные аргументы

свернуть все

Сигнал сообщения, заданный как скаляр, вектор, матрица или 3-D массив числовых значений. Сигнал сообщения должен состоять из целых чисел от 0 и length(const)–1. Если x является матрицей с несколькими строками, функция обрабатывает столбцы независимо.

Типы данных: double | single | fi | int8 | int16 | uint8 | uint16

Отображение сигнала, указанное как комплексный вектор.

Типы данных: double | single | fi | int8 | int16 | uint8 | uint16
Поддержка комплексного номера: Да

Выходные аргументы

свернуть все

Комплексная огибающая, возвращаемая как скаляр, вектор, матрица или 3-D массив числовых значений. Длина y совпадает с длиной входа x.

Типы данных: double | single | fi | int8 | int16 | uint8 | uint16

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен до R2006a