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

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

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

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 входной сигнал, заданный как вектор действительных чисел или комплексный вектор или матрица. Если y матрица, функциональные процессы столбцы независимо.

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

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

Пример 2| 4 | 16

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

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

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

Пример: pi/4

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

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

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

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

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

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

свернуть все

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

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

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