demod

Демодуляция для симуляции связи

Описание

пример

x = demod(y,fc,fs,method) демодулирует действительный сигнал несущей y с несущей частотой fc и частоту дискретизации fs используя метод, указанный в method.

x = demod(y,fc,fs,method,opt) демодулирует действительный сигнал несущей y используя дополнительные опции, указанные в opt.

Примеры

свернуть все

Сгенерируйте синусоид 150 Гц, отобранный с частотой дискретизации 8 кГц в течение 1 секунды. Встройте модулированный сигнал в белый Гауссов шум отклонения 0,1 ².

fs = 8e3;

t = 0:1/fs:1-1/fs;
s = cos(2*pi*150*t) + randn(size(t))/10;

Частота модулирует сигнал на несущей частоте 3 кГц с помощью константы модуляции 0,1.

fc = 3e3;
rx = modulate(s,fc,fs,'fm',0.1);

Частота демодулирует сигнал, используя ту же несущую частоту и постоянную модуляции. Вычислите и постройте оценки спектра степени для переданных, принятых и демодулированных сигналов.

y = demod(rx,fc,fs,'fm',0.1);

pspectrum([s;rx;y]',fs,'Leakage',0.85)

legend('Transmitted signal','Received signal','Demodulated signal','Location','best')

Figure contains an axes. The axes with title Fres = 7.8144 Hz contains 3 objects of type line. These objects represent Transmitted signal, Received signal, Demodulated signal.

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

свернуть все

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

Несущая частота, используемая для моделирования сигнала сообщения, заданная как действительная положительная скалярная величина.

Частота дискретизации, заданная как действительная положительная скалярная величина.

Используемый метод модуляции, заданный как один из:

  • am или amdsb-sc - Амплитудная демодуляция, двойная боковая полоса, подавленная несущая. Умножает y синусоидой частоты fc и применяет фильтр lowpass пятого порядка Butterworth с использованием filtfilt.

    x = y.*cos(2*pi*fc*t);
    [b,a] = butter(5,fc*2/fs);
    x = filtfilt(b,a,x);
  • amdsb-tc - Амплитудная демодуляция, двойная боковая полоса, переданная несущая. Умножает y синусоидой частоты fc и применяет фильтр lowpass пятого порядка Butterworth с использованием filtfilt.

    x = y.*cos(2*pi*fc*t);
    [b,a] = butter(5,fc*2/fs);
    x = filtfilt(b,a,x);

    Если вы задаете opt, demod вычитает скалярные opt от x. Значение по умолчанию для opt равен 0.

  • amssb - Амплитудная демодуляция, одинарная боковая полоса. Умножает y синусоидой частоты fc и применяет фильтр lowpass пятого порядка Butterworth с использованием filtfilt..

    x = y.*cos(2*pi*fc*t);
    [b,a] = butter(5,fc*2/fs);
    x = filtfilt(b,a,x);
  • fm - Частотная демодуляция. Демодулирует форму FM-волны путем модулирования преобразования Гильберта y по комплексной экпоненте частот -fc Гц и получает мгновенную частоту результата.

    y=cos(2*pi*fc*t + opt*cumsum(x))

    cumsum - прямоугольное приближение интеграла x. modulate использует opt как константа частотной модуляции. Если вы не задаете opt параметр, modulate использует значение по умолчанию   opt = (fc/fs)*2*pi/(max(max(x))) поэтому максимальная частотная экскурсия от fc является fc Гц.

  • pm - Фазовая демодуляция. Демодулирует форму волны PM путем модулирования преобразования Гильберта y по комплексной экпоненте частот -fc Гц и получает мгновенную фазу результата.

    y=cos(2*pi*fc*t + opt*x)

    modulate использует opt как константа фазовой модуляции. Если вы не задаете opt параметр, modulate использует значение по умолчанию   opt = pi/(max(max(x))) так что максимальная фаза экскурсия - π радиан.

  • pwm - Демодуляция ширины импульса. Находит ширины импульсного сигнала с модуляцией ширины импульса y. demod возвращается в x вектор, элементы которого задают ширину каждого импульса в долях периода. Импульсы в y должны начинаться в начале каждого периода перевозчика, т.е. должны быть оставлены обоснованными. modulate(x,fc,fs,'pwm','centered') приводит к импульсам, центрированным в начале каждого периода. Длина y является length(x)*fs/fc.

  • ppm - Импульсно-позиционная демодуляция. Находит импульсные положения импульсно-позиционного модулированного сигнала y. Для правильной демодуляции импульсы не могут перекрываться. x - длина length(t)*fc/fs.

  • qam- Квадратурная амплитудная демодуляция. [x1,x2] = demod(y,fc,fs,'qam') умножает y косинусом и синусом частоты fc и применяет фильтр lowpass пятого порядка Butterworth с использованием filtfilt.

    x1 = y.*cos(2*pi*fc*t);
    x2 = y.*sin(2*pi*fc*t);
    [b,a] = butter(5,fc*2/fs);
    x1 = filtfilt(b,a,x1);
    x2 = filtfilt(b,a,x2);

    Входной параметр opt должен быть того же размера, что и y.

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

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

свернуть все

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

См. также

| | (Communications Toolbox) | (Communications Toolbox) | (Communications Toolbox) | (Communications Toolbox) | (Communications Toolbox) | (Communications Toolbox)

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