一、摘要
除了采用编程的方法实现滤波器之外,Mat l ab中自带工具箱FDATool 也能很方便快速的
实现滤波器的设计。另外FPGA、DS P等实现数字滤波器算法时,经常要用到滤波器系数,采
用FDATool 工具箱也能快速的得到滤波器系数。
二、实验平台
Matlab7.1
三、实现步骤
3.1 滤波器指标
若需要设计一个16阶的FIR滤波器(h(0)=0),给定的参数如下:
(1) 低通滤波器
(2) 采样频率F
s 为48kHz ,滤波器F
c为10.8kHz
(3) 输入序列位宽为9位(最高位为符号位)
在此利用MATLAB来完成FIR滤波器系数的确定。
3.2 打开MATLAB的FDATool
MATLAB集成了一套功能强大的滤波器设计工具FDATool (Fi l t er Desi g n & An al y si s Tool ),可
以完成多种滤波器的设计、分析和性能评估。
单击MATLAB主窗口下方的“St art ”按钮,如图B.1所示,选择菜单“Tool Box ” →“Fi l t er Desi g n ”
→“Fi l t er Desi g n & An al y si s Tool (FDATool )”命令,打开FDATool ,另外,在MATLAB主命令窗口内键入“fdat ool ”,同样可打开FDATool 程序界面。
如图B.2所示。
3.3 选择Des ign Filter
FDATool 界面左下侧排列了一组工具按钮,其功能分别如下所述:
● 创建多速率滤波器(Cr eat e a Mul t i r at e Fi l t er )
● 滤波器转换(Tr ans For m Fi l t er )
● 设置量化参数(S et Quant i zat i on Par amet er s)
● 实现模型(Real i ze Model )
● 零极点编辑器(Pol e-zer o Edi t or )
● 导入滤波器(Impor t Fi l t er )
● 设计滤波器(Des i gn Fi l t er )
选择其中的按钮,进入设计滤波器界面,进行下列选择,如图B.3所示
● 滤波器类型(Fi l er Type)为低通(Low Pass)
● 设计方法(Des i gn Met hod)为FIR,采用窗函数法(Wi ndow)
● 滤波器阶数(Fi l t er order)定制为15
● 窗口类型为Kai ser,Bet a为0.5
● F
s 为48kHz ,F
c为10.8kHz
最后单击Des i gn Fi l t er 图标,让MATLAB计算FIR滤波器系数并作相关分析。
其系统函数H(z)可用下式来表示:
H(z)=
显然上式可以写成:
H(z)=
即可以看成是一个15阶的FIR滤波器的输出结果经过了一个单位延时单元,所以在FDATool 中,
把它看成15阶FIR滤波器来计算参数。
因此,设置滤波器阶数时,要比要求的小1 。
3.4 滤波器分析
计算完FIR滤波器系数以后,往往需要对设计好的FIR滤波器进行相关的性能分析,以便了解该
滤波器是否满足设计要求。分析操作步骤如下:
选择FDATool 的菜单“An al y si s”→“Mag n i t u de Respon se”,启动幅频响应分析如图B.4所示,x
轴为频率,y 轴为幅度值(单位为dB)。
在图的左侧列出了当前滤波器的相关信息:
● 滤波器类型为Di rect Form FIR(直接I型FIR滤波器)
● 滤波器阶数为15
选择菜单“An al y si s”→“Ph ase Respon se”,启动相频响应分析,如图B.5所示。由该图可以看到
设计的FIR滤波器在通带内其相位响应为线性的,即该滤波器是一个线性相位的滤波器
图B.6显示了滤波器幅频特性与相频特性的比较,这可以通过菜单“An al y si s”→“Mag n i t u de an d
Ph ase Respon se”来启动分析。
选择菜单“An al y si s”→“Grou p Del ay Respon se”,启动群时延分析。
FDATool 还提供了以下几种分析工具:
● 群时延响应分析。
● 冲激响应分析(Im pu l se Respon se),如图B.7所示。
● 阶跃响应分析(St ep Respon se),如图B.8所示。
● 零极点图分析(Pol e/Zero Pl ot),如图B.9所示。
求出的FIR滤波器的系数可以通过选择菜单“An al y si s”→“Fi l t er Coef f i ci en t s”来观察。如图B.10
所示,图中列出了FDATool 计算的15阶直接I型FIR滤波器的部分系数。
3.5 量化
可以看到,FDATool 计算出的值是一个有符号的小数,如果建立的FIR滤波器模型需要一个整
数作为滤波器系数,就必须进行量化,并对得到的系数进行归一化。为此,单击FDATool 左下
侧的工具按钮进行量化参数设置。量化参数有三种方式:双精度、单精度和定点。在使用定点
量化前,必须确保MATLAB中已经安装定点工具箱并有相应的授权。
3.6 导出滤波器系数
为导出设计好的滤波器系数,选择FDATool 菜单的“Fi l e”→“Ex port”命令,打开Ex port(导
出)对话框,如图B.11所示。
在该窗口中,选择导出到工作区(Workpl ace)。这时滤波器系数就存入到一个一维变量Nu m 中
了。不过这时Nu m 中的元素是以小数形式出现的:
Num=
Col umns 1 t hr ough 9
-0.0369 0.0109 0.0558 0.0054 -0.0873 -0.0484 0.1805 0.4133 0.4133
Col umns 10 t hr ough 16
0.1805 -0.0484 -0.0873 0.0054 0.0558 0.0109 -0.0369
由此,可以得到低通滤波器的系数。