0

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?

Brian E
  • 35
  • 6
  • 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 Nov 25 '20 at 15:33
  • Check out https://dsp.stackexchange.com/. I think your question belongs there more than here. – Mad Physicist Nov 25 '20 at 15:39
  • my apologies I just clicked ask question didn't realize there were more pages – Brian E Nov 25 '20 at 15:43

1 Answers1

0

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.

Kenneth Boyd
  • 667
  • 2
  • 6