研究型学习报告 一、问题重述 7.6 我们要用Kaiser窗法设计一个实值的一般线性相位的FIR滤波器,且满足以下指标: 0.9H(ej)1.1,0||0.23||0.4 750.06H(ej)0.06, 0.0.525||1.9H(ej)2.1,将Kaiser窗加到理想实值的脉冲响应上可以满足该指标,与该脉冲响应有关的理想频域响应为H(e): j (a)满足指标的最大值是多少?相应的值是多少?清楚地说明你的理由。 (b)满足指标的最大值是多少?相应的M值是多少?清楚地说明你的理由。 二、问题求解 (a) 我们知道,Kaiser窗法滤波器可以看成是一个低通滤波器加上一个高通滤波器。 根据理想的H(e),我们容易知道对应的参数分别为和2。在指标要求的带阻范围0.3||0.475内,这两个误差参数应该相加,并且我们容易得到: j20.06 从而求得以下参数: max0.02; A20log(0.02)33.9794; 0.5842(A21)0.40.07886(A21)2.65。 (b) 易知过渡带宽度为0.5250.4750.05,能够满足题目指标。 从而容易得到相关的阶数: M A7.95173.18973 2.286()三、仿真验证 根据题目的要求指标,我们已经得到对应Kaiser窗的参数和M,从而我们可以验证Kaiser窗设计的FIR滤波器性能。 Kaiser窗的窗函数表达式为: I(1(1w(n)2n2))N1,0nN1 I0())是第一类变形零阶贝塞尔函数,是一个可以自由选择的参数,它可以同时调其中,I0(整主瓣宽度和旁瓣电平。 我们用matlab中的kaiser命令来产生响应的w(n)。 窗函数法设计滤波器的步骤如下: 1) 给定所要求的频率响应函数Hd(ej); 2) 求出对应的脉冲响应hd(n)IDTFT[Hd(ej)]; 3) 利用满足条件计算得到的值和M值,选定窗w(n)的形状。 4) 求得所设计的FIR滤波器的单位抽样响应 h(n)hd(n)w(n), n0,1,...N, 5) 求得滤波器频域表达函数H(e),检验是否满足设计指标。 根据以上步骤,我们进行了matlab仿真,仿真结果如下: j Figure 1 w(n)时域和频域特性 Figure 2 加窗后的脉冲时域响应和频域对数特性 Figure 3 加窗后的频域线性特性 通过仿真线性结果figure3的显示,该Kaiser窗法设计的FIR滤波器能够满足我们要求的指标。可见Kaiser窗性能优越。 作为对比,我们列出了矩形窗设计FIR滤波器作为比较: Figure 4 矩形窗FIR滤波器(dB) Figure 5 矩形窗FIR滤波器(linear) 由上观察,显然矩形窗设计的滤波器峰值误差不满足指标要求。 Matlab设计Kaiser窗程序如下: clc,clear all; %% Hd=[2,1,2]; %% N=73; r=(N-1)/2; syms w; for I=1:1:N hd0=0;hd1=0;hd2=0; hd0=double(int(exp(i*w*(I-r))*Hd(1),w,-pi,-0.5*pi)); hd1=double(int(exp(i*w*(I-r))*Hd(2),w,-0.25*pi,0.25*pi)); hd2=double(int(exp(i*w*(I-r))*Hd(3),w,0.5*pi,pi)); hd(I)=(hd0+hd1+hd2)/(2*pi); end %% beita=2.65; wn=kaiser(N,beita); wvtool(wn); %% for I=1:N; hn(I)=wn(I)*hd(I); end wvtool(hn); %%通过DTFT求和得到H(ej)。 本文来源:https://www.wddqw.com/doc/942215e4a2c7aa00b52acfc789eb172ded6399d8.html