IIR滤波器的DSP实现Word下载.docx
《IIR滤波器的DSP实现Word下载.docx》由会员分享,可在线阅读,更多相关《IIR滤波器的DSP实现Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
对于IIR滤波器,有系数量化敏感的缺点。
由于系统对序列施加的算法是由加法、乘法和延时的基本运算的组合,所以可以用不同结构的数字滤波器来实现,而不影响系统的总的传输函数。
四设计总方案
1IIR滤波器的基本结构
IIR滤波器差分方程的一般表达式为:
式中x(n)为输入序列;
y(n)为输出序列;
和为滤波器系数.若所有系数等于0,则为FIR滤波器.
IIR滤波器具有无限长的单位脉冲响应,在结构上存在反馈回路,具有递归性,即IIR滤波器的输出不仅与输入有关,而且与过去的输出有关.
IIR滤波器的传递函数为:
二阶IIR滤波器,又称为二阶基本节,分为直接型、标准型和变换型.
对于一个二阶IIR滤波器,其输出可以写成:
(1).直接型(直接I型)
根据上式可以得到直接二型IIR滤波器的结构图.如图1所示.共使用了4个延迟单元().
图1直接I型二阶IIR滤波器
直接型二阶IIR滤波器还可以用图2的结构实现.
图2直接I型二阶IIR滤波器
此时,延时变量变成了w(n).可以证明上图的结构仍满足二阶IIR滤波器输出方程.
前向通道:
反馈通道:
将1.2式代入1.1式可得:
(2)标准型(直接II型)
从图2可以看出,左右两组延迟单元可以重叠,从而得到标准二阶IIR滤波器的结构图,如图3所示.由于这种结构所使用的延迟单元最少(只有2个),得到了广泛地应用,因此称之为标准型IIR滤波器.
图3标准型二阶IIR滤波器
2总体方案设计;
(1)IIR数字滤波器设计的系统框图
相应的模拟滤波器设计
(2)设计步骤
①首先应根据指标参数及对滤波器特性的要求,选择合适的滤波器类型及设计方法进行设计。
根据本次设计的要求应采用Butterworth型IIR高通滤波;
②运用MATLAB编程,根据给定参数求出高通滤波器的指标和系统函数的系数;
如下所示:
编写程序:
>
>
Wp=400/500
Wp=0.8000
Ws=200/500
Ws=0.4000
[n,Wn]=buttord(Wp,Ws,10,25)
n=2
Wn=0.7990
[b,a]=butter(n,Wn)
b=0.63751.27500.6375
a=1.00001.13890.4110
freqz(b,a,512,1000)
得到滤波器的频率特性曲线
得到滤波器阶数为n=2,系统函数系数为:
③根据上面得到的系数和参量在CCS里编程运行得到,模拟滤波器的特性,并得到输入输出时域频域内的图形,验证滤波器的正确。
④得出设计结果,分析交流,最后得到结论。
主要参数;
Wp=400HZ,Ws=200HZ,αp=10dB,αs=25dB
五源程序
根据滤波器的阶数和系数得汇编语言源程序:
.title"
iir.asm"
.mmregs
.defstart
DX.usect"
DX"
3
DY.usect"
DY"
DB.usect"
DB"
DA.usect"
DA"
PA0.set0
PA1.set1
.data
table:
.word0
.word0
.word6375*32768/10000
.word12750*32768/10000
.word4110*32768/10000
.word11389*32768/10000
.text
start:
SSBXFRCT
STM#DX,AR1
RPT#1
MVPD#table,*AR1+
STM#DY,AR1
RPT#1
MVPD#table+2,*AR1+
STM#DB,AR1
RPT#2
MVPD#table+4,*AR1+
STM#DA,AR1
MVPD#table+7,*AR1+
STM#DX+2,AR2
STM#DY+1,AR3
STM#DB+2,AR4
STM#DA+1,AR5
STM#3,BK
STM#-1,AR0
iir:
PORTRPA1,*AR2
MPY*AR2+0%,*AR4+0%,A
MAC*AR2+0%,*AR4+0%,A
MAC*AR3+0%,*AR5+0%,A
MAC*AR3+0%,*AR5+0%,A
MAR*AR5+0%
STHA,*AR3
BDiir
PORTW*AR3,PA0
.end
命令文件为:
-oiir.out
-miir.map
-estart
MEMORY
{
PAGE0:
EPROM:
org=0E000Hlen=1000H
VECS:
org=0FF80Hlen=0080H
PAGE1:
SPRAM:
org=0060Hlen=0020H
DARAM:
org=0080Hlen=1380H
}
SECTIONS
.text:
EPROMPAGE0
.data:
>
DX:
align(4){}>
DARAMPAGE1
DY:
DB:
DA:
.vectors:
VECSPAGE0
在CCS内编写以上程序通过加载运行等操作得到输入,输出的时域与频域波形图。
六实验结果与分析
输入时域波形图:
输入频域波形图:
输出时域波形图:
输出频域波形图:
七结果分析
通过比较输入滤波器前后的波形得到,输出中滤去了输入的波形,得到设计所要求的频率段的波形,说明滤波器工作了,实现了对输入的滤波处理。
八、心得体会
这次课设总共十六个学时,虽然时间很短,但依然学到了很多东西。
在此之前,我没有接触过CCS这个软件,因此刚开始设计时是一头雾水。
后来按照教材上对这个软件的介绍及运用,才一步步学会如何使用这个软件并进一步用它完成这次的课程设计。
通过这次课设,使我加深了对数字滤波器的设计过程和IIR的原理和特性,学习IIR滤波器的DSP实现原理.而且还学习使用CCS这个软件并用其波形观察窗口观察输入输出信号波形和频谱变化情况.
其实,在整个设计过程中,还有最重要的一点是能够锻炼我们独立思考设计及查阅相关资料的能力,以及对待问题时的态度和处理事情的能力。
此外,还要有足够的耐心和细心。
在此设计过程中还用到了MATLAB等软件,我更熟悉了此软件的使用,这对以后的工作和解决实际问题都有了很好的帮助。