0
votes

I want to create a script that will manually modulate and demodulate a signal. I am using DSB-SC modulation and I am just confused on how to build the lowpass filter for the demodulation of the signal. Here is what I have so far:

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

As you can see I used the lowpass filter constructor but it requires the value to be between 0 and 1. Is there another way to construct a lowpass filter? How would I make the frequency between 0 and 1?

1
I just realized that I forgot to include line to create a mixer for the demodulation step. I would add x = c.*phi_DSB right before the demod step and then X would be the input to lowpass() Brian E
Check out dsp.stackexchange.com. I think your question belongs there more than here.Mad Physicist
my apologies I just clicked ask question didn't realize there were more pagesBrian E

1 Answers

0
votes

When you call lowpass, you can specify the normalized cutoff frequency, which is between 0 and 1 or you can specify the cutoff frequency in Hz and the sample rate in Hz, which is what you want to do. So, add a 3rd input argument to the call to lowpass, the third argument will be your sample rate in Hz.