FIR滤波器的设计方法主要有三种:窗函数法、频率取样法、切比雪夫等波纹逼近法。而在这个实验里,主要是采取第一种方法。
我们要设计一个滤波器,跟前面设计IIR滤波器一样,得先知道一些关于滤波器的指标。在用窗函数设计FIR滤波器需要知道的指标是:通带,阻带的边界频率,阻带衰减和通带衰减。
因为是FIR,有限冲激响应的滤波器,我们通常的理想滤波器的单位脉冲响应 h
是无限长的,所以我们需要通过窗来截断它,然后对它进行滤波器设计。
一、 加窗方法设计的步骤大概分以下几步:
1、根据阻带的衰减,选择合适的窗:
最小阻带衰减 过渡带带宽△w
矩形窗 20.9dB 0.92π/M
汉宁窗 43.9dB 3.11π/M
海明窗 54.5dB 3.32π/M
布莱克曼窗 75.3dB 5.56π/M
不同的窗有不同的性质:不同的窗函数,产生泄漏的大小不一样,频率分辨能力也不一样。信号的截断产生了能量泄漏,而用FFT算法计算频谱又产生了栅栏效应,从原理上讲这两种误差都是不能消除的,但是我们可以通过选择不同的窗函数对它们的影响进行抑制。(矩形窗主瓣窄,旁瓣大,频率识别精度最高,幅值识别精度最低;布莱克曼窗主瓣宽,旁瓣小,频率识别精度最低,但幅值识别精度最高)。
2、根据窗函数得到的序列经过firl或fir2得到一个滤波器传输函数系数的序列。
1)fir1 : 用来设计传统的低通,高通,带通,带阻,多频带FIR滤波器;
调用格式:b = fir1(N,Wn);
b = fir1(N,Wn,‘high’);
b = fir1(N,Wn, ‘stop’);
参数说明:N:阶次,滤波器长度为N+1;
Wn:通带截止频率,其值在0~1之间,1对应Fs/2;
b:滤波器系数。
在上述所有格式中,若不指定窗函数的类型,fir1自动选择Hamming窗。
2)fir2 : 用来设计具有任意幅度响应的FIR滤波器。