成频域的矩形窗口的失真。结果就是截取出的信号也相应失真,为了补偿这种失真,只有改变原来窗口的形状,修正经过时域截取后的窗口失真。
窗函数设计方法的基本步骤是:
(1) 把Hdejw展成FS,得hd(n);
(2) 对hd(n)自然截短到所需的长度,如2M+1;
(3) 将截短后的hd(n)右移M个采样间隔,得h(n);
(4) 将h(n)乘以合适的窗口,即得所要滤波器的冲击响应,窗函数以n=M对称。利用所求得的单位抽样响应,即可用硬件构成滤波器的转移函数H(z),也可利用h(n)在计算机上用软件来实现滤波。
3.3 FIR滤波器的MATLAB实现
MATLAB信号处理工具箱提供了基于窗函数法的FIR滤波器的设计函数fir1。fir1是采用经典窗函数法设计线性相位FIR数字滤波器,且具有标准低通、带通、高通和带阻等类型。
语法格式:
B=fir1(n,Wn)
B=fir1(n, Wn,’ftype’)
B=fir1(n, Wn,window)
B=fir1(n, Wn,’ftype’,window)
其中,n为FIR滤波器的阶数,对于高通、带阻滤波器n取偶数。Wn为滤波器截止频率,取值范围为0~1。对于带通、带阻滤波器,Wn=[W1,W2],且W1<W2。’ftype’为滤波器类型。缺省时为低通或带通滤波器,为‘high’时是高通滤波器,为‘stop’时是带阻滤波器。Window为窗函数,列向量,其长度为n+1;缺省时,自动取hamming窗。输出参数B为FIR滤波器系数向量,长度为n+1。
使用矩形窗、Hanning窗、两种窗对带通原型进行截取。带通滤波器的指标性能给出如下:
下阻带边缘: 1s 0.2 ,As 60dB
下通带边缘: 1p 0.35 ,Rp 1dB
上通带边缘: 2p 0.65 ,Rp 1dB
上阻带边缘: 2s 0.8 ,As 60dB