exponenta event banner

pskdemod

Демодуляция с фазовой манипуляцией

Описание

пример

z = pskdemod(y,M) демодулирует комплексную огибающую, y, PSK-модулированного сигнала, имеющего порядок модуляции M.

пример

z = pskdemod(y,M,ini_phase) определяет начальную фазу сигнала, модулированного PSK.

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

Примеры

свернуть все

Сравните схемы модуляции PSK и PAM, чтобы продемонстрировать, что PSK более чувствителен к фазовому шуму. Это ожидаемый результат, поскольку совокупность PSK является круговой, в то время как совокупность PAM является линейной.

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

len = 10000;                
M = 16;                     
msg = randi([0 M-1],len,1);

Смодулировать msg использование PSK и PAM для сравнения двух методов.

txpsk = pskmod(msg,M);
txpam = pammod(msg,M);

Возмущение фазы модулированных сигналов путем применения случайного поворота фазы.

phasenoise = randn(len,1)*.015;
rxpsk = txpsk.*exp(2i*pi*phasenoise);
rxpam = txpam.*exp(2i*pi*phasenoise);

Создайте графики рассеяния принятых сигналов.

scatterplot(rxpsk);
title('Noisy PSK Scatter Plot')

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

scatterplot(rxpam);
title('Noisy PAM Scatter Plot')

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

Демодулируйте принятые сигналы.

recovpsk = pskdemod(rxpsk,M);
recovpam = pamdemod(rxpam,M);

Вычислите количество символьных ошибок для каждой схемы модуляции. Сигнал PSK испытывает гораздо большее количество символьных ошибок.

numerrs_psk = symerr(msg,recovpsk);
numerrs_pam = symerr(msg,recovpam);
[numerrs_psk numerrs_pam]
ans = 1×2

   343     1

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

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])

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

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

свернуть все

PSK-модулированный входной сигнал, определяемый как действительный или комплексный вектор или матрица. Если y является матрицей, функция обрабатывает столбцы независимо.

Типы данных: double
Поддержка комплексного номера: Да

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

Пример: 2 | 4 | 16

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

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

Если ini_phase пуст, затем pskdemod использует начальную фазу 0.

Пример: pi/4

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

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

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

  • Если symorder является 'gray', функция использует порядок, закодированный Серым.

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

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

свернуть все

PSK-демодулированный выходной сигнал, возвращаемый в виде вектора или матрицы, имеющей такое же количество столбцов, как и входной сигнал y.

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