16-2 加窗sinc滤波器设计

标签:
过渡带的宽度截止频率滤波器内核长度m数字信号处理 |
设计加窗sinc滤波器必须选择两个参数:截止频率fc和滤波器内核长度M。
截止频率单位是以取样率的比例数表示,介于0到0.5之间。M值设定滚降
,根据下式近似估计:
式中BW是过渡带的宽度,测量时从曲线稍离开1直到几乎近于0(如99%
到1%)。过渡带宽也以取样率的比例数表示,必须介于0到0.5之间。图
16-3a表示此近似式使用的例子。三条曲线分别表示:M=20、4、200
。
滤波器内核所产生的曲线。由式16-3过渡带宽分别为BW=0.2、0.1、
0.02 . 图
b)表示不依赖于截止频率选择的频率响应的外形。
因为时间要求卷积正比于信号长度。式16-3表示计算时间(M值)与滤波
器锐度(BW值)之间的权衡。例如,布莱克曼窗的滚降慢20%(比汉明
窗)可以通过滤波器内核加长20%来补偿。换言之,可以说成是布莱克曼
窗比同等滚降的汉明窗的执行速度要慢20%。这一点很重要,因为有窗
sinc滤波器的执行速度已经是慢得要命了。
也如图16-3b所示,加窗sinc滤波器的截止频率是在振幅点的一半处来测
量的。为什么用0.5来代替在模拟电路和其它数字滤波器所用的标准的
0.707(-3dB)?这是因为加窗sinc的频率响应于通带与止带之间是对称
的。例如汉明窗产生通带波纹0.2%和同样大小的止带衰减(波纹)。其
它滤波器没有这种对称性,因此没有必要利用振幅点的一半来标记截止
频率。本章后面还要提到,这种对称性使得加窗sinc对谱倒置有利。
在选择好了fc和M之后,滤波器内核就可由下式计算:
不要被此式吓倒!基于前面的讨论,你已经能辨认出三个部分:sinc
函数、M/2移位、布莱克曼窗。对于直流中有单位增益的滤波器来说
常数K的选择必须使得所有样本之和等于1
。实际操作上,滤波器内
核计算时忽略K,然后再按照需要来规范化所有样本。程序如表16-1
所示,从程序中可以看出在这方面具体的做法。也可看出在sinc的
中心的计算处理,i = M/2
时包括被0除的避免方法。
此式虽然很长,但容易使用;你只须键入到计算机程序中就不管它了。
让计算机来替你分忧。如果你自己用手计算此式,那是大错特错了。
我们来明确一下由式16-4所描述的滤波器内核位于计算机数组的什么
地方。作为一例,M假定选择为100 。
记住,M必须为偶数。滤波器
内核的第一个点,在数组位置0,而最后一个点,在数组位置100
。
就是说,全部信号长度为101点长。对称中心在点50,即M/2
。
在其左边的50个点对称于右边的50个点。点0的值与点100的值相同,
点49与点51的值相同 。依此类推。
如果你必须有某滤波器内核样本数,用FFT,在其左端或右端简单地
加0 。例如,M =100 ,你可以在101到127加 0
,使得滤波器内核
为128点长 。
图16-4 表示加窗sinc滤波器内核的例子 ,
及其对应的阶跃响应。
滤波器内核的开始和末端的样本很小,甚至在图中看不到。不要产
生错觉,认为它们不重要!这些样本值尽管小。但其整体在滤波器
中有很大的滤波作用。这也是在实现加窗sinc滤波器时采用浮点计
算的原因。整数计算法,在捕获滤波器内核数值变化的动态范围
已经不够用。加窗sinc滤波器在时域中如何作用?惊人!阶跃响应
有超调量和振铃;这已经不是在时域中信息编码的信号滤波器了。
注:表16-1(程序表)在18-4节载出
前一篇:第16章 加窗Sinc滤波器