实验五IIR滤波器.docx
《实验五IIR滤波器.docx》由会员分享,可在线阅读,更多相关《实验五IIR滤波器.docx(10页珍藏版)》请在冰点文库上搜索。
实验五IIR滤波器
贵州大学实验报告
学院:
电气工程学院专业:
电子信息工程班级:
姓名
学号
实验组
实验时间
指导教师
成绩
实验项目名称
IIR数字滤波器
实验目的
1.了解IIR滤波器的原理及使用方法
2.了解使用MATLAB语言设计IIT滤波器的方法
3.掌握DSP对IIR对滤波器的设计及编程方法
4.熟悉在CCS环境下对IIR滤波器的调试方法
实验要求
教师简单讲解,学生调试程序,教师全程辅导
实验原理
IIR数字滤波器的输入x(k)和输出y(k)的关系可以用如下常系数线性差分方程及其Z变换描述,即
y(k)=(6-1)
系统的传递函数为
H(Z)=(6-2)
实验仪器
安装CCS和MATLAB的电脑一台
实验步骤
1、MATLAB的滤波器设计
在MATLAB中使用滤波器设计工具箱(FDA)来设计滤波器,首先打开MATLAB,在命令窗口输入FDAtool,将出现滤波器设计工具箱.
下图是打开的滤波器设计的主要界面,通过输入有关参数可以设计各种滤波器,包括滤波器的类型,阶数,截止频率(Fpass),带宽,纹波系数(Apass),采样频率(Fs)等有关参数.
6-1MAILAB设计IIR滤波器界面
上图所设计是IIR型的3阶契比雪夫1型高通滤波器的采样频率为1200Hz,截止频率为200Hz,图中中间显示的是数据为设计好的滤波器的参数.
通过这个工具箱可以观察滤波器的频率特性,冲激响应特性,阶跃响应,零极点示意图
2、用MATLAB产生输入信号:
t=(1:
256)/1200;
x=32768*(sin(2*pi*100*t)+sin(2*pi*300*t))/2
此时会产生如下结果:
x=
1.0e+004*
Columns1through12
2.45761.418901.41892.45760-2.4576-1.41890-1.4189-2.4576-0
(会产生256点周期为12的输入信号,因此在此只给出一个周期的输入信号)
3、滤波器的汇编语言设计:
在编写滤波器之前,首先确定滤波器的参数,从上面的设计中得出滤波器的系数,为了防止小数运算的溢出,将各个系数除以8,得到新的数据:
分子:
0.04045,-0.1213375,0.1213375,-0.04045
分母:
1,-0.1151875,0.080275,0.080275,-0.0030875
针对以上参数,编写汇编语言如下:
.title"IIR.asm"
.mmregs
.deffilter_start
.def_main;定义主函数入口
K_DATA_SIZE.set256;定义数据个数
K_BUFFER_SIZE.set8
K_STACK_SIZE.set256;堆栈大小
K_A.set3;A的个数
K_B.set4;B的个数
K_CIR.setK_BUFFER_SIZE
STACK.usect"stack",K_STACK_SIZE
SYSTEM_STACK.setK_STACK_SIZE+STACK
DATA_DP.usect"filter_vars",0
filterdata.usect"filter_vars",K_DATA_SIZE
bufferdatay.usect"filter_vars",K_BUFFER_SIZE*2
bufferdatax.usect"filter_vars",K_BUFFER_SIZE*2
.data
.globalinputdata
inputdata
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.word24576,14189,0,14189,24576,0,-24576,-14189,0,-14189,-24576,0
.text
.asgAR2,ORIGIN
.asgAR3,INPUT
.asgAR4,FILTER
.asgAR5,OUTPUT
_main:
SSBXFRCT
SSBXINTM
LD#DATA_DP,DP
STM#STACK,SP
CALLfilter_start
NOP
NOP
NOP
loopBloop
.defb1,b2,b3,b4,a1,a2,a3
.deffilter_start
b1.set052dh
b2.set-0f87h
b3.set0f87h
b4.set-052dh
a1.set-0ebeh
a2.set0a46h
a3.set-0065h
.text
filter_start
STM#inputdata,ORIGIN
STM#bufferdatax,INPUT
STM#bufferdatay,FILTER
STM#filterdata,OUTPUT
STM#K_DATA_SIZE-3-1,BRC
STM#K_CIR,BK
STM#1,AR0
RPTBfilter_end-1
MVDD*ORIGIN+,*INPUT
RPT#K_B-1-1
MAR*INPUT-0%
MPY*INPUT+0%,#b4,B
LDB,A
MPY*INPUT+0%,#b3,B
ADDB,A
MPY*INPUT+0%,#b2,B
ADDB,A
MPY*INPUT+0%,#b1,B
ADDB,A
MPY*FILTER+0%,#a3,B
ADDB,A
MPY*FILTER+0%,#a2,B
ADDB,A
MPY*FILTER+0%,#a1,B
ADDB,A
STHA,*FILTER-0%
STHA,*OUTPUT+
MAR*FILTER-0%
filter_end:
NOP
RET
.end
其*.CMD命令文件如下:
IIR.obj
-oIIR.out
-mIIR.map
MEMORY
{
PAGE0:
PARAM:
org=3000h,len=4000h
PAGE1:
DARAM:
org=100h,len=4000h
}
SECTIONS
{
.text:
>PARAMPAGE0
stack:
>DARAMPAGE1
filter:
>DARAMPAGE1
.bss:
>DARAMPAGE1
.data:
>DARAMPAGE1
}
实验内容
要求设计一个采样频率为1200Hz,截止频率为200Hz的高通滤波器.
输入信号频率为100Hz和300Hz的合成信号,目的是同过所设计的滤波器的将100Hz的信号滤除掉,余下300Hz的信号成分,达到滤波效果
实验数据
图1滤波前信号的时域图
图2滤波前信号的频域图
图3滤波后信号的时域图
图4滤波后信号的频域图
实验总结
通过本次实验了解了IIR滤波器的原理及设计方法,熟悉了使用MATLAB进行滤波器的设计方法,进一步熟悉CCS的使用。
指导教师意见
签名:
年月日