exponenta event banner

dpskdemod

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

Описание

пример

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

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

z = dpskdemod(y,M,phaserot,symorder) также определяет порядок обозначений.

Примеры

свернуть все

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

Создайте четырехмерный вектор данных и модулируйте его с помощью 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
Поддержка комплексного номера: Да

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

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

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

Фазовое вращение DPSK модуляции, определяемое в радианах как действительный скаляр. Суммарный фазовый сдвиг на символ - это сумма phaserot и фазу, генерируемую дифференциальной модуляцией.

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

Пример: pi/4

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

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

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

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

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

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

свернуть все

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

Примечание

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

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

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

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