53 views (last 30 days)

Show older comments

Hello, I am new to matlab,

I would like to generate two diffrent sinus signal with diffrent frequencies f1 and f2. One generated I want to do the sum of them (let's call it totalSignal) . Next, I want t filter the total signal and recuperate f1 and f2.

Any body can help me?

Jakob B. Nielsen
on 12 Mar 2020

Edited: Jakob B. Nielsen
on 12 Mar 2020

Making the simulated signal is quite simple. First, make a vector t which covers the time domain you are interested in. Then, generate your two sine vectors from this x, and add them together:

t=0.001:0.001:1; %this gives you t that starts from 0.001, in steps of 0.001, up to 1.

f1=10;

f2=100;

totalSignal=sin(2*pi*f1*t)+sin(2*pi*f2*t); %two signals with frequency 10 and 100 Hz, lets imagine.

plot(t,totalSignal);

Now that you have your signal, you can look into different options for recovering your original input frequencies. Fourier analysis is a great way of achievting this - check out the fft documentation for more info.

Jakob B. Nielsen
on 13 Mar 2020

It is probably a matter of "resolution". If you look at the frequency domain plot, you will see that the "peaks" at 30 and 60 Hz has some 'shoulder' like qualities, as well as at 70 Hz the power dips below 0 for a little bit. All of this is information; but since you only have 50 frequencies to spread this information out on, some of it will invariably be lost hwne you do a very 'crude' filtering.

Try, for example, to set your "sampling resolution" to 10000 instead of 1000, and repeat the entire thing; you will see your ifft comes much much closer to your original 30 Hz signal then. If you took a "resolution" of 100000 it would be even closer.

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!