有限冲击响应滤波器FIR算法实验.docx
- 文档编号:6141498
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:18
- 大小:838.97KB
有限冲击响应滤波器FIR算法实验.docx
《有限冲击响应滤波器FIR算法实验.docx》由会员分享,可在线阅读,更多相关《有限冲击响应滤波器FIR算法实验.docx(18页珍藏版)》请在冰豆网上搜索。
有限冲击响应滤波器FIR算法实验
淮阴师范学院物理与电子电气工程学院
DSP课程设计报告
学生姓名
许进
学号
170907032
班级
0907
专业
电子信息工程
题目
有限冲击响应滤波器(FIR)算法实验
指导教师
潘建
2012
年
5
月
一、设计指标
1.1课题研究
随着集成电路技术的发展,各种新型的大规模和超大规模继承电路不断涌现集成电路技术与计算机技术结合在一起使得对数字信号处理系统功能的要求越来越强。
DSP技术基于VLSI技术和计算机技术发展起来的一门技术。
用可编程DSP芯片实现数字滤波器可通过修改滤波器的参数十分方便的改变滤波器的特性,因此将通过DSP设计平台来实现FIR。
本课题的研究将为今后设计DSP核心部件的嵌入式系统集成提供技术准备。
1.2研究要求
1)掌握用窗函数法设计FIR数字滤波器的原理和方法;
2)熟悉线性相位FIR数字滤波器特性;
3)了解各种窗函数对滤波特性的影响。
二、总体设计方案
2.1设计要求
利用C语言在CCS环境中编写一个FIR滤波器程序,并能利用以设计好的滤波器对常用信号进行滤波处理。
2.2CCS开发环境
CCS加速和增强了实时,嵌入信号处理的开发过程,它提供了配置,构建,调试,跟踪和分析程序的功能。
CCS功能如图2.2.1所示,CCS基本开发环境如图2.2.2所示
图2.2.1CCS功能
图2.2.2CCS基本开发环境
2.3设计思路
在TMS320C54X系统开发环境CCS下对FIR滤波器的DSP实现原理进行讨论。
利用C语言设计相应的滤波器,通过实验仿真,从输入信号和输出信号的时域和频域曲线可以看出在DSP上实现的FIR滤波器能完成预定的滤波任务。
2.4设计方框图
三、设计原理分析
3.1FIR滤波器的基本原理
设h(n)(n=0,1,2…N-1)为滤波器的冲击响应,输入信号x(n),则FIE滤波器就是实现下列差分方程:
式
(1)是FIR滤波器的差分方程。
FIR滤波器的最主要的特点就是没有反馈电路,因此它是无条件稳定系统。
它的单位脉冲响应h(n)是一个有限长序列。
对
(1)式进行Z变换,整理后得FIR滤波器的传递函数为:
所以FIR滤波器的一般结构如图3.1.1所示:
图3.1.1FIR滤波器的结构
3.2FIR滤波器的设计方法
要设计一个FIR滤波器就是要求出它的冲击响应系数h(n),设计方法主要有窗函数法和频率抽样法。
理想的低通滤波器的频率响应Hd(w)是一个矩形,这意味着它在时域上是无限长的序列,这在实际上是不可能实现的。
因此要采取某种方法截断Hd(n),可以用一个有限长度的窗函数序列w(n)与之相乘。
因此对窗函数的分析和选择是设计FIR滤波器的关键问题。
3.3电路安装与调试过程
A.实验前准备
1)正确完成计算机、DSP仿真器和实验箱连接后,开关K9拨到右边,即仿真器选择连接右边的CPU:
CPU2;
2)“A/D转换单元”的拨码开关设置:
拨码开关设置:
码位
备注
1
ON:
将“模拟信号源”单元的信号输入到AD7822
2
OFF:
3
OFF:
4
OFF:
5
OFF:
6
OFF:
SW2拨码开关
SW2
备注
1
2
3
4
码位
ON
ON
ON
ON
AD7822的采样时钟为250KHZ,且中断给CPU2的中断2
3)检查:
计算机、DSP仿真器、实验箱是否正确连接,系统上电;
4)置拨码开关S23的1、2拨到OFF,用示波器分别观测模拟信号源单元的2号孔“信号源1”和“信号源2”输出的模拟信号,分别调节信号波形选择、信号频率、信号输出幅值等旋钮,直至满意,置拨码开关S23的1到ON,两信号混频输出;
本样例实验程序建议:
采用两路正弦波信号的混叠信号作为输入信号;
低频正弦波信号:
幅值5V,频率<20KHz;
高频正弦波信号:
幅值2.5V,频率>70KHz;
可在2号孔“信号源1”点用示波器观察混叠信号。
B.实验
启动CCS2.0,Project/Open打开“Algorithm”目录中“Exp02_cpu2”子目录下“Exp-FIR-AD.pjt”工程文件;双击“Exp-FIR-AD.pjt”及“Source”可查看各源程序;加载“Exp-FIR-AD.out”;在主程序中,在flag=0处设置断点;单击“Run”运行程序,程序将运行至断点处停止;
用View/Graph/Time/Frequency打开一个图形观察窗口;设置观察图形窗口变量及参数为:
采用双踪观察启始地址分别为x和y,长度为256的单元中数值的变化,数值类型为32位浮点型变量,这两个数组中分别存放的是经A/D转换后的输入混叠信号(输入信号)和对该信号进行FIR滤波的结果;
单击“Animate”运行程序,或按F10运行程序;调整观察窗口并观察滤波结果;
单击“Halt”暂停程序运行,激活“Exp-FIR-AD.c”的编辑窗口;
实验程序说明:
该程序为51阶FIR低通滤波器算法程序,采用矩形窗函数实现,数组h和xmid长度均为51,fs为采样频率,fstop为滤波器截止频率,可以修改以上参数来改变滤波器性能。
重新“RebuildAll”后,重新加载,单击“Animate”,可得到不同的实验结果。
实验结果:
在CCS2.0环境,同步观察输入信号及其FIR低通滤波结果。
3.4电路测试与使用说明
3.4.1FIR程序参数说明
系统函数
对应的常系数线性差分方程:
程序参数说明:
输入信号:
输入信号经A/D转换后,写入数组x,长度256,32位浮点型;
输出信号:
FIR低通滤波器输出,写入数组y,长度256,32位浮点型。
3.4.2系统程序代码
#pragmaCODE_SECTION(vect,"vect")
#include"stdio.h"
#include"math.h"
#definepi3.1415927
#defineIMR*(pmem+0x0000)
#defineIFR*(pmem+0x0001)
#definePMST*(pmem+0x001D)
#defineSWCR*(pmem+0x002B)
#defineSWWSR*(pmem+0x0028)
#defineAL*(pmem+0x0008)
#defineCLKMD0x0058/*clockmodereg*/
#defineLen256
#defineFLen51
doublenpass,h[FLen],x[Len],y[Len],xmid[FLen];
voidfirdes(doublenpass);
unsignedint*pmem=0;
ioportunsignedcharport8002;
intin_x[Len];
intm=0;
intintnum=0;
doublexmean=0;
inti=0;
intflag=0;
doublefs,fstop,r,rm;
inti,j,p,k=0;
voidcpu_init()
{
*(unsignedint*)CLKMD=0x0;//switchtoDIVmodeclkout=1/2clkin
while(((*(unsignedint*)CLKMD)&01)!
=0);
*(unsignedint*)CLKMD=0x27ff;//switchtoPLLX10mode
PMST=0x3FA0;
SWWSR=0x7fff;
SWCR=0x0000;
IMR=0;
IFR=IFR;
}
interruptvoidint2()
{
in_x[m]=port8002;
in_x[m]&=0x00FF;
m++;
intnum=m;
if(intnum==Len)
{
intnum=0;
xmean=0.0;
for(i=0;i { xmean=in_x[i]+xmean; } xmean=1.0*xmean/Len; for(i=0;i { x[i]=(double)(in_x[i]-xmean); } for(i=0;i { for(p=0;p { xmid[FLen-p-1]=xmid[FLen-p-2]; } xmid[0]=x[i]; r=0; rm=0; for(j=0;j { r=xmid[j]*h[j]; rm=rm+r; } y[i]=rm; } m=0; flag=1; } } voidfirdes(doublenpass) { intt; for(t=0;t { h[t]=sin((t-(FLen-1)/2.0)*npass*pi)/(pi*(t-(FLen-1)/2.0)); } if(t==((FLen-1)/2))h[t]=npass; } voidset_int() { asm("ssbxintm"); IMR=IMR|0x0004; asm("rsbxintm"); } voidmain(void) { cpu_init(); fs=250000; fstop=20000; npass=fstop/fs; for(i=0;i { xmid[i]=0; } firdes(npass); set_int(); for(;;) { if(flag==1) { flag=0;/*setbreakpointhere*/ } } } voidvect() { asm(".ref_c_int00");/*pseudoinstruction*/ asm(".ref_int2"); asm("b_c_int00");/*reset*/ asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete"); asm("nop"); asm("nop"); asm("nop"); asm("rete");/*int0*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*int1*/ asm("nop"); asm("nop"); asm("nop"); asm("b_int2");/*int2*/ asm("nop"); asm("nop"); asm("rete");/*tint0*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*brint0*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*bxint0*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*dmac0*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*tint1*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*int3*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*hpint*/ asm("nop"); asm("nop"); asm("rete");/*brint1*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*bxint1*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*dmac4*/ asm("nop"); asm("nop"); asm("nop"); asm("rete");/*dmac5*/ asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); asm("nop"); } 四、仿真图 1.标准方波,频率为300Hz,振幅为1000mv。 滤波前后的波形图和频谱图如下所示: 图4.1.1标准方波波形图 图4.1.2标准方波滤波前频谱图 图4.1.3标准方波滤波后 图4.1.4标准方波滤波后频谱图 五、总结 在数字信号处理中,滤波占有极其重要的地位。 FIR滤波器以其优越的性能,在信号处理中占有很重要的地位,利用DSP芯片实现FIR数字滤波,不仅准确度高,执行速度快等特点,而且用程序可移植性好,实现行强,可以十分方便的改变滤波器特性。 完成课程设计的过程中,很好的巩固和加深了对书本知识的学习,也深刻体会到DSP技术应用领域的广泛和重要性,同时对专业知识有了进一步的认识。 这次课程设计实现了简单的FIR数字滤波器的设计 参考文献 [1] 戴明桢等编著.TMS320C54XDSP结构原理及应用.北京: 航空航天大学出版社,第2版,2007 [2] 胡广书编著.数字信号处理理论,算法与实现。 北京: 清华大学出版社,2005; [3] 卢山,田野,郭黎利利用DSP技术实现FIR滤波器【期刊论文】-海南大学学报2002 [4] 孙克梅刘洋数字滤波器在DSP上的实现【期刊论文】-海南大学学报2005
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 有限 冲击 响应 滤波器 FIR 算法 实验
![提示](https://static.bdocx.com/images/bang_tan.gif)