3、的单位脉冲响应为窗函数设计法的基木原理是用有限讼单位脉冲响应序列逼近〜(/水由于MM往往是无限长序列,而且是非因果的,所以用窗函数必W将截断,并进行加权处理,得到:/z(z2)=hd(zz)6y(/7)(4.2)/2(Z7)就作为实际设计的FIR数字滤波器的单位脉冲响应序列,其频率响应函数为(4.3)n=0式中,A’为所选窗函数必(/2)的长度。我们知道,用窗函数法设计的滤波器性能取决于窗函数M/7)的类型及窗口长度;V的取值。设计过程中,要根据对阻带最小衰减和过渡带宽度的要求选择合适的窗函数类型和窗口长
4、度A'。各种类型的窗函数可达到的阻带最小衰减和过渡带宽度见表4.1。表4.1各种窗函数的基本参数窗函数旁瓣峰值幅度/dB过渡带宽阻带最小衰减/dB矩形窗-134冗/N-12三角形窗-258ji/N-25汉宁窗-318Ji/N-44哈明窗-418/N-53不莱克曼窗-5712ji/N-74凯塞窗(a=7.865)-57IOjt/N-80这样选定窗函数类型和长度/V之后,求出单位脉冲响应h(n)=/!»+),并按照式(4.3)求出//卜伸)。是否满足要求,要进行演算。一般在/7(n)尾部加零使长度满足2的整数
5、次幂,以便用FFT计算//卜^。如果要观察细节,补零点数增多即可。如果//卜叫不满足要求,则要重新选择窗函数类型和长度,V,再次验算,直至满足要求。如果要求线性相位特性,则/7(旬还必须满足h(n)=±h(N-1-")根据上式中的正、负号和长度/V的奇偶性又将线性相位FIR滤波器分成四类。要根据所设计的滤波特性正确选择其中一类,例如,要设计线性相位低通特性,可以选择/如)=/7以-1-〃)这一类,而不能选择h{n}=-h(N-1-z?)这一类。主程序框图如图4.1所示。其中幅度特性耍求用dB表示。图4-1
6、主程序框图设H(k)=DFT[h(n)]H(k)=HR(k)+jH,(k)H(k)=^H2R(k^Hj(k)画阁时,用201g
7、H(幻
8、打印幅度特性。第A点对应的频率咚为使曲线包络更接近的幅度特性曲线,DH变换区间要选大些。例如窗口长度N=33时,可通过在/zGd末尾补零的方法,使长度变为64,再进行64点DFT,则可以得到更精确的幅度衰减特性曲线。下面给出MATLAB主程序:%实验四,用窗函数法设计FTR数字滤波器b=l;closeall;i=0;while(b);temp=menu(’选择窗函数长
9、度N’,’N=10’,’N=15’,’N=20’,’N=25’,’N=30’,’N=33’,’N=35’,’N=40’,’N=45’,’N=50’,’N=55’,’N=60’,’N=64’);menul=[10,15,20,25,30,33,35,40,45,50,55,60,64];N=menul(temp);temp=menu(,选择逼近理想低通滤:波器截止频率Wc’,’Wc=pi/4’,’Wc=pi/2',’Wc=3*pi/4’,’Wc=pi’,’Wc=0.5',’Wc=l.0’,’Wc:l.5’,
10、’Vc=2.0’,’Wc=2.5,,,Wc=3.0,);menu2=[pi/4,pi/2,3*pi/4,pi,0.5,1,1.5,2,2.5,3];w=menu2(temp);n:[0:(N-l)];hd=idcal(w,N);%得到理想低通滤波器k=menu(’请选择窗口类型:’,’boxcar’,’hamming’,’hanning’,’blackman’);ifk==lB=boxcar(N);string=[,Boxc