pskmod

Фазовая манипуляция

Описание

y = pskmod(x,M) модулирует входной сигнал, x, использование манипулирования сдвига фазы (PSK) с модуляцией заказывает M.

пример

y = pskmod(x,M,ini_phase) задает начальную фазу модулируемого PSK сигнала.

y = pskmod(x,M,ini_phase,symorder) задает порядок символа модулируемого PSK сигнала.

Примеры

свернуть все

Модулируйте и постройте созвездия QPSK и сигналов с 16 PSK.

QPSK

Установите порядок модуляции к 4.

M = 4;

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

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

Модулируйте символы данных.

txSig = pskmod(data,M,pi/M);

Передайте сигнал через белый шум и постройте его созвездие.

rxSig = awgn(txSig,20);
scatterplot(rxSig)

С 16 PSK

Измените порядок модуляции от 4 до 16.

M = 16;

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

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

Модулируйте символы данных.

txSig = pskmod(data,M,pi/M);

Передайте сигнал через белый шум и постройте его созвездие.

rxSig = awgn(txSig,20);
scatterplot(rxSig)

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

dataIn = randi([0 3],1000,1);

QPSK модулирует данные.

txSig = pskmod(dataIn,4,pi/4);

Передайте сигнал через канал AWGN.

rxSig = awgn(txSig,10);

Демодулируйте полученный сигнал и вычислите количество ошибок символа.

dataOut = pskdemod(rxSig,4,pi/4);
numErrs = symerr(dataIn,dataOut)
numErrs = 2

Постройте отображение символа PSK для Грэя, и естественный двоичный файл закодировал данные.

Установите порядок модуляции, и затем создайте последовательность данных, содержащую полный набор точек созвездия.

M = 8;
data = (0:M-1);
phz = 0;

Модулируйте и демодулируйте данные с помощью Грэя, и естественный двоичный файл закодировал данные.

symgray = pskmod(data,M,phz,'gray');
mapgray = pskdemod(symgray,M,phz,'gray');

symbin = pskmod(data,M,phz,'bin');
mapbin = pskdemod(symbin,M,phz,'bin');

Постройте точки созвездия с помощью одного из наборов символов. Для каждой точки созвездия присвойте метку, указывающую на Серые и естественные двоичные значения для каждого символа.

  • Для Серого бинарного отображения символа смежные точки созвездия отличаются одним битом и не численно последовательны.

  • Для естественного бинарного отображения символа смежные точки созвездия следуют за естественным бинарным кодированием и последовательны.

scatterplot(symgray,1,0,'b*');
for k = 1:M
    text(real(symgray(k))-0.2,imag(symgray(k))+.15,...
        dec2base(mapgray(k),2,4));
     text(real(symgray(k))-0.2,imag(symgray(k))+.3,...
         num2str(mapgray(k)));
    
    text(real(symbin(k))-0.2,imag(symbin(k))-.15,...
        dec2base(mapbin(k),2,4),'Color',[1 0 0]);
    text(real(symbin(k))-0.2,imag(symbin(k))-.3,...
        num2str(mapbin(k)),'Color',[1 0 0]);
end
axis([-2 2 -2 2])

Входные параметры

свернуть все

Входной сигнал в виде вектора или матрицы положительных целых чисел. Элементы x должен иметь значения в области значений [0, M – 1].

Пример: randi([0 3],100,1)

Типы данных: double

Порядок модуляции в виде целочисленной степени двойки.

Пример 2| 4 | 16

Типы данных: double

Начальная фаза модуляции PSK, заданной в радианах как действительный скаляр.

Если вы задаете ini_phase как пустой, затем pskmod использует начальную фазу 0.

Пример: pi/4

Типы данных: double

Порядок символа в виде 'bin' или 'gray'. Этот аргумент задает, как функция присваивает бинарные векторы соответствующим целым числам.

  • Если symorder 'bin', функция использует естественное двоично кодированное упорядоченное расположение.

  • Если symorder 'gray', функция использует серо-закодированное упорядоченное расположение.

Типы данных: char

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

свернуть все

Объедините основополосное представление модулируемого PSK сигнала, возвращенного как вектор или матрица комплексных чисел. Столбцы y представляйте независимые каналы.

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