原创 频域滤波和时间域滤波的区别

2011-6-14 17:34 5663 6 7 分类: 测试测量
 
vican_lee:
请问一下频域滤波和时间域滤波的区别,为什么一般大家都用iir,fir滤波,而不考虑用fft,ifft来做滤波呢?
频域滤波应该更方便一些吧?而且相位也好控制
-------------------------------
时间域滤波可以连续处理。
-------------------------------
vican_lee:
时间域可以连续的意义在于,每收到一个数据,就会输出一个数据.
但是假如我在频域 ,用两个大的缓存,一个缓存发送,一个缓存处理,边处理,边输出,也可以实现连续的处理.

频域的滤波效果是不是有受到什么限制呢?也就是说.频域滤波和时间域滤波在本质上有什么区别?
举个例子, 一个低通,fir达到256阶,才能把 过度带 很陡峭,
                  而在频域很容易就能做一个矩形窗的滤波器,
                  而256阶的fir计算复杂度和256的fft相差不大.

本人在寻找理论上的论证....试图把频域滤波和时间域滤波的理论统一起来,达到能够互相论证的目的.
但是本人理论不够扎实....希望对这方面了解深入的朋友給一些参考的意见.
 
--------------------------------
zhwang554:
你所说由变换组成的频域滤波器如图a, 输入信号分段输入, 当一段信号输入后,开关K闭合一次,先作FFT,在频域乘以频率特性Hn 再经IFFT后得一段输出. 用缓存,可以实现长信号的处理.由於分段输入和输出, 存在边界效应, 整个输入和输出序列不呈线性卷积关系,连续信号分段滤波后在段边界出现不跳变

上述滤波器只考虑到有关参数的一种情况, 若将全部可能都计入可组成全相位频域滤波器, 如下图b, 注意图b中输出中有连加器. .数据进一个,出一个,这样就消除分段起点不同对滤波的影响,.b的全相位频域滤波器的输入输出呈线性卷积关系.,可等效为一个fir滤波器.

你问.频域滤波和时间域滤波在本质上有什么区别?
原图a的fft,ifft频域滤波边界不连续, 不是线性卷积,不能等效为一个fir滤波器,二者不是一回事.
若是全相位fft,ifft来滤波,可等效为一个fir滤波器, 二者是一回事.

所以可用图b全相位fftifft来设计fir滤波器,叫全相位fir滤波器,它和原有方法设计的fir不一样.
如全相位fir滤波器的频率特性可设计其输出幅度在0—1之间,没有负的,也不大於1, 原有fir设计方法作不到这一点,这在设计完全二分解重构滤波器,最小相位滤波器中十分有用.

图b的全相位频域滤波器是有特点的,可仔细和图a比较,它还可以加窗,FFT前可加窗,IFFT后也可加窗, 别看它复什,它可简化为一个FFT的方框图,还可等效为一个fir滤波器,内容很丰富.
59843_1247558234TtW9.jpg
 
---------------------------------------
其实所谓时间域的滤波,LZ讲的fft,iir和fir都是数字滤波,其实还有硬件滤波,数字滤波不是万能的,因为它不能消除镜像干扰,经常还离不开硬件滤波。比如抗混滤波,虽然用数字滤波可以解决很多问题,但最终还离不开硬件滤波的。
 
-------------------------------------
采用图b中的全相位fft、ifft来滤波,数据进一个,出一个,是否意味着每进一个新的数据点,都需完全重新做一次FFT和IFFT,计算量是不是增大了许多?
 
------------------------------------
可是只有b,输入和输出序列呈线性卷积关系,存在滤波器传输函数H(jω), 而a整个输入和输出序列不呈线性卷积关系(一段内输入和输出呈循环卷积关系),不存在滤波器传输函数H(jω), 严格讲不是传统意义上的滤波器

在地板贴子中已提到, 图b可简化为一个FFT的方框图,其计算量就小了一半,还可等效为一个fir滤波器, 计算量还小. 它和其它方法设计的fir不一样. 称全相位fir滤波器, 所以实现时可用fir滤波器实现.

