基于DSP的FIR滤波器实训报告.docx
- 文档编号:24034897
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:12
- 大小:208.73KB
基于DSP的FIR滤波器实训报告.docx
《基于DSP的FIR滤波器实训报告.docx》由会员分享,可在线阅读,更多相关《基于DSP的FIR滤波器实训报告.docx(12页珍藏版)》请在冰豆网上搜索。
基于DSP的FIR滤波器实训报告
目录:
一、实训目的1
二、任务和要求2
三、FIR滤波器原理2
四、实验步骤内容及结果:
6
五、心得体会13
1、实训目的
通过实训加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法。
通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,对所学知识的理解,进一步巩固汇编语言讲法规则。
学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。
2、任务和要求
任务:
设计一个基于DSP的FIR滤波器
要求:
1.总体方案设计;
2.设计出软件编程方法,并写出源代码;
3.仿真与结果分析;
3、FIR滤波器原理
1、FIR滤波器介绍
FIR(FiniteImpulseResponse)滤波器:
有限长单位冲激响应滤波器,是数字信号处理系统中最基本的元件,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。
因此,FIR滤波器在通信、图像处理、模式识别等领域都有着广泛的应用。
2、系统功能介绍
任何一个实际的应用系统中,都存在着各种各样的干扰。
数字滤波器是使用最为广泛的信号处理算法之一。
数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用。
在本设计中,先使用MATLAB模拟产生合成信号,然后再利用CCS进行滤波处理。
将模拟信号的采样频率设定为32000Hz,设计一个FIR低通滤波器,其参数为:
滤波器名称:
FIR低通滤波器
采样频率:
Fs=40000Hz
通带:
4000Hz~4500Hz
过渡带:
2500Hz~3000Hz,3500Hz~4000Hz
带内波动:
0.5dB
阻带衰减:
50dB
滤波器级数:
N=154
滤波器系数:
由MATLAB根据前述参数求得。
3、滤波器的原理
对于任何一个FIR滤波器系统,它的冲击响应总是有限长的,其系统函数可记为:
其中N-1是FIR滤波器的阶数,
为延时结,
为端口信号函数。
下式为最基本的FIR滤波器表示:
其中
表示输入采样序列,
表示滤波器系数,N表示滤波器的阶数,Y(n)表示滤波器的输出序列,也可以用下式利用卷积来表示输出序列y(n)与x(n)、h(n)的关系:
y(n)=x(n)*h(n)
4、DSP实现FIR滤波的关键技术
(1)用线性缓冲区来实现FIR滤波器,其程序清单如下:
.title“FIR1.ASM”
.mmregs
.defstart
x.usect“x”,8
PA0.set0
PA1.set1
.data
COEF:
.word1*32768/10
.word2*32768/10
.word-4*32768/10
.word3*32768/10
.word-4*32768/10
.word2*32768/10
.word1*32768/10
.text
start:
SSBXFRCT
STM#x+7,AR2
STM#6,AR0
LD#x+1,DP
PORTRPA1,@x+1
FIR1:
RPTZA,#6
MACD*AR2-,COEF,A
STHA,*AR2
PORTW*AR2+,PA0
BDFIR1
PORTRPA1,*AR2+0
.end
(2)用循环缓冲区来实现FIR滤波器,其程序清单如下:
.title“FIR2.ASM”
.mmregs
.defstart
.bssy,1
xn.usect“xn”,7
b0.usect“b0”,7
PA0.set0
PA1.set1
.data
table:
.word1*32768/10
.word2*32768/10
.word3*32768/10
.word4*32768/10
.word5*32768/10
.word6*32768/10
.word7*32768/10
.text
start:
SSBXFRCT
STM#b0,AR1
RPT#6
MVPDtable,*AR1+
STM#xn+6,AR2
STM#b0+6,AR3
STM#7,BK
STM#-1,AR0
LD#xn,DP
PORTRPA1,@xn
FIR2:
RPTZA,#6
MAC*AR2+0%,*AR3+0%,A
STHA,@y
PORTW@y,PA0
BDFIR2
PORTRPA1,*AR2+0%
.end
4、实验步骤内容及结果:
MATLAB辅助DSP实现FIR,其总体过程为在DSP中编写处理程序,在MATLAB中利用滤波器设计、分析工具(FDATOOL),根据指定的滤波器性能快速设计一个FIR,再把滤波器系数以头文件形式导入CCS中,头文件中MATLAB辅助DSP实现FIR数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP程序并显示、分析处理后的数据。
使用该方法,便于采用汇编语言来实现程序。
头文件名不变,当MATLAB中设计的滤波器系数改变时,相应头文件中系数也改变,方便程序调试、仿真。
1)在MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域波形,如图4.1.1和图4.1.2所示。
图4.1.1待滤波的时域和频域波形
图4.1.2已滤波的时域和频域波形
利用FDATOOL设计FIR滤波器的参数,操作步骤如图4.1.3所示。
图4.1.3FDATOOL设计FIR滤波器的参数操作步骤图
打开Export,把Numerator改为B,如图4.1.4所示。
图4.1.4EXPORT设置
已滤波的信号的时域和频域波形,如图4.1.5和图4.1.6所示。
图4.1.5已滤波的信号的时域波形
图4.1.6已滤波的信号的频域波形
MATLAB滤波器设计工具在完成FIR设计后,如图4.1.7所示,在Exportas中选择16bit符号整数输出,然后单击OK按钮。
生成fir.hC语言头文件。
将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。
2)在CCS中编写汇编程序,进行调试,实现带通滤波功能。
在CCSIDE中建立LHM.pjt工程,用汇编语言编写处理主程序fir.asm。
另根据板上的存储器配置方式,编写存储器配置文件fir.cmd文件,将MATLAB生成的LHM.h和input1.dat文件拷贝到LHM.pjt工程文件夹下,进行编译、链接,生成可执行文件LHM.out。
3)加载初始化data数据,图4.1.8所示。
图4.1.8data初始化
运行程序,查看输入输出波形,修改相应参数进行调试。
4)CCS程序运行后的各种输出结果
在View的Graph中单击Time/frequency出现graphpropertydialog框。
将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置,输出各种波形。
输出滤波前的信号时域波形。
首先,设置如图4.1.9所示,输出滤波前的信号时域波形。
图4.1.9滤波前数据类型设置
单击OK后生成如下图4.1.10波形。
图4.1.10为滤波前的信号,波形很杂乱,从时域上很难看出信号的周期性。
修改相应设置,输出如图4.1.11所示滤波前信号频谱。
经过滤波后,时域波形和信号频谱分别如图4.1.12和图4.1.13所示。
图4.1.10滤波前时域波形
图4.1.11滤波前信号频谱
图4.1.12滤波后时域波形
图4.1.13滤波后信号频谱
5、心得体会
通过这次实训我进一步加深了对DSP芯片TMS320C54x的结构、工作原理的理解,在DSP应用技术的实际训练方面有了很好的动手机会,掌握了设计较复杂DSP系统的基本方法。
学会了通过使用汇编语言编写具有完整功能的图形处理程序或信息系统。
进一步加深了对所学知识的理解,巩固和联系了汇编语言讲法规则,锻炼了编写汇编语言程序的动手能力。
在此要感谢在学习过程中一直在帮助我的老师和同学们,感谢老师的悉心教导和细心的讲解,感谢在实训过程中和我一起努力和探讨问题的同学们,谢谢你们。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP FIR 滤波器 报告