基本信息
文件名称:2025【IIR滤波器的设计与MATLAB仿真分析综述6100字】.docx
文件大小:861.66 KB
总页数:18 页
更新时间:2025-03-05
总字数:约8.64千字
文档摘要

IIR滤波器的设计与MATLAB仿真分析综述

本章在MATLAB的设计环境下完成了一个IIR滤波器设计,设计出了一个以二阶基本节为主的椭圆型,并联结构的IIR低通滤波器。随后在simulation中进行了仿真验证。结果各项指标均符合要求。

1.1IIR的MATLAB设计

本次设计采用了MATLAB作为设计软件,MATLAB提供的FDATool设计工具,可以方便快捷地设计各种类型的滤波器[7]。其设计界面如下:

图4-1FDATool设计界面

由图4-1可以看出,在下方的设计选择栏,我们可以选择设定的滤波器种类是FIR滤波器还是IIR滤波器,然后选择对应的滤波器基本模型;种类确定后,可以设置滤波器为低通,高通,带通或带阻。

右边可以对滤波器的阶数,通带阻带和最大衰减值进行设置数值;设计完成的滤波器,其幅频特性曲线图和相频特性曲线图反映在设计栏上方。

举个例子,我们先选择滤波器类型为IIR滤波器,模型为巴特沃夫型(Butterworth型),响应类型为低通,输入相应的阶数,通带阻带频率以及通带阻带的衰减值,最后点击DesignFilter图标,等到幅频和相频曲线图出现,这就算完成了一次滤波器设计。

随后我们点击工具栏上的Analysis,选择Filterinformation可以查看设计好的滤波器的各项指标,比如结构,阶数和稳定性等。

选择另一个FilterCoefficients,则可以查看所设计的滤波器的零极点还有各阶增益。由于FDATool所设计出的IIR滤波器给出的滤波器系数是有符号的多位小数,所以精度上来说十分高,可以近似为理想值,但这在实际应用当中很难达到,因此要对滤波器系数进行量化。

在设计中,为了在节省资源的同时满足所需要的幅频响应特性,我们一般选择Minimumorder模式,即最小阶数模式。这样所设计出来的滤波器都是尽可能选用最小阶数,大大节约了所要使用的资源。

经过查看满足设计要求和指标后,就可以将滤波器打包为Simulink模型随后导入Simulink仿真系统中进行动态仿真验证。

本次设计,我们选择设计一个IIR低通滤波器,其各项指标如下:采样率FS=10MHz,通带截止频率Fpass=450KHz,阻带起始频率Fstop

随后用FDATool工具箱分别采用巴特沃夫滤波器,切比雪夫Ⅰ型,切比雪夫Ⅱ型滤波器和椭圆型滤波器四种设计方法,对滤波器进行设计,然后对比设计结果中得到的滤波器阶数[9]。其结果如下表4-1所示表格:

表4-1四种不同设计方法的IIR滤波器阶数比较

类型

阶数

巴特沃夫滤波器

71

切比雪夫Ⅰ型滤波器

18

切比雪夫Ⅱ型滤波器

18

椭圆型滤波器

8

对比表格中所展示的各种不同类型的滤波器的阶数,不难发现设计巴特沃夫型滤波器所用阶数最多,这需要占用大量的资源。

而切比雪夫型滤波器虽然阶数适中但是设计的过程和计算较为繁杂,相比之下椭圆型所用的阶数最少,且设计简便。故本次设计采用的最佳类型就是椭圆型滤波器。

由于在实际的设计应用里一般是是采用IIR二阶基本节为基本结构,故本次8阶椭圆型滤波器的设计需要四个基本节,所得到的幅频特性曲线图和相频特性曲线图如下图所示:

图4-2幅频特性曲线图

图4-3相频特性曲线图

1.2IIR滤波器的量化

由于理论上IIR滤波器的系数精度是无限的,而在实际的硬件平台中,计算机的存储要求是二进制的,所以要求操作过程也是二进制信号,即信号的字长是有限的。

故用FPGA硬件实现IIR滤波器一定要对设计出的结果进行量化,特别是系数量化。我们可以用FDATool工具箱计算出所设计的IIR滤波器的系数,然后对此系数进行量化。因为经过FDATool工具箱所得出的系数值的精度非常高,完全可以替代理论值。下图4-4给出了本次设计的系数列表:

图4-4八阶椭圆滤波器系数表

由4-4的表可以看出,经由FDATool所得到的IIR滤波器的系数表其精度是非常高的,是完全可以替代理论值进行设计。

但是,从前文第二章的理论可以知道,滤波器系统函数的系数直接决定了系统零极点的位置关系,所以哪怕是微小的系数变化,都可能会引起滤波器零极点位置的变动,如果位置变动过大的话甚至还会跑到单位圆外,从而导致系统的不稳定。而且零极点的改变过大的话,还会超出设计要求的设定值,导致不满足设计要求而失败。

因此,在系数量化完成后,我们还得对量化后的滤波器进行验证,确保量化之后的性能指标仍然符合设计要求。如下图给出的八阶椭圆型滤波器的零极点分布图:

图4-5八阶椭圆型滤波器零极点分布图

由上面的图4-5可以看出,设计的椭圆型滤波器它的零极点虽然在单位圆内,但都普遍十分接近单位圆,这样会导致在实际的设计当中,如果系数稍微出现一些偏差,那么极点就很可能会跑到单位圆上甚至是单位圆外。这样的话,系统变