DSP应用技术课程设计.doc
《DSP应用技术课程设计.doc》由会员分享,可在线阅读,更多相关《DSP应用技术课程设计.doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课 程 设 计 报 告(理工类)课程名称:DSP应用技术课程设计专业班级:08M通信工程专转本1班 学生学号: 学生姓名: 李惠敏 所属院部: 龙蟠学院 指导教师: 姜志鹏 2009 2010 学年 第 1 学期 金陵科技学院教务处制实验项目名称: 基于DSP的数字滤波器设计与仿真 实验学时: 2周(分散40学时) 同组学生姓名: 实验地点: B402 实验日期: 2009.11.16-11.27 实验成绩: 批改教师: 批改时间: 一、课程设计的目的和要求通过课程设计,加深对DSP芯片TMS320C54x的结构、工作原理的理解,获得DSP应用技术的实际训练,掌握设计较复杂DSP系统的基本方法
2、。通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使学生加深对所学知识的理解,进一步巩固汇编语言讲法规则。学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的能力。二、系统功能介绍及总体设计方案1、系统功能介绍一个实际的应用系统中,总存在各种干扰。数字滤波器在语音信号处理、信号频谱估计、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。在本设计中,使用MATLAB模拟产生合成信号,然后利用CCS进行滤波。设定模拟信号的采样频率为32000Hz,。设计一个FIR低通滤波器,其参数为:滤
3、波器名称: FIR低通滤波器采样频率: Fs=40000Hz通带: 4000Hz4500Hz过渡带: 2500Hz3000Hz,3500Hz4000Hz带内波动: 0.5dB阻带衰减: 50dB滤波器级数: N=154滤波器系数: 由MATLAB根据前述参数求得。2、总体设计方案流程图 使用MATLAB编写程序产生待滤波数据使用MATLAB滤波器的设计分析工具FDATOOL设计FIR滤波器使用CCS编写程序实现滤波功能查看程序运行后的输入输出波形并比较滤波效果 图1 总体设计方案三、主要内容和步骤1、滤波器原理对于一个FIR滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:其中N-1是F
4、IR的滤波器的阶数,为延时结,为端口信号函数。最基本的FIR滤波器可用下式表示:其中输入采样序列,是滤波器系数,N是滤波器的阶数Y(n)表示滤波器的输出序列,也可以用卷积来表示输出序列y(n)与x(n)、h(n)的关系,如下: y(n)=x(n)*h(n)2、DSP 实现FIR滤波的关键技术用线性缓冲区实现FIR滤波器 程序清单: .title “FIR1.ASM” .mmregs .def start x .usect “x”,8 PA0 .set 0 PA1 .set 1 .data COEF: .word 1*32768/10 .word 2*32768/10 .word -4*3276
5、8/10 .word 3*32768/10 .word -4*32768/10 .word 2*32768/10 .word 1*32768/10 .textstart: SSBX FRCT STM #x+7,AR2 STM #6,AR0 LD #x+1,DP PORTR PA1,x+1FIR1: RPTZ A,#6 MACD *AR2-,COEF,A STH A,*AR2 PORTW *AR2+,PA0 BD FIR1 PORTR PA1,*AR2+0 .end 用循环缓冲区实现FIR滤波器 程序清单: .title “FIR2.ASM” .mmregs .def start .bss y,
6、1xn .usect “xn”,7b0 .usect “b0”,7PA0 .set 0PA1 .set 1 .datatable: .word 1*32768/10 .word 2*32768/10 .word 3*32768/10 .word 4*32768/10 .word 5*32768/10 .word 6*32768/10 .word 7*32768/10 .text start: SSBX FRCT STM #b0,AR1 RPT #6 MVPD table,*AR1+ STM #xn+6,AR2 STM #b0+6,AR3 STM #7,BK STM #-1,AR0 LD #xn
7、,DP PORTR PA1,xnFIR2: RPTZ A,#6 MAC *AR2+0%,*AR3+0%,A STH A,y PORTW y,PA0 BD FIR2 PORTR PA1,*AR2+0% .end 3.操作步骤(1)打开FDATOOL,根据滤波要求设置滤波器类型、通带截止频率、指定阶数、采样频率等。指定完设计参数后单击按钮Design Filter,生成滤波器系数。(2)把生成的滤波器系数传到目标DSP。选择菜单Targets-Export to Code Composer Studio(tm)IDE,打开Export to C Header File对话框,选择C header
8、file,指定变量名(滤波器阶数和系数向量),输出数据类型可选浮点型或32 b,16 b整型等,根据自己安装选择目标板板号和处理器号,单击OK,保存该头文件,需指定文件名(filtercoeffh)和路径(保存在c:timyprojectsfir工程中)。(3)修改CCS汇编程序,删掉数据前的所有文字,在开头加上.data,第二行加coeff .word,在每行的前面加上.word,比且把每行的最后的逗号去掉。(4)编译汇编程序,如果有错误,按错误进行修改;没错误,则往下执行。(5)加载初始化DATA数据。运行程序,查看输入输出波形,修改相应参数进行调试四、详细设计在本实验中使用MATLAB模
9、拟产生信号,观察滤波前的时域波形和频域波形。MATLAB仿真后,使用得到的滤波器参数,进行DSP编程,在DSP中实现带通滤波,并使用CCS的频谱分析功能,查看DSP的滤波效果。1. MATLAB程序流程图如图1所示 初始化 产生需要虑波信号 画出原始信号频谱图 生成fir滤波器 进行滤波 画出滤波后信号频谱图图1 MATLAB程序流程图2. CCS汇编程序流程图如图2所示 本次滤波结束待滤波系数减一为原始信号和系数指定寄存器 定义滤波器系数 输入原始信号 初始化 做滤波算法是否有待滤波数据是 滤波结束是否还有待滤波数据 图2 CCS汇编程序流程图五、实验过程 1.汇编语言1、实验步骤与内容MA
10、TLAB辅助DSP 实现FIR ,其总体过程为在DSP 中编写处理程序,在MATLAB中利用滤波器设计、分析工具( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,然后把滤波器系数以头文件形式导入CCS 中,头文件中MATLAB 辅助DSP 实现FIR 数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP 程序并显示、分析处理后的数据。使用该方法,便于采用汇编语言来实现程序。头文件名不变,当MATLAB中设计的滤波器系数改变时,相应头文件中系数也改变,方便了程序调试、仿真。(一) 在MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域波形,如图1和图2所示
11、。利用FDA TOOL 设计FIR 滤波器的参数,操作步骤如图3所示。打开Export,把Numerator改为B,如图4所示。图6 EXPORT设置已滤波的信号的时域和频域波形,如图5和图6所示。MATLAB滤波器设计工具在完成FIR设计后,如图7所示,在Export as中选择16bit符号整数输出,然后单击OK按钮。生成fir.h C语言头文件。将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。图7 MATLAB输出数值类型转换(二)在CCS中编写汇编语言程序,进行调试,实现带通滤波的功能。在CCS IDE 中建立LHM.pjt工程,用汇编语言编写处理主程序fir.asm。另外根据板
12、上的存储器配置方式,编写存储器配置文件fir.cmd文件,将MATLAB生成的LHM.h和input1.dat文件拷贝到LHM.pjt工程文件夹下,进行编译、链接,生成可执行文件LHM.out。 (三)加载初始化data数据,图8所示。图8 data初始化运行程序,查看输入输出波形,修改相应参数进行调试。2、实验过程中出现的错误及解决的办法(1)在MATLAB程序设计中,采样频率设置的过小,截止频率大于采样频率的一半,运行的时候图形出现错误。(2)FIR.m中的采样频率要和开始设置时的采样频率一致,否则结果会出现偏差。(3)在CCS中未定义标号,程序运行错误。(4)在.h文件中未把coeff顶
13、格写,编译时出现错误。(5)未将fir.h和input.dat文件考入工程文件中。(6)间接寻址过程中,程序中丢失。 (7) 在View的Graph中单击Time/frequency出现graph property dialog框,未修改抽样点数。显示的图形出现差异3、CCS程序运行后的各种输出结果在View的Graph中单击Time/frequency出现graph property dialog框。将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置,输出各种波形。输出滤波前的信号时域波形。首先,设置如图9所示,输出滤波前的信号时域波形。单击OK后生成如下图10波形。图10为滤
14、波前的信号,波形很杂乱,从时域上很难看出信号的周期性。修改相应设置,输出如图11所示滤波前信号频谱。 经过滤波后,时域波形如图12所示。C语言1、实验步骤与内容MATLAB辅助DSP 实现FIR ,其总体过程为在DSP 中编写处理程序,在MATLAB中利用滤波器设计、分析工具( FDATOOL) ,根据指定的滤波器性能快速设计一个FIR ,然后把滤波器系数以头文件形式导入CCS 中,头文件中MATLAB 辅助DSP 实现FIR 数字滤波器含滤波器阶数和系数数组,在MATLAB中调试、运行DSP 程序并显示、分析处理后的数据。使用该方法,便于采用C语言来实现程序。头文件名不变,当MATLAB中设
15、计的滤波器系数改变时,相应头文件中系数也改变,方便了程序调试、仿真。(二) 在MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域波形,如图1和图2所示。利用FDA TOOL 设计FIR 滤波器的参数,操作步骤如图3所示。打开Export,把Numerator改为B,如图4所示。已滤波的信号的时域和频域波形,如图5和图6所示。MATLAB滤波器设计工具在完成FIR设计后,如图7所示,在Export as中选择16bit符号整数输出,然后单击OK按钮。生成fir.h C语言头文件。将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。(二)在CCS中编写汇编语言程序,进行调试,实现带通
16、滤波的功能。在CCS IDE 中建立LHM.pjt工程,用汇编语言编写处理主程序fir.asm。另外根据板上的存储器配置方式,编写存储器配置文件fir.cmd文件,将MATLAB生成的LHM.h和input1.dat文件拷贝到LHM.pjt工程文件夹下,进行编译、链接,生成可执行文件LHM.out。 (三)加载初始化data数据,图8所示。运行程序,查看输入输出波形,修改相应参数进行调试。2、实验过程中出现的错误及解决的办法(1)在MATLAB程序设计中,采样频率设置的过小,截止频率大于采样频率的一半,运行的时候图形出现错误。(2)FIR.m中的采样频率要和开始设置时的采样频率一致否则结果会出
17、现偏差。(3)在CCS中未定义标号,程序运行错误。(4)在.h文件中未把coeff顶格写,编译时出现错误。(5)未将fir.h和input.dat文件考入工程文件中。(6)间接寻址过程中,程序中丢失。 (7) 在View的Graph中单击Time/frequency出现graph property dialog框,未修改抽样点数。显示的图形出现差异3、CCS程序运行后的各种输出结果在View的Graph中单击Time/frequency出现graph property dialog框。将显示类型,图形名称,起始地址,抽样点数,数据类型等分别进行设置,输出各种波形。输出滤波前的信号时域波形,设置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 应用技术 课程设计
限制150内