Демодуляция для коммуникационной симуляции
Сгенерируйте синусоиду на 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 с помощью 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
.
opt
— Дополнительный вход для некоторых методовДополнительный вход, заданный для некоторых методов. Обратитесь к method
для получения дополнительной информации о том, как использовать opt
.
x
— Демодулируемый сигнал сообщенияДемодулируемый сигнал сообщения, возвращенный как вектор действительных чисел или матрица.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.