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

请问如何进行FFT滤波

[复制链接]
11646|75
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
a3724395|  楼主 | 2017-9-6 15:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
HWM| | 2017-9-6 15:55 | 只看该作者
“FFT变换后,去掉不想要的频率,再IFFT,请问怎么能去掉不想要的频率?”

既然频谱都有了,相应频率位置上将其“挖掉”便是。

“有固定公式吗?”

没有,看你要求。

使用特权

评论回复
板凳
a3724395|  楼主 | 2017-9-6 16:09 | 只看该作者
HWM 发表于 2017-9-6 15:55
“FFT变换后,去掉不想要的频率,再IFFT,请问怎么能去掉不想要的频率?”

既然频谱都有了,相应频率位置上 ...

谢谢,佩服高手,自己懂得太少了,另外看资料说加什么窗的,FIR和 IIR 滤波好像就得加窗,FFT也需要加窗吗?

使用特权

评论回复
地板
HWM| | 2017-9-6 17:30 | 只看该作者
"FFT也需要加窗吗?"

需要。

使用特权

评论回复
5
雪山飞狐D| | 2017-9-6 18:34 | 只看该作者
本帖最后由 雪山飞狐D 于 2017-9-6 18:37 编辑

不是FFT以后随便挖掉再IFFT的,你查下卷积在时域与频域对应含义,时域上怎么做的滤波对应频域该怎么做,有对应的表达式

使用特权

评论回复
6
a3724395|  楼主 | 2017-9-6 20:02 | 只看该作者
雪山飞狐D 发表于 2017-9-6 18:34
不是FFT以后随便挖掉再IFFT的,你查下卷积在时域与频域对应含义,时域上怎么做的滤波对应频域该怎么做,有 ...

之前看过FFT后用“filter_resultR=dataR*(1/(1+pow(i/6,4)))”这个表达式,据说是二阶巴特沃斯滤波,请问表达式是不是不是固定的,都有哪几种能给几个例子吗?

使用特权

评论回复
7
a3724395|  楼主 | 2017-9-6 20:06 | 只看该作者
a3724395 发表于 2017-9-6 20:02
之前看过FFT后用“filter_resultR=dataR*(1/(1+pow(i/6,4)))”这个表达式,据说是二阶巴特沃斯滤波,请问 ...

之前看过FFT后用
      for(i=0;i<SAMPLENUMBER;i++)
        {
                filter_resultR=dataR*(1/(1+pow(i/6,4)));//2阶的bw滤波器,wc=6Hz
                filter_resultI=dataI*(1/(1+pow(i/6,4)));//2阶的bw滤波器,wc=6Hz
        }
这个表达式,据说是截止频率6HZ的二阶巴特沃斯滤波,请问表达式是不是不是固定的,都有哪几种能给几个例子吗?

使用特权

评论回复
8
a3724395|  楼主 | 2017-9-6 20:13 | 只看该作者
HWM 发表于 2017-9-6 17:30
"FFT也需要加窗吗?"

需要。

比如说用个矩形窗,原始信号FFT后每个点的频率是{1HZ,2HZ,3HZ.......10HZ},我想要3--6HZ的数据,那矩形窗的幅度和横坐标应该怎么选择才能互相对应上

使用特权

评论回复
9
HWM| | 2017-9-6 20:21 | 只看该作者
a3724395 发表于 2017-9-6 20:13
比如说用个矩形窗,原始信号FFT后每个点的频率是{1HZ,2HZ,3HZ.......10HZ},我想要3--6HZ的数据,那矩形 ...

矩形窗就是直接取窗内数据。

使用特权

评论回复
10
a3724395|  楼主 | 2017-9-6 20:24 | 只看该作者
HWM 发表于 2017-9-6 20:21
矩形窗就是直接取窗内数据。

“雪山飞狐D”说的卷积,您觉得对FFT滤波有关联吗

使用特权

评论回复
11
HWM| | 2017-9-6 20:33 | 只看该作者
a3724395 发表于 2017-9-6 20:24
“雪山飞狐D”说的卷积,您觉得对FFT滤波有关联吗

你提到的“巴特沃斯滤波”是针对时域物理可实现的滤波器而言,既然你都说了频谱,那么直接在频谱上做**就可以了。

至于那位所说的,是时域和频域的关系。具体该如何,看你是想在时域内还是在频域内玩了。

使用特权

评论回复
12
a3724395|  楼主 | 2017-9-6 20:42 | 只看该作者
HWM 发表于 2017-9-6 20:33
你提到的“巴特沃斯滤波”是针对时域物理可实现的滤波器而言,既然你都说了频谱,那么直接在频谱上做** ...

个人感觉频域比时域好,想学习下频域的知识,我可以不用理频域和时域的具体关系吗,直接挖掉应该简单,重点是掌握FFT的变换?

使用特权

评论回复
13
a3724395|  楼主 | 2017-9-6 20:44 | 只看该作者
HWM 发表于 2017-9-6 20:33
你提到的“巴特沃斯滤波”是针对时域物理可实现的滤波器而言,既然你都说了频谱,那么直接在频谱上做** ...

另外矩形窗是不是应该有个表达式呢?这方面实在不太了解

使用特权

评论回复
14
雪山飞狐D| | 2017-9-6 23:33 | 只看该作者
本帖最后由 雪山飞狐D 于 2017-9-6 23:53 编辑
a3724395 发表于 2017-9-6 20:02
之前看过FFT后用“filter_resultR=dataR*(1/(1+pow(i/6,4)))”这个表达式,据说是二阶巴特沃斯滤波,请问 ...

时域的滤波器是得到巴特沃斯滤波器的单位冲击响应表达式,用这个冲击响应跟时域波形进行卷积即可,FFT滤波就是滤波器单位冲击响应再做FFT,得到这个冲击响应的FFT再频域里面跟信号的FFT做乘法,最后再IFFT,里面的数据处理细节比较多,另外不能在频域里面“乱切”,要符合相关滤波器的响应式,不然的话,最终效果的平坦度还有相位等是会乱套,在论坛只能说大致原理和方向,具体的你可以找书看看,都有的。。。    《数字信号处理(第三版)》第447页  [Understanding Digital Signal Processing, Third Edition ]

使用特权

评论回复
15
mycomputer0000| | 2017-9-7 16:21 | 只看该作者
有了频谱了,在频谱中直接将不需要的频率对应的幅值变成0,然后再逆回到时域

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
zbq666 + 1 赞一个!
16
zyj9490| | 2017-9-7 16:36 | 只看该作者
FFT是分析频谱吧,不是作滤波吧,在线性滤波FIR,IIR,不然每取一个点作一次FFT?

使用特权

评论回复
17
雪山飞狐D| | 2017-9-7 17:26 | 只看该作者
mycomputer0000 发表于 2017-9-7 16:21
有了频谱了,在频谱中直接将不需要的频率对应的幅值变成0,然后再逆回到时域 ...

这种操作是一种误区,会形成滚降斜率为90度的理想滤波器,你可以在仔细想想为何书本上强调不存在理想滤波器。。。。。

使用特权

评论回复
18
小研究| | 2017-9-7 19:06 | 只看该作者
根据楼主所说的,最后还是要进行IFFT,也就是说最后又回到时域。那这样的话,你根本不需要进行FFT嘛,直接滤波就是了,跟FFT没关系嘛。

使用特权

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

然后回到时域你会发现,相位全乱了

使用特权

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

哪个相位乱了?

使用特权

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

本版积分规则

29

主题

134

帖子

1

粉丝