#matlab #lowpass-filter #modulation
#matlab #фильтр нижних частот #модуляция
Вопрос:
Я хочу создать скрипт, который будет вручную модулировать и демодулировать сигнал. Я использую DSB-SC модуляцию, и я просто запутался в том, как построить фильтр нижних частот для демодуляции сигнала. Вот что у меня есть на данный момент:
close all;
clear all;
clc;
t = 0:0.000001:0.001;
Vm = [1,2,5];
Vc = 1;
fm = 2000;
fc = 50000;
for i = 1:3
close all;
amp = Vm(i);
m = Vm(i)*sin(2*pi*fm*t);
c = Vc*sin(2*pi*fc*t);
%modulated signal
phi_DSB = m.*c;
figure(1)
plot(t,phi_DSB)
hold on
plot(t, m)
legend('DSB modulated signal','Message signal')
txt = sprintf('DSB modulated signal with message amplitude %d', amp);
title(txt)
xlabel('Time')
ylabel('Signal amplitude')
demod = lowpass(phi_DSB,50000);
pause(5)
end
Как вы можете видеть, я использовал конструктор фильтра нижних частот, но для этого требуется, чтобы значение было между 0 и 1. Есть ли другой способ построить фильтр нижних частот? Как бы мне сделать частоту между 0 и 1?
Комментарии:
1. Я только что понял, что забыл включить строку для создания микшера для шага демодуляции. Я бы добавил
x = c.*phi_DSB
прямо перед шагом демодуляции, а затем X будет входом дляlowpass()
2. Проверьте dsp.stackexchange.com . Я думаю, что ваш вопрос относится к нему больше, чем здесь.
3. мои извинения, я просто нажал задать вопрос, не понимая, что есть еще страницы
Ответ №1:
Когда вы вызываете lowpass, вы можете указать нормализованную частоту среза, которая находится в диапазоне от 0 до 1, или вы можете указать частоту среза в Гц и частоту дискретизации в Гц, что вы и хотите сделать. Итак, добавьте 3-й входной аргумент к вызову lowpass, третьим аргументом будет ваша частота дискретизации в Гц.