太原理工大学DSP课设IIR滤波器的DSP实现.docx
- 文档编号:12946249
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:15
- 大小:742.16KB
太原理工大学DSP课设IIR滤波器的DSP实现.docx
《太原理工大学DSP课设IIR滤波器的DSP实现.docx》由会员分享,可在线阅读,更多相关《太原理工大学DSP课设IIR滤波器的DSP实现.docx(15页珍藏版)》请在冰点文库上搜索。
太原理工大学DSP课设IIR滤波器的DSP实现
课程名称:
DSP原理及应用
实验项目:
IIR滤波器的DSP实现
实验地点:
起点机房
专业班级:
通信1002学号:
学生姓名:
指导教师:
2012年12月26日
IIR滤波器的DSP实现
一、设计目的
1、掌握数字滤波器的设计过程;
2、了解IIR的原理和特性;
3、熟悉设计IIR数字滤波器的原理和方法;
4、学习IIR滤波器的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滤波器的传递函数可以表达为
用差分方程可以表达为
从这个差分方程表达式可以看出,
是由两部分相加构成:
第一部分
是一个对输入
的N节延时链结构,每节延时抽头后加权相加,也即是一个横向结构网络。
第二部分
也是一个N节延时链的横向结构网络,不过它是对
延时,因此是个反馈网络。
从图中我们可以看到,直接型结构需要2N级延时单元。
2.IIR数字滤波器设计的系统框图;
3、主要步骤
用CCS编写好实验所需的汇编程序、C程序、链接命令文件等文件,在CCS中加载,然后在VIEW选单中Graph副选框内的Time/Frequency打开对话框,修改以下内容:
查看输入时将StartAddress改为data_in,查看输出时改为out。
若要查看频谱则选为View菜单中的FFTMagnitude选项。
五、源程序
1、汇编语言源程序(iir.asm):
.global_iir,_init,_outdata
_iir
bsetfrct
sub#1,t0
movt0,mmap(csr)
addt0,ar0
movxar2,xdp
movar2,cdp
mov#0,ac0
rptcsr
macmz*ar0-,*cdp+,ac0
addt0,ar1
movxar3,xdp
movar3,cdp
rptcsr
macmz*ar1-,*cdp+,ac0
mar*ar1+
movhi(ac0),*ar1
movhi(ac0),t0
bclrfrct
ret
_init
sub#1,t0
movt0,mmap(csr)
mov#0,ac0
rptcsr
movac0,*ar0+
rptcsr
movac0,*ar1+
ret
_outdata
movt1,ac0
sub#2,ac0
movac0,mmap(csr)
addac0,ar0
rptcsr
delay*ar0-
mar*ar0+
movt0,*ar0
ret
2、链接命令文件(.cmd文件):
-stack0x0500
-sysstack0x0500
-heap0x1000
-c
-u_Reset
-lrts55.lib
MEMORY
{
PAGE0:
RAM(RWIX):
origin=0x000100,length=0x01ff00
ROM(RIX):
origin=0x020100,length=0x01ff00
VECS(RIX):
origin=0xffff00,length=0x000200
PAGE2:
IOPORT(RWI):
origin=0x000000,length=0x020000
}
SECTIONS
{
.text>ROMPAGE0
.data>ROMPAGE0
.bss>RAMPAGE0
.const>RAMPAGE0
.sysmem>RAMPAGE0
.stack>RAMPAGE0
.cio>RAMPAGE0
.sysstack>RAMPAGE0
.switch>RAMPAGE0
.cinit>RAMPAGE0
.pinit>RAMPAGE0
.vectors>VECSPAGE0
.ioport>IOPORTPAGE2
}
3、C程序
#include"math.h"
#definesignal_1_f500
#definesignal_2_f10000
#definesignal_sample_f25000
#definepi3.1415926
#defineIIRNUMBER_L2
#definebufer_L256
intN_L=IIRNUMBER_L;
intdata_in[bufer_L];
intout[bufer_L];
intx[IIRNUMBER_L+1];
inty[IIRNUMBER_L+1];
intk=0;
intbufer=bufer_L;
intfBn[IIRNUMBER_L]={0,0x634a};
intfAn[IIRNUMBER_L]={0xe5c,0xe5c};
externintiir(int*x,int*y,int*fAn,int*fBn,intN_L);
externintinit(int*,int*,int);
externintoutdata(int*,int,int);
voidinputwave();
voidmain()
{
intiirout;
inputwave();
init(x,y,N_L);
while
(1)
{
x[0]=data_in[k];
iirout=iir(x,y,fAn,fBn,N_L);
outdata(out,iirout,bufer);
k++;
if(k>=bufer_L)
{
k=0;
}
}
}
voidinputwave()
{
floatwt1;
floatwt2;
inti;
for(i=0;i<=bufer_L;i++)
{
wt1=2*pi*i*signal_1_f;
wt1=wt1/signal_sample_f;
wt2=2*pi*i*signal_2_f;
wt2=wt2/signal_sample_f;
data_in[i]=(cos(wt1)+cos(wt2))/2*32768;
}
}
在CCS内编写以上程序通过加载运行等操作得到输入,输出的时域与频域波形图。
六、实验结果及分析
1、输入信号波形属性
时域波形
频域波形
2、输出信号波形属性
时域波形
频域波形
七、设计总结
通过这次实验,初步了解了TMS320VC54x芯片,了解设计IIR数字滤波器的原理与方法;掌握数字滤波器的计算机仿真方法,了解了IIR的原理和特性,学习IIR滤波器的DSP实现原理.熟悉设计IIR数字滤波器的原理和方法,学习使用CCS的波形观察窗口观察输入输出信号波形和频谱变化情况.
经过这次课程设计,我不仅对以前所学的知识有了较深刻的理解,而且动手能力、独立解决问题的能力及查找资料的能力得到了提高,学会怎么在遇到问题是去思考解决方法,在自己无法解决是得虚心求教于同学和老师,也要感谢老师和同学们的帮助。
相信这次实验所获得的东西会在今后的学习和生活中有很大的帮助。
八、参考文献
《DSP原理以及应用》,电子工业出版社
XX文库
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 太原 理工大学 DSP IIR 滤波器 实现
![提示](https://static.bingdoc.com/images/bang_tan.gif)