打印
[信息]

关于FFT、滤波器的一些想法和讨论,高手进来看看

[复制链接]
3415|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
thinkabout4451|  楼主 | 2015-7-16 14:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不知道发哪个版合适,最近大概看了下fft,突然有个想法,不是有各种数字滤波器么,但性能指标都不可能是理想的矩形。
如果对一个信号大概50m的模拟带宽,想做一个20-30m的带通滤波器,那么选一个100m的ad,然后进行fft,直接把频谱之外的值清除掉,
再做一个fft逆运算,这样输出结果,是否就是一个接近理想的滤波器了。

我觉得现实中不采用这个方法,是否是因为fft计算量太大,成本过高?

另外高手都来讲讲,我这个想法,至少理论上是否正确???
沙发
kseeker| | 2015-7-16 15:10 | 只看该作者
你这么想吧,如果这个方法可行,那么那些数字滤波器就没有了存在的意义。既然很多人在研究那些数字滤波器,就说明至少在某些情况下FFT的方法不可行。

使用特权

评论回复
板凳
kseeker| | 2015-7-16 15:13 | 只看该作者
抛开运算量之类的问题,FFT用作滤波,最致命的问题是它的算法是针对成块的数据进行的,而滤波器要求每给出一个输入就输出一个响应。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
thinkabout4451 + 3
地板
thinkabout4451|  楼主 | 2015-7-16 18:41 | 只看该作者
kseeker 发表于 2015-7-16 15:13
抛开运算量之类的问题,FFT用作滤波,最致命的问题是它的算法是针对成块的数据进行的,而滤波器要求每给出 ...

应该算是个理由,依靠缓冲可以解决,不过相对延时就是一个数据块的大小。
滤波器也有延时吧,不过应该很小。

使用特权

评论回复
5
thinkabout4451|  楼主 | 2015-7-16 18:44 | 只看该作者
kseeker 发表于 2015-7-16 15:10
你这么想吧,如果这个方法可行,那么那些数字滤波器就没有了存在的意义。既然很多人在研究那些数字滤波器, ...

可以这么想,但并不防碍我们去想下原因。我相信前人也是有这么想过

使用特权

评论回复
6
kseeker| | 2015-7-21 15:20 | 只看该作者
本帖最后由 kseeker 于 2015-7-21 15:24 编辑
thinkabout4451 发表于 2015-7-16 18:41
应该算是个理由,依靠缓冲可以解决,不过相对延时就是一个数据块的大小。
滤波器也有延时吧,不过应该很 ...

首先,不能逐块进行处理,因为那样的数据在块间是不连续的。必须要让变换窗口在数据上滑动。
这么一来,实际上这就是一个卷积窗口滤波器。清除频谱之外的值这一操作,在频域上是一个方窗,逆向变换到时域就指定了滤波器的核。
实际上,直接将带宽外的频谱清零会导致滤波器有一些不太好的性质,一般使用都会额外加一个窗,比如sinc窗口。
卷积窗口滤波器在由于运算量过大,一般避免使用,而是使用运算量相对小得多的递归滤波器。递归滤波器可以以小得多的运算量达到相当不错的结果。真的必须用卷积滤波器的时候,为了减低运算量,实际上是就是先把信号FFT,之后在频域上和滤波器的核的FFT结果相乘(如果频域上的核是一个方的窗口,就是直接将特定频率清0),再反向生成信号。
顺便说一下,这种处理方式的延时可以做到1个采样而不是1个块。
可以参考《实用数字信号处理》这本书,里面讲的很详细。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
thinkabout4451 + 3
7
小浣熊| | 2015-7-25 11:01 | 只看该作者
一般为了减低运算量,实际上是就是先把信号FFT,之后在频域上和滤波器的核的FFT结果相乘(如果频域上的核是一个方的窗口,就是直接将特定频率清0),再反向生成信号。

使用特权

评论回复
评分
参与人数 1威望 +2 收起 理由
thinkabout4451 + 2
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

426

帖子

7

粉丝