Демодуляция для симуляции связи
Сгенерируйте синусоид 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')
y
- Модулированный сигналМодулированный сигнал сообщения, заданный как вектор действительных чисел или матрица. За исключением методов pwm
и ppm
, y
- тот же размер, что и x
.
fc
- Несущая частотаНесущая частота, используемая для моделирования сигнала сообщения, заданная как действительная положительная скалярная величина.
fs
- Частота дискретизацииЧастота дискретизации, заданная как действительная положительная скалярная величина.
method
- Используемый метод модуляции'am'
(по умолчанию) | 'amdsb-tc'
| 'amssb'
| 'fm'
| 'pm'
| 'pwm'
| 'ppm'
| 'qam'
Используемый метод модуляции, заданный как один из:
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
.
opt
- Необязательный вход для некоторых методовНеобязательный вход, заданный для некоторых методов. См. method
для получения дополнительной информации о том, как использовать opt
.
x
- Демодулированный сигнал сообщенияДемодулированный сигнал сообщения, возвращенный как вектор действительных чисел или матрица.
modulate
| vco
| fskdemod
(Communications Toolbox) | genqamdemod
(Communications Toolbox) | mskdemod
(Communications Toolbox) | pamdemod
(Communications Toolbox) | pmdemod
(Communications Toolbox) | qamdemod
(Communications Toolbox)
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.