IIR数字滤波器的设计

如题所述

第1个回答  2016-05-14

利用MATLAB信号处理工具箱中的滤波器设计和分析工具(FDATool)可以很方便地设计出符合应用要求的未经量化的IIR数字滤波器。需要将MATLAB设计出的IIR数字滤波器进一步分解和量化,从而获得可用FPGA实现的滤波器系数。
IIR数字滤波器的设计方法有两类:间接设计法和直接设计法。间接设计法是借助模拟滤波器设计方法进行设计的,先根据数字滤波器设计指标设计相应的过渡模拟滤波器,再将过渡模拟滤波器转换为数字滤波器。直接设计法师在时域或频域直接设计数字滤波器。
由于模拟滤波器设计理论非常成熟,而且有很多性能优良的典型滤波器可供选择(如,巴特沃斯滤波器、切比雪夫滤波器、椭圆滤波器等),设计公式和图表完善,而且许多实际应用需要模拟滤波器的数字仿真,所以间接设计法得到广泛的应用。而直接设计法要求解联立方程组,必须采用计算机辅助设计。在计算机普及的今天,各种设计方法都有现成的设计程序(或设计函数)可供调用,例如利用MATLAB仿真平台,可以设计不同类型的IIR滤波器。 3.1.1性能指标确定
按照实际需要确定滤波器的性能要求,比如确定所要设计的滤波器是低通、高通、带通还是带阻,截止频率是多少,阻带的衰减有多大,通带的波动范围是多少等等。
3.1.2系统函数确定
用一个因果稳定的系统函数(或差分方程、脉冲响应h(n))去逼近上述性能要求。此系统函数可分为两类,即IIR系统函数与FIR系统函数。
3.1.3算法设计
用一个有限精度的运算去实现这个系统函数(速度、开销、稳定性等)。这里包括选择算法结构,如级联型、并联型、正准型、横截型或频率采样型等等;还包括选择合适的字长以及选择有效的数字处理方法等。
3.2 IIR数字滤波器的直接设计法
直接设计可以采用优化设计(CAD)法,数字滤波器的系统函数H(Z)的系数ai, bi或零极点ci, di等参数,可采用优化设计的方法。设计步骤:
1. 优化原则——最小均方误差准则,绝对误差准则等。
2. 赋予初值.
3. 一次次的改变参数赋值,根据优化准则计算误差。
4. 改变参数赋值,再次计算误差,如此迭代下去,直至误差达到最小。示意图如下
间接设计法的设计过程如下:
1) 确定数字滤波器指标;
2) 将数字滤波器指标转换为相应的模拟滤波器指标;
3) 设计满足指标要求的过渡模拟函数(s);
4) 将过渡模拟函数(s)转换为数字滤波器H(z)。示意图如下:

把模拟滤波器Ha(S) 转换为数字滤波器H(z)的实质是,用一种从s平面到z平面的映射函数将Ha(S) 转换H(z)。对这种映射函数的要求是:因果稳定的模拟滤波器转换为数字滤波器H(z)后仍然稳定;数字滤波器H(z)的频率响应特性能够近似模仿数字滤波器Ha(S)的片段常数频率响应特性。常用的模拟-数字滤波器变换方法有:脉冲响应不变法和双线性变换法,也就是根据两种准则。
3.3.1 脉冲响应不变法
步骤:
1)对已知的(s) 进行拉氏反变换,求得(t);(t) (nt)
2)对(t) 进行取样,得(nt);
3)令h(n)=T(nt),以求得h(n);
4)对h(n) 进行Z 变换,得H(Z)。
3.3.2双线性变换
由于脉冲响应不变法存在缺点,即因为z=映射关系不是单值对应,所以,从s 平
面直接映射到z 平面时会产生混迭现象,而且脉冲响应不变法只适合频率响应在高频处单调递减的模拟原型滤波器,因此其应用范围受到限制。
双线性变换法的主要目的是从根本上解决上述脉冲响应不变法的问题也付出了一定的代价。
双线性变换法基本步骤:
1) 构造从S 平面到S1 平面的单值映射 :Ω = A tan(T/2)
2) 构造从S1 平面到Z 平面的单值映射: ω = T
实际上,不需要每次都从S 平面→S1平面→Z平面,而是直接求出S=f(Z) 的关系,然后代入Ha(s),得H(z),即H(z) = Ha(s)|s = f(z)。