24小时热门版块排行榜    

查看: 707  |  回复: 2

zizoull

新虫 (小有名气)

[求助] MATLAB里的FFT。离散快速傅里叶变换已有1人参与

离散傅里叶变换,将离散时间序列从时间域变换到频率域。
clc;clear;
t=0:0.001:0.6;
y=sin(2*pi*50*t)+sin(2*pi*100*t);          %频率分别为50,100的波的叠加。
Y=fft(y,512);                                         %变换到频域
Pyy=Y.*conj(Y)/512;                              %求傅里叶变换的模
%Pyy=abs(Y);
f=1000*(0:256)/512;                             %频率
plot(f,Pyy(1:257));
这样就能从图中看出所包含的频率,分别是50,100。如图

我现在想做的是:在程序中有什么方法,能把波中100的频率成分去掉,再用离散傅里叶反变换 y=ifft(Y,512)返回时域后,只剩下y=sin(2*pi*50*t)这一部分?

MATLAB里的FFT。离散快速傅里叶变换
ww.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wujianchana

木虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
你的意思是想做滤波吧?

偷懒点的理想滤波……

你做一个100附近全都是0 其它全是1的向量去和你的Y相乘……不就只剩下50这个点上的量了么?

对了还有负频率部分在900附近的也要全为0……然后ifft变回去试试?
2楼2014-10-30 16:23:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zizoull

新虫 (小有名气)

如果我把我的Y直接在100附近的都改成0,跟你说的方法效果应该一样么?
3楼2014-10-31 18:17:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zizoull 的主题更新
信息提示
请填处理意见