太原理工大学DSP课设IIR滤波器的DSP实现.docx

上传人:b****6 文档编号:12946249 上传时间:2023-06-09 格式:DOCX 页数:15 大小:742.16KB
下载 相关 举报
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第1页
第1页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第2页
第2页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第3页
第3页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第4页
第4页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第5页
第5页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第6页
第6页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第7页
第7页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第8页
第8页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第9页
第9页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第10页
第10页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第11页
第11页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第12页
第12页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第13页
第13页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第14页
第14页 / 共15页
太原理工大学DSP课设IIR滤波器的DSP实现.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

太原理工大学DSP课设IIR滤波器的DSP实现.docx

《太原理工大学DSP课设IIR滤波器的DSP实现.docx》由会员分享,可在线阅读,更多相关《太原理工大学DSP课设IIR滤波器的DSP实现.docx(15页珍藏版)》请在冰点文库上搜索。

太原理工大学DSP课设IIR滤波器的DSP实现.docx

太原理工大学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文库

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2