DSP应用技术课程方案设计书 .docx
精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习课 程 设 计 报 告可编辑资料 - - - 欢迎下载精品名师归纳总结(理工类)班同学学号: 0821511027同学姓名: 李惠敏所属院部: 龙蟠学院 指导老师: 姜志鹏2021 2021 学年第 1 学期金陵科技学院教务处制试验工程名称: 基于 DSP的数字滤波器设计与仿真试验学时: 2 周(分散 40 学时)同组同学姓名:试验的点: B402试验日期: 2021.11.16-11.27试验成果:课程名称: DSP 应用技术课程设计 专业班级: 08M 通信工程专转本 1批改老师:批改时间:一、课程设计的目的和要求通过课程设计,加深对 DSP芯片 TMS320C54x的结构、工作原理的懂得,获得 DSP应用技术的实际训练,把握设计较复杂 DSP系统的基本方法。通过使用汇编语言编写具有完整功能的图形处理程序或信息系统,使同学加深对所学知识的懂得,进一步巩固汇编语言讲法规章。学会编制结构清晰、风格良好、数据结构适当的汇编语言程序,从而具备解决综合性实际问题的才能。二、系统功能介绍及总体设计方案1、系统功能介绍一个实际的应用系统中,总存在各种干扰。数字滤波器在语音信号处理、信号频谱估量、信号去噪、无线通信中的数字变频以及图像信号等各种信号处理中都有广泛的应用,数字滤波器也是使用最为广泛的信号处理算法之一。可编辑资料 - - - 欢迎下载精品名师归纳总结在本设计中,使用 MATLAB模拟产生合成信号,然后利用 CCS进行滤波。设定模拟信号的采样频率为 32000Hz,。设计一个 FIR 低通滤波器,其参数为:滤波器名称: FIR低通滤波器采样频率:Fs=40000Hz通带: 4000Hz4500Hz过渡带:2500Hz3000Hz, 3500Hz4000Hz带内波动:0.5dB阻带衰减: 50dB滤波器级数: N=154滤波器系数:由 MATLAB依据前述参数求得。 2、总体设计方案流程图可编辑资料 - - - 欢迎下载精品名师归纳总结使用 MATLAB编写程序图1 总体设计方产生案待滤波数据三、主要内容和步骤1、滤波器原理使用 MATLAB滤波器的设计分析工具 FDATOOL 设计 FIR 滤波可编辑资料 - - - 欢迎下载精品名师归纳总结对于一个 FIR 滤波器系统,它的冲击响应总是又限长的,其系统函数可记为:使用 CCS 编写程序实现滤波功能其中 N-1 是 FIR 的滤波器的阶数,为延时结,为端口信号函数。最基本的 FIR 滤波器可用下式表示:其中输入采样序列,是滤波器系数, N 是滤波器的阶数Y(n)表示滤波器查看程序运行后的输入输的输出序列,也可以用卷积来表示输出序列yn 与 xn 、hn 的关系,出波形并比较滤波成效如下:yn=xn*hn2、DSP 实现 FIR 滤波的关键技术用线性缓冲区实现FIR 滤波器程序清单:.title“ FIR1.ASM”.mmregs.defstart可编辑资料 - - - 欢迎下载精品名师归纳总结x.usect PA0.set0PA1.set1.data, 8“ x”可编辑资料 - - - 欢迎下载精品名师归纳总结COEF : .word1*32768/10.word2*32768/10.word -4*32768/10可编辑资料 - - - 欢迎下载精品名师归纳总结.word3*32768/10.word -4*32768/10.word2*32768/10.word1*32768/10.textstart: SSBX FRCT STM#x+7,AR2 STM#6,AR0 LD#x+1,DPPORTR PA1,x+1 FIR1: RPTZ A,#6MACD *AR2-,COEF,A STHA,*AR2PORTW *AR2+,PA0 BDFIR1PORTR PA1,*AR2+0.end用循环缓冲区实现FIR 滤波器程序清单:.title“ FIR2.ASM”.mmregs.defstart.bssy,1xn.usect“ xn” ,7b0PA0.usect.set0“ b0” ,7PA1.set1.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 FRCTSTM#b0,AR1 RPT#6MVPD table,*AR1+ STM#xn+6,AR2 STM#b0+6,AR3可编辑资料 - - - 欢迎下载精品名师归纳总结STM#7,BK STM#-1,AR0 LD#xn,DP PORTR PA1,xnFIR2: RPTZ A,#6MAC *AR2+0%,*AR3+0%,A STHA,yPORTW y,PA0 BDFIR2PORTR PA1,*AR2+0%.end可编辑资料 - - - 欢迎下载精品名师归纳总结3. 操作步骤(1) 打开 FDATOOL根,据滤波要求设置滤波器类型、通带截止频率、指定可编辑资料 - - - 欢迎下载精品名师归纳总结阶数、采样频率等。指定完设计参数后单击按钮Design Filter ,生成滤波器系数。(2) )把生成的滤波器系数传到目标DSP。选择菜单 Targets->Export to Code Composer StudiotmIDE,打开 Export to C Header File 对话框,选择 C header file ,指定变量名 滤波器阶数和系数向量 ,输出数据类型可选浮点型或32 b,16 b 整型等,依据自己安装选择目标板板号和处理器号,单击OK,储存该头文件,需指定文件名 filtercoeff h和路径 储存在 c: timyprojectsfir 工程中。(3) 修改 CCS 汇编程序,删掉数据前的全部文字,在开头加上.data,其次行加 coeff .word,在每行的前面加上 .word,比且把每行的最终的逗号去掉。(4) 编译汇编程序,假如有错误,按错误进行修改。没错误,就往下执行。(5) 加载初始化 DATA 数据。运行程序,查看输入输出波形,修改相应参数进行调试四、详细设计在本试验中使用 MATLA模B 拟产生信号,观看滤波前的时域波形和频域波形。MATLA仿B 真后,使用得到的滤波器参数,进行 DSP编程,在 DSP中实现带通滤波,并使用 CCS的频谱分析功能,查看 DSP的滤波成效。1. MATLAB程序流程图如图 1所示可编辑资料 - - - 欢迎下载精品名师归纳总结初始 化产生需要虑波信号画出原始信号频谱图生成 fir 滤波器进行滤波画出滤波后信号频谱图图1 MATLAB程序流程图2. CCS汇编程序流程图如图 2所示初始化输入原始信号定义滤波器系数做滤波算法可编辑资料 - - - 欢迎下载精品名师归纳总结是五、试验过程为原始信号和系数指定寄存器是否是有否待仍滤有波待数滤据波数据图2 CCS汇编程序流程图滤波终止可编辑资料 - - - 欢迎下载精品名师归纳总结1.汇编语言本次滤波终止待滤波系数减一1、试验步骤与内容MATLA辅B 助DSP实现FIR , 其总体过程为在 DSP 中编写处理程序,在 MATLAB中利用滤波器设计、分析工具 FDATOOL , 依据指定的滤波器性能快速设计一 个FIR , 然后把滤波器系数以头文件形式导入 CCS中, 头文件中 MATLA辅B 助DSP 实现FIR 数字滤波器含滤波器阶数和系数数组 , 在MATLA中B 调试、运行 DSP 程序并显示、分析处理后的数据。使用该方法, 便于接受汇编语言来实现程序。头文可编辑资料 - - - 欢迎下载精品名师归纳总结件名不变 , 当MATLA中B 设计的滤波器系数转变时 , 相应头文件中系数也转变 , 便利了程序调试、仿真。(一)在 MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频域波形,如图 1 和图 2 所示。利用 FDA TOOL设计 FIR 滤波器的参数,操作步骤如图3 所示。打开 Export ,把 Numerator 改为 B, 如图 4 所示。已滤波的信号的时域和频域波形,如图5 和图 6 所示。MATLAB滤波器设计工具在完成 FIR 设计后, 如图 7 所示,在 Export as中选择 16bit符号整数输出,然后单击 OK按钮。生成 fir.h C语言头文件。将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。(二)在 CCS中编写汇编语言程序,进行调试,实现带通滤波的功能。在CCS可编辑资料 - - - 欢迎下载精品名师归纳总结IDE 中建立 LHM.pjt6 EXPORT图,设置工程 用汇编语言编写处理主程序fir.asm。另外根可编辑资料 - - - 欢迎下载精品名师归纳总结据板上的储备器配置方式 , 编写储备器配置文件 fir.cmd文件, 将 MATLAB 生成的 LHM.h 和 input1.dat文件拷贝到 LHM.pjt工程文件夹下,进行编 译、链接 , 生成可执行文件 LHM.out。(三)加载初始化 data 数据,图 8 所示。运行程序,查看输入输出波形,修改相应参数进行调试。2、试验过程中显现的错误及解决的方法图 7 MATLAB输出数值类型转(1) )在 MATLAB程序设计中,采样频率设置的过小,截止频率大于采样频率的一半,运行的时候图形显现错误。(2) FIR.m 中的采样频图率要8 d和at开a 始初设始置化时的采样频率一样,否就结果会出现偏差。(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框。将显示类型,图形名称,起始的址,抽样点数,数据类型等分别进行设置,输出各种波形。输出滤波前的信号时域波形。第一,设置如图9 所示,输出滤波前的信号时域波形。单击 OK 后生成如下图 10 波形。图 10 为滤波前的信号,波形很杂乱,从时域上很难看出信号的周期性。修改相应设置,输出如图 11 所示滤波前信号频谱。经过滤波后,时域波形如图 12 所示。C 语言1、试验步骤与内容MATLA辅B 助DSP实现FIR , 其总体过程为在 DSP 中编写处理程序,在 MATLAB中利用滤波器设计、分析工具 FDATOOL , 依据指定的滤波器性能快速设计一 个FIR , 然后把滤波器系数以头文件形式导入 CCS中, 头文件中 MATLA辅B 助DSP 实现FIR 数字滤波器含滤波器阶数和系数数组 , 在MATLA中B 调试、运行 DSP 程序并显示、分析处理后的数据。使用该方法, 便于接受 C语言来实现程序。头文件名不变, 当MATLA中B 设计的滤波器系数转变时 , 相应头文件中系数也转变 , 便利了程序调试、仿真。(二)在 MATLAB中先编写程序,查看待滤波和已滤波的信号的时域和频可编辑资料 - - - 欢迎下载精品名师归纳总结域波形,如图 1 和图 2 所示。利用 FDA TOOL设计 FIR 滤波器的参数,操作步骤如图3 所示。打开 Export ,把 Numerator 改为 B, 如图 4 所示。已滤波的信号的时域和频域波形,如图5 和图 6 所示。MATLAB滤波器设计工具在完成 FIR 设计后, 如图 7 所示,在 Export as中选择16bit符号整数输出,然后单击OK按钮。生成 fir.h C语言头文件。将系数稍作修改,调整后拷贝到程序的系数初始化空间即可。(二)在 CCS中编写汇编语言程序,进行调试,实现带通滤波的功能。在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 中的采样频率要和开头设置时的采样频率一样否就结果会显现偏差。(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框。将显示类型,图形名称,起始的址,抽样点数,数据类型等分别进行设置,输出各种波形。输出滤波前的信号时域波形,设置如以下图,输出滤波前的信号时域波形。单击 OK 后生成如下图 10 波形。图 10 为滤波前的信号,波形很杂乱,从时域上很难看出信号的周期性。修改相应设置,输出如图 11 所示滤波前信号频谱。经过滤波后,时域波形如图 12 所示。六、结论与体会通过本次课程设计,让我明白了数字滤波是信号处理技术中的重要部分, 争论了数字滤波器的基本理论学问以及它实现方法。学习了数字滤波器的结构、设计理论,把握了各种数字滤波器的原理和特性。并且复习了MATLAB 的相关学问,并且利用 MATLAB与 CCS 设计了低通滤波器以及高通滤波器,仍争论了如何在定点 DSP 中实现数字滤波器的算法,学到了16 位定点 DSP 芯片TMS320C5402 的硬件、软件结构和特性,把握了CCS 环境下的程序开发方法、调试工具的使用及优化级别的选择等。.争论了 MATLAB环境下 FIR 数字滤波器的设计方法,利用MATLAB软件编程实现FIR 滤波器设计。利用 DSP 来快速设计 FIR 数字滤波器的方法,查找系数的快速传递,MATLAB 中调试仿真 DSP 程序。DSP 作为一门新兴学科,越来越引起人们的关注,目前已广泛应用在各个领域。 20 世纪 60 岁月以来,随着运算机和信息技术的飞速进展,数字信号处理技术应运而生并得到快速的进展。数字信号处理是DSP利用运算机或专用处可编辑资料 - - - 欢迎下载精品名师归纳总结理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、压缩、识别等处理,以得到符合们需要的信号形式。数字信号处理DSP是环围着数字信号处理的理论、实现和应用等几个方面进展起来的。数字信号处理在理论上的发展推动了数字信号处理应用的进展。反过来,数字信号处理的应用又促进了数 字信号处理理论的提高。而数字信号处理的实现就是理论和应用之间的桥梁。 数字信号处理 DSP 是以众多学科为理论基础的,它所涉及的范畴极其广泛。所以在今后的工作和学习生活中,综合运用模拟电子、数字电子和DSP 基本原理等课程中所学的理论学问去独立完成一个工程的设计。不仅要完善以上的MATLAB 设计方法,更要学会利用多种途径设计各种DSP 最小系统,娴熟 C 语言编程。七、参考文献1 李真芳,苏涛等 .DSP程序开发一 MATLAB调试及直接目标代码生成 M.西安: 西安电子科技高校出版社, 2003.87 一 163.2 楼顺天,李博函 .基于 MATLAB 的系统分析与设计一信号处理 M. 西安:西安电子科技高校出版社, 1998.81一 88.3 王秀芳,关凌涛 . 基于 MatLab 与 DSP的滤波器的快速设计方法 期刊文章 .现代运算机, 2021,总其次七七期: 97994 赵秀玲. 基于定点 DSP的 FIR 数字滤波器的争论与设计 硕士论文 . 曲阜师范高校, 2007.15325 罗军辉,罗勇江等 .MATLAB 在数字信号处理中的应用 M. 北京:机械工业出版社, 2005.63 一 128.附件:源程序清单汇编程序清单: lhm.h 文件内容:.datacoeff.word -85, -64, -61,-36,8,62,110,136,131.word 96,42,-11,-44,-44,-11,39,85,106.word 88,37,-29,-83,-101,-73,-7,70,124.word 131,82,-5,-96,-151,-144,-72,37,140.word191,162,61,-76,-191,-231,-174,-35,132.word256,278,180,-7,-208,-337,-330,-176,72.wor316,445,392,156,-178,-475,-599,-470,-108.word 361,745,857,594,-6,-748, -1336, -1456,-893.word 386,2192,4154,5816,6768,6768,5816,4154,2192可编辑资料 - - - 欢迎下载精品名师归纳总结.word 386,-893, -1456, -1336,-748,-6,594,857,745.word 361,-108,-470,-599,-475,-178,156,392,445.word316,72,-176,-330,-337,-208,-7,180,278.word256,132,-35,-174,-231,-191,-76,61,162.word 191,140,37,-72,-144,-151,-96,-5,82.word 131,124,70,-7,-73,-101,-83,-29,37.word 88,106,85,39,-11,-44,-44,-11,42.word 96,131,136,110,62,8,-36,-61,-64.word-85Fir.asm 内容:.title "fir.asm".mmregs.global_c_int00ORDER .set154D_LEN.set1024。TheLength of Input Dataxn.usect "xn",ORDER-1a0.usect "a0",ORDER-1input.usect "input",D_LENoutput .usect "output",D_LEN.copy"HM.h"。 Getcoefsfrom可编辑资料 - - - 欢迎下载精品名师归纳总结"coef.h"_c_int00:.text.asgAR0, FIR_INDEX.asgAR2, FIR_DATA.asgAR3, FIR_COEF.asgAR5, DATA_IN.asgAR6, DATA_OUTSSBXFRCT可编辑资料 - - - 欢迎下载精品名师归纳总结STM#a0,FIR_COEF。Copya0coefsto FIR_COEFAR3RPT#ORDER-1MVPD#coeff,*FIR_COEF+STM#1, FIR_INDEXRPTZA,#ORDER-1STLA, *FIR_DATA+STM#xn+ORDER-1, FIR_DATASTM#a0+ORDER-1, FIR_COEFSTM#input, DATA_IN。from "input"STM#output, DATA_OUT。STM#xn, FIR_DATA。Copyxndata to FIR_DATAAR2Get dataWrite可编辑资料 - - - 欢迎下载精品名师归纳总结data to "output"FIR:next FIR_END:STM#D_LEN-1, BRCRPTBDnext-1STM#ORDER, BKLD*DATA_IN+, ASTLA, *FIR_DATA+% RPTZA, ORDER-1MAC*FIR_DATA+0%, *FIR_COEF+0%, A。 FIRSSTHA, *DATA_OUT+BFIR_END.end可编辑资料 - - - 欢迎下载精品名师归纳总结FIR.m 的程序如下: fs=40000 。%/采样 Hz N=1024%数据个数T=1/fs 。%采样周期n=0:N-1 。df=n*fs/N%待滤波信号波形xin=randn1,1024 figure1plotxin%待滤波信号频谱xinff=absfftxin。figure2plotdf,xinff%滤波后信号波形y_filter_out=filterB,1,xin% Y = FILTERB,A,X figure3ploty_filter_out%滤波后信号频谱yff=ffty_filter_out。figure4 plotdf,yffxin=xin/maxxin。%归一化xto_ccs=round32767*xin%取整fid=fopen'input1.dat', 'w' 。%打开文件fprintffid,'1651 1 0 0 0n' 。%输出文件头fprintffid,'%dn',xto_ccs。%输出fclosefid。C程序清单lhm.h 文件内容:/*可编辑资料 - - - 欢迎下载精品名师归纳总结* Filter Coefficients C Source generated by the Filter Design and Analysis Tool* Generated by MATLABR 7.0.1 and the Signal Processing Toolbox 6.2.1.* Generated on: 11-Dec-2021 10:27:37*/* Discrete-Time FIR Filter real* Filter Structure : Direct-Form FIR* Filter Order110* Stable: Yes* Linear Phase: Yes Type 1*/* General type conversion for MATLAB generated C-code */ #include "C:MATLAB701externincludetmwtypes.h"/* Expected path to tmwtypes.h* C:MATLAB701externincludetmwtypes.h*/* Warning - Filter coefficients were truncated to fit specified data type.* The resulting response may not match generated theoretical response.* Use the Filter Design & Analysis Tool to design accurate* int16 filter coefficients.*/const int BL = 111 。const int16_T B111 = -100,654,-605,-216,140,234,138,-25,-145,-158,-69,63,155,145,36,-104,-181,-138,6,159,212,121,-65,-223,-237,-85,145,295,250,21,-248,-370,-239,79,379,443,196,-227,-544,-511,-100,452,765,569,-90,-823,-1105,-614,502,1602,1844,641, -1953, -5169,-7819, 23925, -7819, -5169, -1953,641,1844,1602,502,-614, -1105,-823,-90,569,765,452,-100,-511,-544,-227,196,443,379,79,-239,-370,-248,21,250,295,145,-85,-237,-223,-65,121,212,159,6,-138,-181,-104,36,145,155,63,-69,-158,-145,-25,138,234,140,-216,-605,654,-100 。Fir.m 内容:可编辑资料 - - - 欢迎下载精品名师归纳总结f11=2500 。%/Hz f12=5500 。%/Hz f13=9000 。fs=32000 。%/采样 Hz N=500%数据个数T=1/fs 。%采样周期n=0:N 。x11=sin2*pi*f11*n*T。x12=0.7*sin2*pi*f12*n*T。x13=0.5*sin2*pi*f13*n*T。x_base=x11+x12+x13 。%待滤波信号波形figure1 plotx_base%待滤波信号频谱figure2 yff=absfftx_base df=n*fs/N plotdf,yffy_f_out=filterB,1,x_base。y_f_fft=absffty_f_out。figure3 ploty_f_out figure4 plotdf,y_f_fftxout=x_base/maxx_base。%归一化xto_ccs=round32767*xoutfid=fopen'input129.dat', 'w' 。%打开文件fprintffid,'1651 1 0 0 0n' 。%输出文件头fprintffid,'%dn',xto_ccs。%输出fclosefid。lhm.c的程序如下:#include "stdio.h" #include "LHM.h" #define N 111#define LEN 501 long yn 。int inputLEN。int outputLEN。void mainint i,j。int *x。forj=0。j<LEN-1 。j+可编辑资料 - - - 欢迎下载精品名师归纳总结x=&inputj。yn = 0 。fori=0。 i<N-1。 i+yn += Bi*x+。outputj=yn>>15。while1。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliang's personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this可编辑资料 - - - 欢迎下载精品名师归纳总结article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任。Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpre