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

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

свернуть все

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

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

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

Метод модуляции, используемой в виде одного из:

  • am или amdsb-sc — Амплитудная демодуляция, удваивает боковую полосу, подавленного поставщика услуг. Умножает y синусоидой частоты fc и применяет пятый порядок Баттерворт фильтр lowpass с помощью 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 с помощью 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 с помощью 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 — Фазовая демодуляция. Демодулирует форму волны премьер-министра путем модуляции преобразования Гильберта 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 с помощью 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.

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

свернуть все

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

Смотрите также

| | | | | | |

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