dpskdemod

Дифференциальная демодуляция манипулирования сдвига фазы

Синтаксис

z = dpskdemod(y,M)
z = dpskdemod(y,M,phaserot)
z = dpskdemod(y,M,phaserot,symorder)

Описание

пример

z = dpskdemod(y,M) демодулирует комплексный конверт, y, модулируемого DPSK сигнала, имеющего порядок модуляции M.

z = dpskdemod(y,M,phaserot) задает вращение фазы модуляции DPSK.

z = dpskdemod(y,M,phaserot,symorder) также задает порядок символа.

Примеры

свернуть все

Демодулируйте данные о DPSK в канале связи, в котором введен сдвиг фазы.

Сгенерируйте 4-ary вектор данных и модулируйте его с помощью DPSK.

M = 4;                          % Alphabet size
dataIn = randi([0 M-1],1000,1); % Random message
txSig = dpskmod(dataIn,M);      % Modulate

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

rxSig = txSig*exp(2i*pi*rand());

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

dataOut = dpskdemod(rxSig,M);

Модулятор и демодулятор имеют то же начальное условие. Однако только полученный сигнал испытывает сдвиг фазы. В результате первый демодулируемый символ, вероятно, будет по ошибке. Поэтому необходимо всегда отбрасывать первый символ при использовании DPSK.

Найдите количество ошибок символа.

errs = symerr(dataIn,dataOut)
errs = 1

Один символ по ошибке. Повторите ошибочное вычисление после отбрасывания первого символа.

errs = symerr(dataIn(2:end),dataIn(2:end))
errs = 0

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

свернуть все

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

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

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

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

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

Вращение фазы модуляции DPSK, заданной в радианах как действительный скаляр. Общий сдвиг фазы на символ является суммой phaserot и фазы, сгенерированной дифференциальной модуляцией.

Если вы задаете phaserot как пустой, то dspkdemod использует вращение фазы 0 градусов.

Пример: pi/4

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

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

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

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

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

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

свернуть все

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

Примечание

Дифференциальный алгоритм, используемый в этой функции, сравнивает два последовательных элемента модулируемого сигнала. Чтобы определить первый элемент векторного z или первую строку матричного z, функция использует вращение начальной фазы 0.

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

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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