发新帖本帖赏金 5.00元(功能说明)我要提问
返回列表
打印

请问如何进行FFT滤波

[复制链接]
楼主: a3724395
手机看帖
扫描二维码
随时随地手机跟帖
21
小研究| | 2017-9-8 10:55 | 只看该作者 回帖奖励 |倒序浏览
wu_npu 发表于 2017-9-7 22:49
然后回到时域你会发现,相位全乱了

相位只是其中的考虑之一。如果你要保持相位不变,那就使用FIR滤波。

使用特权

评论回复
22
mycomputer0000| | 2017-9-8 11:57 | 只看该作者
雪山飞狐D 发表于 2017-9-7 17:26
这种操作是一种误区,会形成滚降斜率为90度的理想滤波器,你可以在仔细想想为何书本上强调不存在理想滤波 ...

这是通俗简单的表述,实际操作还需要考虑细节。理想滤波器确实不存在,但是我们的目标是做出理想滤波器,尽管不可能实现,也要努力

使用特权

评论回复
23
mycomputer0000| | 2017-9-8 11:59 | 只看该作者
本帖最后由 mycomputer0000 于 2017-9-8 12:00 编辑
wu_npu 发表于 2017-9-7 22:49
然后回到时域你会发现,相位全乱了

对不需要关心相位变化的应用就不必计较。例如采集一段声音,滤除某一部分频率,然后放出来听一下效果

使用特权

评论回复
24
zyj9490| | 2017-9-8 14:42 | 只看该作者
mycomputer0000 发表于 2017-9-8 11:59
对不需要关心相位变化的应用就不必计较。例如采集一段声音,滤除某一部分频率,然后放出来听一下效果 ...

是的,这种情况完全可以用FFT处理,再做反FFT,但没有实时性可言,如果进行实时的滤波,还是用常规的滤波算法,FFT是针对一个相对完整的信号的片段处理,只改变这个片段的频谱。

使用特权

评论回复
25
雪山飞狐D| | 2017-9-8 16:19 | 只看该作者
本帖最后由 雪山飞狐D 于 2017-9-8 17:31 编辑
mycomputer0000 发表于 2017-9-8 11:57
这是通俗简单的表述,实际操作还需要考虑细节。理想滤波器确实不存在,但是我们的目标是做出理想滤波器, ...

时域无限短的信号在频域里面无限宽,代表就是脉冲信号,另外一种是上升斜率为90度的信号,反之,频域里面90度滚降斜率有限宽代表时域里面无限时长信号,工程不需要考虑什么因果之类抽象概念,只需要知道机械的在频域里面90度斜率截断,那么时域里面需要无限时间长度才不会造成时频转换丢失信息,工程处理可以根据信号要求进行取舍

使用特权

评论回复
26
小研究| | 2017-9-8 16:22 | 只看该作者
楼主总体来说对数字信号处理缺乏认知,建议你看看数字滤波,然后捣鼓捣鼓MATLAB,你就明白了。你的这个命题跟FFT和IFFT完全没关系。使用FFT的做法,无论是实时性还是运算量,都要差很多。

使用特权

评论回复
27
a3724395|  楼主 | 2017-9-8 19:13 | 只看该作者
mycomputer0000 发表于 2017-9-7 16:21
有了频谱了,在频谱中直接将不需要的频率对应的幅值变成0,然后再逆回到时域 ...

"雪山飞狐D" 说的貌似没有这么简单,具体是向您说的这样还是像“雪山飞狐D”说的那样,只有真正做过这个项目的人知道了

使用特权

评论回复
28
a3724395|  楼主 | 2017-9-8 19:14 | 只看该作者
zyj9490 发表于 2017-9-7 16:36
FFT是分析频谱吧,不是作滤波吧,在线性滤波FIR,IIR,不然每取一个点作一次FFT? ...

FFT应该有滤波功能

使用特权

评论回复
29
a3724395|  楼主 | 2017-9-8 19:15 | 只看该作者
小研究 发表于 2017-9-7 19:06
根据楼主所说的,最后还是要进行IFFT,也就是说最后又回到时域。那这样的话,你根本不需要进行FFT嘛,直接 ...

直接滤波可以,据说FFT滤波是更先进的方法

使用特权

评论回复
30
a3724395|  楼主 | 2017-9-8 19:16 | 只看该作者
wu_npu 发表于 2017-9-7 22:49
然后回到时域你会发现,相位全乱了

这位朋友做过相关项目吧

使用特权

