MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем
 

Обработка сигналов и изображений\Communications Toolbox

Список функций CommunicationsToolbox:  Аналоговая модуляция/демодуляция

  В оглавление \ К следующему разделу \ К предыдущему разделу

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

Синтаксис:

z = pskdemod(y,M)
z = pskdemod(y,M,ini_phase)

Описание

z = pskdemod(y,M)

Выполняет демодуляцию комплексной огибающей сигнала с фазовой манипуляцией y. Входной параметр M задает размер алфавита (число позиций манипуляции) и должен быть степенью числа 2. Демодулированная информационная последовательность z состоит из целых чисел, лежащих в диапазоне от 0 до M-1 включительно. Предполагается, что начальная фаза комплексной огибающей равна нулю. Если y - матрица, то ее столбцы обрабатываются независимо.

z = pskdemod(y,M,ini_phase)

То же, что предыдущий вариант синтаксиса, но дополнительный входной параметр ini_phase задает начальную фазу комплексной огибающей в радианах.

Примеры:

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

len = 10000;            % Число символов
M = 16;                 % Размер алфавита
msg = randint(len,1,M); % Исходное сообщение
% Для сравнения двух методов модуляции генерируем сигналы
% с использованием PSK и PAM
txpsk = pskmod(msg,M);  % PSK-сигнал
txpam = pammod(msg,M);  % PAM-сигнал
% Вносим фазовый шум в сформированные комплексные огибающие
phasenoise = randn(len,1)*.015;
rxpsk = txpsk.*exp(j*2*pi*phasenoise);
rxpam = txpam.*exp(j*2*pi*phasenoise);
% Выводим диаграммы рассеяния для сигналов с фазовым шумом
scatterplot(rxpsk); title('Noisy PSK Scatter Plot')
scatterplot(rxpam); title('Noisy PAM Scatter Plot')
% Демодулируем сигналы с фазовым шумом
recovpsk = pskdemod(rxpsk,M);
recovpam = pamdemod(rxpam,M);
% Вычисляем число ошибочных символов для обоих случаев
numerrs_psk = symerr(msg,recovpsk)
numerrs_pam = symerr(msg,recovpam)

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

numerrs_psk =
   374

numerrs_pam =
     1

Сопутствующие функции: pskmod, qamdemod, qammod, dpskdemod, dpskdemod, modnorm

  В оглавление \ К следующему разделу \ К предыдущему разделу

 

Поиск по сайту:

Система Orphus

Яндекс.Метрика