哈尔滨启东科技有限公司 DSP实验指导书
§2.7 无限冲击响应滤波器 (IIR) 实现
一、实验目的
二、实验设备
1. 一台装有CCS软件的计算机;
三、实验原理
数字滤波器的输入x[k]和输出y[k]之间的关系可以用如下常系数线性差分方程及其z变换描述:
2. TMS320F2812主控板; 3. DSP硬件仿真器。
1. 掌握IIR滤波器的原理与设计方法; 2. 掌握用C语言编写DSP程序的方法。
y[k]??aix[k?i]??biy[k?i]
i?0i?1MNM系统的转移函数为:
?k?bkzY(z) k?1H(z)??NX(z)1??akz?kk?0设计一个IIR滤波器就是要根据所给定的指标确定上式中的分子和分母系数。
设计IIR数字滤波器可以先设计一个合适的模拟滤波器,然后变换成满足给定指标的数字滤波器。这
种方法很简便,因为模拟滤波器有多种设计方法,如巴特沃思型滤波器、切比雪夫型滤波器、椭圆函数型滤波器等,并且已经具有很多简单而又现成的设计公式。采用这种方法需要把s平面映射到z平面,使模拟系统函数H(s)变换成所需的数字滤波器的系统函数H(z)。映射方法主要有冲激响应不变法、阶跃响应不变法和双线性变换法。前两种方法会因为多值映射关系产生混叠失真,双线性变换法克服了这一缺点。双线性变换法的映射关系式是:
- 21 -
1?z?1 s?c?11?z本实验采用的是巴特沃思型滤波器,并用双线性变换法转换成数字滤波器。
哈尔滨启东科技有限公司 DSP实验指导书
四、实验步骤
1. 在CCS环境中打开本实验的工程(Example_iir.pjt),编译并重建 .out 输出文件,然后通过仿真器把执行代码下载到DSP芯片中;
2. 运行程序; 3. 4.
在Watch窗口观察系统函数H(z)的分子和分母系数ptr_b,ptr_a。写出该滤波器的系统函数。 选择view->graph->time/frequency… 。 设置对话框中的参数: 其中 “Start Address”设为
“hwdb”,“Acquisition buffer size”和“Display Data size”都设为“50”,并且把“DSP Data Type”设为“32-bit floating point”,观察幅频响应的波形(如图);
5.
修改滤波器的设计参量fp,fr,fs,ap,ar等,重复上述过程,观察设计结果。(其参数值均在编
写的程序中请注意按程序修改)
五、思考题
1. 总结巴特沃思型滤波器的设计方法。
- 22 -
哈尔滨启东科技有限公司 DSP实验指导书
§2.8 自适应滤波器 (LMS) 实现
一、实验目的
二、实验设备
三、实验原理
1. 一台装有CCS软件的计算机; 2. TMS320F2812主控板; 3. DSP硬件仿真器。 1. 掌握自适应滤波器的原理; 2. 掌握LMS算法的原理;
3. 掌握用C语言编写DSP程序的方法。
图1
(图1)为自适应滤波器结构的一般形式,图中x(k) 为输入信号,通过参数可调的数字滤波器后产生输出信号y(k) ,将输出信号y(k) 与标准信号(或者为期望信号)d(k) 进行比较,得到误差信号e(k) 。e(k) 和x(k) 通过自适应算法对滤波器的参数进行调整,调整的目的是使误差信号e(k)最小。反复进行上面过程,使滤波器逐渐掌握了输入信号和噪声的统计规律,并以此为根据自动调整自己的参数,从而达到最佳的滤波效果。一旦输入信号的统计规律发生了变化,滤波器能够自动跟上输入信号的变化,自动调整滤波器的参数,这就是自适应滤波的原理。
自适应滤波器的结构可以采用FIR型或IIR型,由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。自适应FIR滤波器结构又可分为三种结构类型:横向型结构(Transversal Structure)、对称横向型结构(Symmetric Transversal Structure)、格型结构(Lattice Structure)。本实验所采用的是自适应滤波器设计中最常用的FIR横向型结构。设w(i)为横向滤波器的一组系数,滤波器的输出与输入信号间的关系可以表示为:
y(n)?WT(n)X(n)??wi(n)x(n?i)
i?0N?1- 23 -
哈尔滨启东科技有限公司 DSP实验指导书
自适应滤波器除了包括一个按照某种结构设计的滤波器,还有一套自适应的算法。滤波器的参数就是依照这种自适应算法来自动调整的,最常用的自适应算法是最小均方误差算法,即LMS算法(LeASt Mean Square)。LMS算法的目标是通过调整系数,使输出误差序列e(n)=d(n)?y(n) 的均方值最小化,并且根据这个判据来修改权系数。当均方误差达到最小时,得到最佳系数w *。为了较快地求得近似的最佳系数,可以采用最快下降法,也叫梯度算法,这是一种迭代运算。在采用种种近似和代替后,最后可以导出如下公式:
W(n?1)?W(n)?2ue(n)X(n)
式中的u是由系统稳定性和迭代运算收敛速度决定的自适应步长,u越小,则收敛越慢,但是u太大则会导致系统的不稳定性。本实验就是以这个公式为基础实现自适应滤波器的。关于算法的详细推导过程及参数的选择原则,请读者参考数字信号处理的有关资料。
四、实验步骤
1.
在CCS环境中打开本实验的工程(Example_lms.pjt),编译从而生成 .out 输出文件,然后通过仿
真器把执行代码下载到DSP芯片中;
2. 运行程序; 3.
选择view->graph->time/frequency… 。 设置对话框中的参数: 其中 “Start Address”设为“x”,
“Acquisition buffer size”和“Display Data size”都设为“500”,并且把“DSP Data Type”设为“32-bit floating point”,观察输入信号的波形(如图2);同样方法观察输出波形“y”(如图3)和输出误差“e”(如图4)的波形;体会“自适应”的过程。
(图2)
(图3)
- 24 -
哈尔滨启东科技有限公司 DSP实验指导书
4.
(图4)
修改信号长度L、滤波器级数N、自适应步长u、输入信号函数x等内容,重复上述过程,观察
程序运行结果。
五、思考题
1. 试推导梯度算法的公式;
2. 自适应步长u对自适应滤波过程有何影响,应如何决定u的值?
- 25 -