A composite signal is defined as: x(t) = sin(2*pi*10*t) + sin(2*pi *40*t) + sin(2*pi *60*t) + sin(2*pi *50*t). Separate the four frequencies without using any of the transform techniques.
8 次查看(过去 30 天)
显示 更早的评论
Which Filtering should i employ for this question? Almost all filtering techniques employ fft in one way or the other, Is there any other way?
0 个评论
采纳的回答
Birdman
2017-11-21
My way is all about converting this expression to a equivalent transfer function and let you see the frequency peaks in Bode plot. The following code does the trick:
syms t
x=sin(2*pi*10*t)+sin(2*pi*40*t)+sin(2*pi*50*t)+sin(2*pi*60*t);
Xs=laplace(x);
XsTf=syms2tf(Xs);
opts=bodeoptions;
opts.FreqUnits='Hz';
bode(XsTf,opts)
The first two line defines the x expression symbolically. Then, I took the laplace transform of the expression and the converted it to transfer function(the attached syms2tf function does it). Afterwards, since I obtain a transfer function expression, I expect to see peaks at those frequencies in Bode Plot and the attached figure contains it. Hope this helps to you.
2 个评论
Birdman
2017-11-21
But you can not do it any other way around. You have already eliminated so much method by saying no transformation, but that transformation probably refers to fft and its similar transforms. I assume that this is a homework question and laplace transform is not something that can be thought as a transformation method.
更多回答(1 个)
Walter Roberson
2024-12-18
编辑:Walter Roberson
2024-12-18
t = 0:0.001:1;
x1 = sin(2*pi*10*t) + sin(2*pi *40*t) + sin(2*pi *60*t) + sin(2*pi *50*t);
plot(t, x1)
x2 = @(f14) sin(2*pi*f14(1)*t) + sin(2*pi*f14(2)*t) + sin(2*pi*f14(3)*t) + sin(2*pi*f14(4)*t);
f = @(f14) sum((x2(f14)-x1).^2);
bestfreqs = fminsearch(f, [10.5 41 49 62])
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Digital Filter Design 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!