太原理工大学现代科技学院
DSP硬件电路设计基础 课程设计
设计名称:无线冲击响应IIR滤波器的设计
专业班级:电子信息12-4
学 号:2012101635
姓 名:邵烨
指导教师:贾海蓉、李鸿燕
太原理工大学现代科技学院
专业班级
电子信息12-4
学生姓名
邵烨
课程名称
设计名称
无限冲击响应IIR滤波器的设计
设计周数
1.5周
指导教师
贾海蓉、李鸿燕
设计
任务
主要
设计
参数
掌握数字滤波器的设计过程;
了解IIR的原理和特性;
熟悉设计IIR数字滤波器的原理和方法;
学习IIR滤波器的DSP实现原理;
学习使用CCS的波形观察窗口观察输入/输出信号波形和频谱变化情况。
设计内容
设计要求
1. 通过MATLAB来设计一个低通滤波器,对它进行模拟仿真确定IIR滤波器系数;
2. 用DSP汇编语言及C语言进行编程,实现IIR运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后的波型变化。
主要参考
资 料
邹彦等.DSP原理及应用.北京:电子工业出版社.2007年.电气与电子信息类本科规划教材
李利等.DSP原理及应用.北京:中国水利水电出版社.2007年.21世纪高等院校规划教材
学生提交
归档文件
课程设计报告
课程设计任务书
注:1.课程设计完成后,学生提交的归档文件应按照:封面—任务书—说明书—图纸的顺序进行装订上交(大张图纸不必装订)
2.可根据实际内容需要续表,但应保持原格式不变。
指导教师签名: 日期:15.01.12
一、设计目的
掌握数字滤波器的设计过程;
了解IIR的原理和特性;
熟悉设计IIR数字滤波器的原理和方法;
学习II R滤波器的DSP实现原理;
5、通过CCS的图形显示工具观察输入/输出信号波形以及频谱的变化。
二、设计内容
用DSP汇编语言编程,实现IIR运算,对产生的合成信号,滤除信号中高频成分,观察滤波前后的波形变化。
三、设计原理
(1)IIR滤波器的基本结构
IIR滤波器广泛应用于数字信号处理中。IIR滤波器差分方程的一般表达式为:
式中x(n)为输入序列;y(n)为输出序列;和为滤波器系数.若所有系数等于0,则为FIR滤波器.
IIR滤波器具有无限长的单位脉冲响应,在结构上存在反馈回路,具有递归性,即IIR滤波器的输出不仅与输入有关,而且与过去的输出有关.
将上式展开得出y(n)表达式为:
在零初始条件下,对上式进行z变换,得到:
设N=M,则传递函数为:
上式可写成:
该传输函数既有极点又有零点。输出既依赖于输入又依赖于过去输出。IIR所需计算比FIR少。但是IIR具有稳定性问题。对滤波系数的量化特别敏感。上式具有N个零点和N个极点.若有极点位于单位圆外将导致系统不稳定.由于FIR滤波器所有的系数均为0,不存在极点,不会造成系数的不稳定.对于IIR滤波器,系统稳定的条件如下:
若|pi|<1,当n→时,h(n)→0,系统稳定;
若|pi|>1,当n→时,h(n)→,系统不稳定.
IIR滤波器具有多种形式,主要有:直接型(也称直接I型)、标准型(也称直接II型)、变换型、级联型和并联型.
二阶IIR滤波器,又称为二阶基本节,分为直接型、标准型和变换型.
对于一个二阶IIR滤波器,其输出可以写成:
直接型(直接I型)
根据上式可以得到直接二型IIR滤波器的结构图.如图1所示.共使用了4个延迟单元().
图1 直接I型二阶IIR滤波器
直接型二阶IIR滤波器还可以用图2的结构实现.
图2 直接I型二阶IIR滤波器
此时,延时变量变成了w(n).可以证明上图的结构仍满足二阶IIR滤波器输出方程.
前向通道:
反馈通道:
将1.2式代入1.1式可得:
标准型(直接II型)
从图2可以看出,左右两组延迟单元可以重叠,从而得到标准二阶IIR滤波器的结构图,如图3所示.由于这种结构所使用的延迟单元最少(只有2个),得到了广泛地应用,因此称之为标准型IIR滤波器.
图3 标准型二阶IIR滤波器
(2)二阶IIR滤波器的DSP实现
标准型二阶IIR滤波器的实现
在二阶IIR滤波器结构中,标准型结构是最常见的滤波器结构,其结构如图4所示:
图4 标准型二阶IIR滤波器
由结构图可以写出反馈通道和前向通道的差分方程:
反馈通道:
前向通道:
由以上两式对二阶IIR滤波器进行编程,其中乘法-累加运算可采用单操作数指令或双操作数指令,数据和系数可存放在DARAM中,如图5所示:
图5 双操作数数据存放和系数表
直接型二阶IIR滤波器的实现
二阶IIR滤波器可以用直接型结构来实现.在迭代运算中,先衰减后增益,系统的动态范围和鲁棒性要好些.直接型二阶IIR滤波器的结构如图6所示:
图6 直接型二阶IIR滤波器
直接型二阶IIR滤波器的脉冲传递函数为:
差分方程为:
为了实现直接型滤波,可在DARAM中开辟4个循环缓冲区,用来存放变量和系数,并采用循环缓冲区方式寻址.这4个循环缓冲区的结构如图7所示:
图7 循环缓冲区结构
四、总体方案设计
一个N阶IIR滤波器的传递函数可以表达为
用差分方程可以表达为
EMBED
从这个差分方程表达式可以看出, EMBED 是由两部分相加构成:
第一部分 EMBED 是一个对输入 EMBED 的N节延时链结构,每节延时抽头后加权相加,也即是一个横向结构网络。
第二部分 EMBED 也是一个N节延时链的横向结构网络,不过它是对 EMBED 延时,因此是个反馈网络。
从图中我们可以看到,直接型结构需要2N级延时单元。
SHAPE \* MERGEFORMAT
2.IIR数字滤波器设计的系统框图;
SHAPE \* MERGEFORMAT
3、主要步骤
用CCS编写好实验所需的汇编程序、C程序、链接命令文件等文件,在CCS中加载,然后在VIEW 选单中 Graph 副选框内的Time/Frequency 打开对话框,修改以下内容:
查看输入时将Start Address改为data_in,查看输出时改为out。若要查看频谱则选为View菜单中的FFT Magnitude选项。
五、源程序
1、汇编语言源程序(iir.asm):
.global _iir,_init,_outdata
_iir
bsetfrct
sub #1,t0
mov t0,mmap(csr)
add t0,ar0
mov xar2,xdp
mov ar2,cdp
mov #0,ac0
rptcsr
macmz *ar0-,*cdp+,ac0
add t0,ar1
mov xar3,xdp
mov ar3,cdp
rptcsr
macmz *ar1-,*cdp+,ac0
mar *ar1+
mov hi(ac0),*ar1
mov hi(ac0),t0
bclrfrct
ret
_init
sub #1,t0
mov t0,mmap(csr)
mov #0,ac0
rptcsr
mov ac0,*ar0+
rptcsr
mov ac0,*ar1+
ret
_outdata
mov t1,ac0
sub #2,ac0
mov ac0,mmap(csr)
add ac0,ar0
rptcsr
delay *ar0-
mar *ar0+
mov t0,*ar0
ret
2、链接命令文件(.cmd文件):
-stack 0x0500
-sysstack 0x0500
-heap 0x1000
-c
-u _Reset
-l rts55.lib
MEMORY
{
PAGE 0:
RAM(RWIX): origin=0x000100, length=0x01ff00
ROM(RIX): origin=0x020100