评论回复
31
a3724395|  楼主 | 2017-9-8 19:23 | 只看该作者
本帖最后由 a3724395 于 2017-9-23 20:46 编辑
mycomputer0000 发表于 2017-9-8 11:59
对不需要关心相位变化的应用就不必计较。例如采集一段声音,滤除某一部分频率,然后放出来听一下效果 ...


使用特权

评论回复
32
zyj9490| | 2017-9-8 19:24 | 只看该作者
a3724395 发表于 2017-9-8 19:14
FFT应该有滤波功能

有啊,不否认滤波功能,但实时很差。或者根本不是用来做实时滤波功能。

使用特权

评论回复
33
zyj9490| | 2017-9-8 19:26 | 只看该作者
或者必须要有很大的缓存才对啊。一祯一祯处理吗?如画面一样吗?

使用特权

评论回复
34
a3724395|  楼主 | 2017-9-8 19:27 | 只看该作者
雪山飞狐D 发表于 2017-9-8 16:19
时域无限短的信号在频域里面无限宽,代表就是脉冲信号,另外一种是上升斜率为90度的信号,反之,频域里面9 ...

一时难以理解,看来只有找数字信号处理,读过之后再来看各位的高见

使用特权

评论回复
35
a3724395|  楼主 | 2017-9-8 19:28 | 只看该作者
小研究 发表于 2017-9-8 16:22
楼主总体来说对数字信号处理缺乏认知,建议你看看数字滤波,然后捣鼓捣鼓MATLAB,你就明白了。你的这个命题 ...

确实,我先去学习一下数字信号处理,再回来看各位的高见

使用特权

评论回复
36
a3724395|  楼主 | 2017-9-8 19:48 | 只看该作者
雪山飞狐D 发表于 2017-9-6 23:33
时域的滤波器是得到巴特沃斯滤波器的单位冲击响应表达式,用这个冲击响应跟时域波形进行卷积即可,FFT滤波 ...

请问冲击响应表达式如何获得

使用特权

评论回复
37
zyj9490| | 2017-9-8 19:49 | 只看该作者
a3724395 发表于 2017-9-8 19:23
请问这位朋友,什么情况下需要关心相位
我认为常见的情况是一定频率的波形,经过AD采集后变成数字量,然 ...

波峰波谷时间域的概念,在频越是做不了的。

使用特权

评论回复
38
a3724395|  楼主 | 2017-9-8 19:52 | 只看该作者
zyj9490 发表于 2017-9-8 19:26
或者必须要有很大的缓存才对啊。一祯一祯处理吗?如画面一样吗?

确实,实时还是用常见的,可以研究一下FFT滤波功能,比如滤除某一段时间采集的片段数据

使用特权

评论回复
39
nethopper| | 2017-9-8 23:35 | 只看该作者
在频域做FFT滤波,有些时候就是简单而直接地将不需要的频率分量置零,其他的频率分量相位并未改变(当然FFT得到的频谱是否百分之百准确地反映了原始信号的频谱是个问题,比如频谱泄漏就很难避免),IFFT回到时域可能会发现貌似相位变了,主要反映在信号段的前后两端的端点附近,这是由于滤波前的原信号段经过周期延拓后在交界处本身可能就不连续(就是有泄漏存在啦)。

在频域做FFT滤波很难连续不间断地实时输出信号,即使将信号分为多个FFT段,但IFFT回时域后,每个FFT段之间在时域很可能是不连续的。而在时域做的FIR和IIR则不存在这个问题(其实在最最最最最最初的和最最最最最最后的输出也同样是有点怪怪滴....)。

使用特权

评论回复
40
雪山飞狐D| | 2017-9-9 01:43 | 只看该作者
本帖最后由 雪山飞狐D 于 2017-9-9 01:53 编辑
nethopper 发表于 2017-9-8 23:35
在频域做FFT滤波,有些时候就是简单而直接地将不需要的频率分量置零,其他的频率分量相位并未改变(当然FFT ...

你可以看下一些应用,比如90度截止频率为500HZ,而信号刚好有一个会频移频率尖峰,495HZ-505HZ不定期移动,那么做这个截止,那么还原回时域上信号就会产生“张驰”,示波器上看起来会极其诡异,而带正常滚降斜率的滤波器信号则比较平稳,当然我举的例子比较极端,只是为了说明会产生的情况,正常应用下有些频率截止附近的信号是要重点关注的

使用特权

评论回复
发新帖 本帖赏金 5.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则