声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 6050|回复: 7

[FFT] FFT频域滤波之后的IFFT的实现,急求!

[复制链接]
发表于 2009-1-5 03:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
matlab的新手。具体想实现下面的功能。现在有一段时间长为10秒的脑波数据。
首先FFT变换:
%signal为脑波信号
fs=1000;            %采样频率
N=10000;           %采样点数
t=(0:N-1)/fs;     %采样时间序列
fft_signal=2*abs(fft(signal))/N;
fft_signal=fft_signal(1:N/2);
df_ps=fs/N;          %频率分辨率Hz
f_ps=(0:N/2-1)*df_ps;    %频域序列

这样得到频域数据fft_signal,之后想把50Hz以上的频率值置为零,来保留50Hz以下的脑波数据。(应该叫做低通滤波吧)
然后用0到50Hz的频率用IFFT恢复到原来的波形。应该是得到光滑的波形。

但是我差了很多资料还是不知道具体该怎么实现。是不是要用到FITLER命令,如果要用的话具体怎么用这个命令呢?
有高手能帮帮我吗?最好能给出具体的程序来,谢谢了!
回复
分享到:

使用道具 举报

发表于 2009-1-5 15:26 | 显示全部楼层

回复 楼主 jiyutao 的帖子

FFT时N是用2的整数幂做的,当N不是时则matlab采用尾加0,真正的N就不是原来的N了。这里还不如取N=8192为好。
FFT以后,不要取绝对值,保留实部虚部,将频率高的部分清0,再IFFT就是了。
这样做有个前提,就是FFT以前认为它是一个周期信号,头尾是相接的(函数及其一阶导数连续),如果不是周期信号,头尾不相接,则IFFT以后,头尾部分是有歧变的。

[ 本帖最后由 hcharlie 于 2009-1-5 18:05 编辑 ]
发表于 2009-1-5 18:58 | 显示全部楼层
本帖最后由 VibInfo 于 2016-11-8 16:11 编辑
原帖由 hcharlie 于 2009-1-5 15:26 发表
FFT时N是用2的整数幂做的,当N不是时则matlab采用尾加0...

我记得好像是使用fft(X,n), 当n>length(X)时才会补零
若使用fft(X), 则是使用DFT, 或许记错了! (v5.6的确如此)
发表于 2009-2-24 14:53 | 显示全部楼层

回复 沙发 hcharlie 的帖子

我记得如果fft没有指定nfft(即fft点数)的时候,他是按照采样点的多少来做fft的,并不是添零变成2的幂次方,只有你指定的nfft比采样点数多的时候才会添零,这样做的好处是加快fft的运算速度和提高频率分辨率

我也只是新手,不知道说的对不对!
发表于 2009-2-25 14:28 | 显示全部楼层
在MATLAB中点数既可以是2的幂次,也可以不是。对信号处理时,FFT后保留50Hz前的复数值,同时在负频率方面也做相应的处理,然后再做IFFT便能得到。
发表于 2009-6-9 23:02 | 显示全部楼层
本帖最后由 VibInfo 于 2016-11-8 16:11 编辑
原帖由 ChaChing 于 2009-1-5 18:58 发表

我记得好像是使用fft(X,n), 当n>length(X)时才会补零
若使用fft(X), 则是使用DFT, 或许记错了! (v5.6的确如此)

同意啊,fft只不过是dft的一种快速算法
发表于 2012-11-12 16:48 | 显示全部楼层

是周期信号,也会发生畸变啊,存在着截断误差,有没有办法解决啊?高手
发表于 2012-12-17 18:50 | 显示全部楼层
hcharlie 发表于 2009-1-5 15:26
FFT时N是用2的整数幂做的,当N不是时则matlab采用尾加0,真正的N就不是原来的N了。这里还不如取N=8192为好。 ...

我想问下IFFT时,头尾产生畸变具体应该怎么处理呢?有相关的资料没啊?谢谢!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-25 13:31 , Processed in 0.062991 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表