дизайн фильтра нижних частот matlab

#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, третьим аргументом будет ваша частота дискретизации в Гц.