大雪无痕201 发表于 2007-12-26 18:31

请教FFT低通滤滤问题

如有100个点,我补28个,凑够128,即那28个点都是0。请问在FFT后,想把部分高频置0以实现低通滤波,比如FFT后频域是0-1,如想把高于0.4HZ的滤去,哪些FFT后的点应置0啊?
如把0.4*128-128的点置0,再IFFT后,我发现是有点问题的,请高手指教,我弄了两天都没想起来。

xuyuling 发表于 2007-12-26 19:01

能不能把你的程序贴出来看看

songzy41 发表于 2007-12-26 19:36

如果想把部分高频置0以实现低通滤波,实际上是把128点中的中间部分置0,保留两端。因为实数序列的FFT后得到的是对称谱,两端是正(负)低频部分,中间是正(负)高频部分。

大雪无痕201 发表于 2007-12-26 20:06

好像把中间置0不行吧,我不是用matlab,我是自己编的程序,在一个大程序中用到这个小程序。

wanyeqing2003 发表于 2007-12-26 20:22

对于128个点的时域数据,做fft得到的频率信号应该是实部和虚部各64个点,或者幅频和相频各64个点。
可以尝试:
1、同时把0.4以后的实部和虚部,或者幅频和相频置零。
2、按倍频程滤波关系,削减0.4以后的数据。

d_debug 发表于 2007-12-29 23:00

应该是中间吧,我们老师讲过。
页: [1]
查看完整版本: 请教FFT低通滤滤问题