数字信号处理实验报告FIR和IIR滤波器的设计一、实验目的1、分别利用脉冲响应不变法、频率采样法设计IIR滤波器,观察滤波器形状,并进行比较。2、双线性变化法设计FIR滤波器。二、实验条件计算机、MATLAB2013a三、实验内容(一)、IIR滤波器的设计。IIR滤波器的特征是,具有无限持续时间冲激响应。这种滤波器也称之为递归型滤波器。这些滤波器产生新的输出,不但需要过去的输入和现在的输入,还需要过去的输出。其相应的差分方程为NkkNkkknxbknya00][][,假设0,00kaa,整理之后便得到滤波器的方程,由所学知识很明显看出该方程为递归的,ka系数的存在意味着递归滤波器有无限项的脉冲响应。相较与非递归滤波器,递归滤波器设计时所需的系数要少的多,更容易实现,一般会选择具有待求特性的原型模拟滤波器,然后将其转化为数字滤波器。IIR数字滤波器的设计常采用两种方法:冲激响应不变法、双线性变换法。1、利用脉冲响应不变法设计IIR滤波器。(1)、原理:每个模拟滤波器都有冲击响应h(t),就像每个数字滤波器都有脉冲响应h[n]一样,脉冲响应不变法选择的数字脉冲响应h[n]是满足设计要求的模拟滤波器冲击响应h(t)的采样值。即h[N]=h(nT),其中T为所用的采样间隔。如果令Ha(s)是h(t)的拉普拉斯变换,H(z)为h(n)的z变换,利用采样序列z变换和模拟信号的拉氏变换之间的关系,即jwez,从而将模拟滤波器的s面转换为数字滤波器的z平面。(2)、设计步骤:(a)、确定滤波器各个参数,截止频率fs、阶数、采样频率Fs等;(b)、将数字滤波器频率指标转换成相应的模拟滤波器频率指标sff2将数字频率和模拟频率联系起来;(3)、设计一个阶数为1的巴特沃斯滤波器,其截止频率为750HZ,采样频率为4000HZ;(4)、利用impinvar和butter函数,带入滤波器系数,具体代码如下:其中butter的具体使用方法如注释,当设计高通滤波器时,将‘s’改为‘high’即可。运行结果如图:分析结果发现与实际课本上的滤波器略有不同,判断可能是由于采样频率过大导致,修改采样频率后结果如下:2、利用双线性变换设计IIR滤波器。原理分析:双线性变换的定义为112zzfss,fs为采样频率,用je代替z,利用欧拉公式,最终变换得)2tan(2sfw,称为预扭曲方程,从而将模拟角频率与数字角频率联系起来,此时w与是非线性关系,只有当2趋于0时,sfw为线性关系,因此对于相同参数的滤波器,其对应的模拟滤波器和数字滤波器并不能达到完全吻合。(1)、滤波器的具体参数同上,1阶巴特沃斯滤波器,采样频率为4HZ(由上个实验发现采样频率不能超过10HZ,否则会出现严重的失真)。(2)、利用bilinear函数,对模拟滤波器实现双线性变换,代码如下:结果如下:3、将两种设计方法进行对比,并之后与对应得模拟滤波器相比较:和与之对应的模拟滤波器对比如下:结果分析:其中在采样频率为4HZ的时候,分别用双线性和脉冲响应不变法设计IIR滤波器,红色曲线为脉冲不变法,蓝色为双线性法,可知①、脉冲响应不变方法设计滤波器在通频带的增益要小但是其阻带频率较高,衰减幅度大,滤波性相对较好;②、双线性变换法在通频带其增益较高但阻带频率高,在实际的应用中可能不能很好地实现滤除噪声的功能。③、由于采样间隔较大,导致采样点数很少,对比模拟滤波器很容易发现数字滤波器不能很好地趋近于模拟滤波器。结合所学知识,对于脉冲响应不变法和双线性变换法设计滤波器的比较如下:脉冲不变:①、模拟频率到数字频率的转换时线性的,不需要借助预扭曲方程;②、数字滤波器单位脉冲响应的数字表示近似原型的模拟滤波器单位脉冲响应,因此时域特性逼近好;③、采样间隔越小,越能逼近模拟滤波器的形状;④、会产生频谱混叠现象,只适合带限滤波器;双线性变换法:①、克服多值映射得关系,可以消除频率的混叠;②、表示模拟传输函数的滤波器必须进行预扭曲;③、是非线性的,在高频处有较大的失真。(二)、FIR的数字滤波器的设计有限脉冲响应滤波器又称为非递归滤波器,其输出仅取决于过去的输入,与过去的输出无关,与之对应的差分方程为Mkkknxbny0][][,对比之前的IIR不难发现,其脉冲响应为有限项,Mkkknbnh0][][,包括M+1个脉冲函数。一般来说,滤波器的滚降特性越好,其需要的系数就越多,在FIR滤波器的设计中,如果要想达到满意的性能,一般需要100~200个系数,对比前面提到的IIR滤波器系数较多,但是非递归滤波器具有递归滤波器所没有的一些优点,它可以保证稳定,消除通带内的相位失真,这使得它更适合音频应用。在实际应用中,FIR滤波器可以利用窗函数或者频率采样法设计,窗函数设计FIR滤波器,上个实验已经做了具体的观察,此次实验主要采用的是频率采样法设计滤波器。1、原理分析:频率采样法的基本思想是使所设计的FIR数字滤波器的频率特性在某些离散频率点上的值准确地等于所需滤波器在这些频率点处的值,在其它频率处的特性则有较好的逼近。2、设计步骤:(a)、明确滤波器的性能指标,构造对应的模拟滤波器,对其频响函数H(W)在[0~2π]上进行采样,根据公式kNweHkHkHjwdd2)()()(,k=0,1,2……N-1,由于信号经过FIR滤波器后没有失真,则要求通带内具有恒定的幅频特性和相位线性特性,由所学知识得知,当FIR滤波器的系数关于中心对称时,即]1[][nNhnh或者]1[][nNhnh时,滤波器设计在逼近平直幅频特性的同时还能保证相位的线性特性。根据具体设计要求使其满足相位的线性关系,即kNNk1)(,幅度满足关系式)1()(,)()()(kNAkAekAkHkjN为奇数,)1()(kNAkAN为偶数。(b)、利用IDFT命令求出单位脉冲响应h[n],z变换得到H(z),从而得到数字滤波器的传输函数。3、设计具体采样频率为8000HZ,通带频率3000HZ,阻带频率3050HZ,的低通滤波器,其中1.0,1.0sp,具体代码如下:代码分析:根据sff2将模拟滤波器与数字滤波器联系起来,均分计算指令linspace,用于均分0~π,floor指令作用为向下取整,用来产生满足滤波器要求的幅度条件,freqz函数计算线性系统的频率响应,包括幅频响应和相频响应,其对应输出结果如下,便于观察设计的滤波器的具体滤波特性。h[n]时域结果图频域结果图结果分析:很明显得出的FIR滤波器的相位是严格的线性关系,且其幅频响应在通带逼近平直。对比之前对无限脉冲响应加窗方法设计FIR滤波器,频率采样法的优点是可以在频域直接设计,并且适合于最优化设计,MATLAB仿真结果表明:对于频率响应只有少数几个非零值采样的窄带选频滤波器特别有效,且效果也很好。但由于频率抽样点的分布必须符合一定规律,在规定通、阻带截止频率方面不够灵活。比如当截止频率不是整数倍数时会产生较大逼近误差.四、在实验中遇到的问题1、但是在实验的过程中发现,当采样频率为4000HZ时,得到的数字滤波器形状远远偏离了模拟滤波器,不断降低采样频率到10HZ以后逐渐恢复了正常形状。2、此外在IIR滤波器的设计中,对比数字滤波器和模拟滤波器,发现他们的契合度很低,按照所学知识,对于双线变换后的数字滤波器,由于其采用了预扭曲方程,其截止频率应该几乎和模拟滤波器相同,但是实验观察却不是这样的。查过相关资料后也没有很清楚的知道其原因,这表明我自己的知识储备还不够,以后需要更加努力。五、实验心得我学会了在MATLAB的中根据具体参数要求设计巴特沃斯滤波器,并借助bilinear和impinvar函数,对设计好的模拟滤波器分别采用双线性变换法和脉冲响应不变法转化为对应的IIR数字滤波器,其中双线性变换法设计滤波器时需要借助预扭曲方程将时域和频域频率联系起来,这样才能够使数字滤波器和模拟滤波器更贴合,相比较脉冲响应不变法不需要借助预扭曲,只要保证采样频率足够大,便可以得到较好的滤波器;同时接触到FIR数字滤波器设计的另一种方法——频率采样法。通过此次实验,让我分别对这三种设计滤波器的原理有了更深一步的了解,也对他们各自设计出的滤波器的优缺点有了更为直观的分析。通过此次实验,让我能够将理论更好的应用到实践中去,对以后的学习有很大的帮助。