地板贴子中简述了全相位fir滤波器的一个特点
又如全相位fir滤波器在无窗或单窗时, 传输函数H(jω).的均匀取样值等於滤波器的离散频率特性H(n).,即如果图b的H=[1 1 1 0 0 0 0 1 1],一个低通滤波器,则其全相位fir滤波器传输函数H(jω)必通过[1 1 1 0 0 0 0 1 1]各点.

并不是任何fir滤波器可以由图b的全相位频域滤波器来实现(指等效),但任何全相位频域滤波器可以由fir滤波器来硕件实现
关键还是滤波器性能(图a和图b的频域滤波器适用於任一正交变换对,如DCT-IDCT).
   下面举一实例,假设对长度为L=128的输入序列{x(n)=cos(πn/11)+cos(2πn/3)n=0,1,…127}每隔N=16点数据进行分段,对各分段分别进行DCT后,然后丢弃一半高频DCT系数,再反DCT变换得到各分段输出数据y(n),则其输入输出波形如图7-4所示
59843_1247558242f1MI.jpg
 

从图7-4可看出,由于低通滤波的缘故,图7-4(b)相对于图7-4(a)的波形平滑些。但在各子段边界n=kN=16k (k=0,1,..,7)处,波形出现明显的不连续,表现为存在较大的幅值跳变。事实上,这些不连续点上的幅值跳变本身就蕴含了很丰富的高频成分,因此分段处理方法使得在子段边界处的低通滤波失去意义

    为说明全相位频域滤波器图b性能,仍对图7-4的输入序列{x(n)=cos(πn/11)+ cos(2πn/3)n=0,1,…127}进行相同的滤波,则输出波形如图7-5所示
59843_12475582999z90.jpg

7-5表明,由于全相位频域滤波考虑了包含某样点所有长度为N的分段滤波情况,因而整个时间段的输出波形都变得连续,在各子段边界n=kN=16k (k=0,1,..,7)处,也消除了截断效应,而且滤波性能很好,滤除了频率为2π/3的高频成份,保留的低频波形基本不失真。

上述例子和图7-4 和图7-5引自<数字信号全相位谱分析与滤波技术,电子工业出版社 2009.2>一书.

书中 第7.5.2 节  "经典全相位滤波结构的自由度和复杂度分析"

就讨论了图b的全相位频域滤波结构的复杂度


-------------------------------------

多谢楼上,过几天去买本《数字信号全相位谱分析与滤波技术》仔细读读。

文章评论1条评论)

登录后参与讨论

用户377235 2016-5-27 21:31

评论是对思考最好的总结…
相关推荐阅读
xuyaosong 2012-11-28 14:24
Lesson 4 4:MATLAB - FFT and Zero Padding
http://blinkdagger.com/matlab/matlab-fft-and-zero-padding This is the fourth post in the blinkdag...
xuyaosong 2012-11-28 13:54
C语言中 多个源文件之间函数如何调用
首先要建立一个头文件,以.h保存 这样 #include typedef struct { char name[100][60]; char number[100][8]; int m...
xuyaosong 2012-11-28 13:53
小波变换尺度相关性去噪程序
所实现的相关性去噪函数为function [s1 a d] = SSNF(s, n, h, g, g1),具体的实现步骤为: 1) 调用离散二进小波分解函数对信号进行分解,得到逼近系数a 和细节...
xuyaosong 2012-11-28 13:29
功率谱密度幅值的具体含义??
http://www.chinavib.com/forum/thread-17307-1-48.html 求信号功率谱时候用下面的不同方法,功率谱密度的幅值大小相差很大! 我的问题是,计算具体...
xuyaosong 2012-01-12 18:38
声明函数指针并实现回调
程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。 ...
xuyaosong 2012-01-12 18:36
如何不用访问地址的方式来编写并口程序 ★★★★★
兄弟我在精华发现了一些关于并口打印的文章,但是都是用inb outb操作的,不知道各路高人能否给小弟一个用open write ioctl read close控制的判断状态并读写的例子,尤...
我要评论
1
6
关闭 站长推荐上一条 /2 下一条