DSP卷积算法的实现实验报告(共12页)

上传人:沈*** 文档编号:128704100 上传时间:2022-08-01 格式:DOCX 页数:12 大小:64.46KB
收藏 版权申诉 举报 下载
DSP卷积算法的实现实验报告(共12页)_第1页
第1页 / 共12页
DSP卷积算法的实现实验报告(共12页)_第2页
第2页 / 共12页
DSP卷积算法的实现实验报告(共12页)_第3页
第3页 / 共12页
资源描述:

《DSP卷积算法的实现实验报告(共12页)》由会员分享,可在线阅读,更多相关《DSP卷积算法的实现实验报告(共12页)(12页珍藏版)》请在装配图网上搜索。

1、DSP技术及应用课程设计报告 课题名称: 卷积算法的实现 学 院: 电气信息工程学院 专 业: 通信工程 班 级: 通信11-1 姓 名: 学 号: 指导教师: 董胜 成 绩: 日 期:2014.6.9-2014.6.20 目录一、实验目的. .3二、设计要求. .3三、实验原理.31卷积的基本原理和公式.32.卷积和的运算在图形的表示. .33.卷积算法设计总框图.3四、CCS开发环境.5五、程序流程图.5六、程序的自编函数及其功能.6七、卷积算法程序.7八、实验步骤及过程.九、实验心得.十、参考文献.一、实验目的1.掌握并熟悉DSP的应用以及ICETEK-VC5416-A评估板的使用2.了

2、解卷积算法的原理和计算方法,特性与特点,并学习卷积算法的程序实现。 3. 提高自己的动手实践能力4.增加我们对本专业的各种芯片的了解,增强我们的专业素养。二、设计要求1.利用C语言在CCS环境中编写一个卷积算法程序,并能利用已设计好的卷积器对一些常用信号进行卷积运算处理。2.利用C语言设计相应的算法,通过实验仿真,观察输入信号和输出信号的时域和频域曲线,从而实现在DSP上实现卷积算法,完成预定的计算任务。三、实验原理卷积和(简称卷积)是信号处理中常用的算法之一。数字卷积运算通常采用两种方法:线性卷积和圆卷积。为了能使卷积运算在C54x系列DSP上的实现方法,首先要对数字卷积的基本概念作深入了解

3、。使大家从根本上掌握卷积的实现方法,我们以模拟信号的卷积和数字信号的卷积为主,以及他们在C54x系列DSP上的实现方法。1卷积的基本原理和公式 卷积和:Y(n)= X(m)H(nm)=X(n)*H(n) m=对离散系统“卷积和”也是求线性时不变系统输出响应(零状态响应)的主要方法。2.卷积和的运算在图形的表示可分为四步:A) 翻褶 现在亚变量坐标M上作出X(m)和H(m),将m=0的垂直轴为轴翻褶成H(-m)。B) 移位 将H(-m)移位n,即得H(n-m)。当n为正整数时,右移n位。当n为负整数时,左移n位。C) 相乘 再将H(n-m)和X(m)的相同m值的对应点值相乘。D) 相加 把以上所

4、有点的对应点的乘积叠加起来,即得Y(n)值。依上法,取n=,-2,-1,0,1,2,3,各值,即可得全部Y(n)值。3 卷积算法设计总框图取移位值n开 始初始化DSP产生输入信号将卷积信号X(m)和H(m)输入在同一个坐标系内翻转:将H(m)以m=0的垂直轴为轴翻褶成H(-m)移位:将H(-m)移位n,即得H(n-m)相乘:再将H(n-m)和X(m)的相同m值的对应点值相乘相加:把以上所有点的对应点的乘积叠加起来,即得Y(n)值。N值取遍整个坐标轴YES结 束四、CCS开发环境Code Composer Studio 是一种集成开发环境 (IDE),支持 TI 的微控制器和嵌入式处理器产品系列

5、。Code Composer Studio 包含一整套用于开发和调试嵌入式应用的工具。它包含了用于优化的 C/C+ 编译器、源码编辑器、项目构建环境、调试器、描述器以及多种其他功能。直观的 IDE 提供了单个用户界面,可帮助您完成应用开发流程的每个步骤。熟悉的工具和界面使用户能够比以前更快地入手。Code Composer Studio 将 Eclipse 软件框架的优点和 TI 先进的嵌入式调试功能相结合,为嵌入式开发人员提供了一个引人注目、功能丰富的开发环境。一般是先在CCS开发环境下编写程序(使用C语言、汇编语言或者两者混合)CCS内置软仿真simulator提供了编译,调试,运行功能。

6、其作用主要是检测目标程序运行的正确性和连贯性!但不能够实时查看和控制。当程序成功运行通过后,通过仿真器(XDS510或者XDS560)与目标板连接,安装仿真器驱动,然后load program到目标板,运行,利用仿真器提供的RTDX可实时查看存储器和寄存器变化。五、程序流程图六、程序的自编函数及其功能u processing1(int *input2, int *output2) 调用形式:processing1(int *input2, int *output2) 参数解释:intput2、output2为两个整型指针数组。 返回值解释:返回了一个“TREN”,让主函数的while循环保持连

7、续。 功能说明:对输入的input2 buffer波形进行截取m点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上的各点的值存入以OUTPUT2指针开始的一段地址空间中。u processing2(int *output2, int *output3) 调用形式:processing2(int *output2, int *output3) 参数解释:output2、output3为两个整型指针数组。 返回值解释:返回了一个“TREN”,让主函数的while循环保持连续。 功能说明:对输出的output2 buffer波形进行作n点移位,然后把生成的波形上的各点的值存入以OUTPUT3指针开始

8、的一段地址空间中。u processing3(int *input1,int *output2,int *output4) 调用形式:processing3(int *input1,int *output2,int *output4) 参数解释:output2、output4、input1为三个整型指针数组。 返回值解释:返回了一个“TREN”,让主函数的while循环保持连续。 功能说明:对输入的input2 buffer波形和输入的input1 buffer作卷积和运算,然后把生成的波形上的各点的值存入以OUTPUT4指针开始的一段地址空间中。u processing4(int *inpu

9、t2,int *output1) 调用形式:processing4(int *input2,int *output1) 参数解释:output1、input2为两个整型指针数组。 返回值解释:返回了一个“TREN”,让主函数的while循环保持连续。 功能说明:对输入的input2 buffer波形截取m点,然后把生成的波形上的各点的值存入以OUTPUT1指针开始的一段地址空间中。七、卷积算法程序#include #include volume.hint in1_bufferBUFSIZE;int in2_bufferBUFSIZE; int out1_bufferBUFSIZE;int ou

10、t2_bufferBUFSIZE;int out3_bufferBUFSIZE;int out4_bufferBUFSIZE*2;int size = BUFSIZE;int ain = MINGAIN;int zhy=0;int sk=64; /* Functions */static int step1(int *output1, int *output2);static int step2(int *output2, int *output3); static int step3(int *input1,int *output2,int *output4);static int step

11、4(int *input2, int *output1);static void dataIO1(void);static void dataIO2(void);void main() int *input1 = &in1_buffer0; int *input2 = &in2_buffer0; int *output1 = &out1_buffer0; int *output2 = &out2_buffer0; int *output3 = &out3_buffer0; int *output4 = &out4_buffer0; puts(volume example startedn);

12、while(TRUE) /* * Read input data using a probe-point connected to a host file. * Write output data to a graph connected through a probe-point. */ dataIO1();/ break point dataIO2();/ break point step4(input2,output1); step1(output1, output2); step2(output2, output3); step3(input1,output2,output4) ; s

13、tatic int step4(int *input2,int *output1) int m=sk; for(;m=0;m-) *output1+ = *input2+ * ain; for(;(size-m)0;m+) output1m=0; return(TRUE);static int step1(int *output1,int *output2) int m=sk-1; for(;m0;m-) *output2+ = *output1+ * ain; return(TRUE);static int step2(int *output2, int *output3) int n=zh

14、y; size=BUFSIZE; for(;(size-n)0;n+) *output3+ = output2n; return(TRUE);static int step3(int *input1,int *output2,int *output4) int m=sk; int y=zhy; int z,x,w,i,f,g; for(;(m-y)0;) i=y; x=0; z=0; f=y; for(;i=0;i-) g=input1z*output2f; x=x+g; z+; f-; *output4+ = x; y+; m=sk; y=sk-1; w=m-zhy-1; for(;m0;m

15、-) y-; i=y; z=sk-1; x=0; f=sk-y; for(;i0;i-,z-,f+) g=input1z*output2f; x=x+g; out4_bufferw=x; w+; return(TRUE); static void dataIO1() /* do data I/O */ return;static void dataIO2() /* do data I/O */ return;八、实验步骤及过程.九、实验总结在本次DSP课程设计中我们以四人一组,我和高芳容,鲍晶晶,金雪一组,我们抽中的题目是卷积算法的实现,刚开始的时候不知道从哪里入手。于是我们就去请教在这方面比

16、较厉害的同学,然后他大概的给我们解释了一下,虽然不是特别明白,可是大体上我们还是了解了。由于课程基本上都结束了,我们的时间比较多一点,所以我们也就没有那么紧张,慢慢的做。因为这一门课我没有好好听,所以理解的不是很透彻,所以我就跟他们一块去图书馆查找资料,慢慢的啃,说实话,我真不擅长看书,刚开始的时候,怎么看也看不懂,百思不得其解。后来,我去问了我同学,才慢慢的消化理解了。然后我们开始分工编程序。提到程序,我是一个头两个大,我C语言学的不好,没办法我又把大一,大二的书拿出来,慢慢的啃我们由组长分工,每人分别做着不同的工作,确保了我们本次课程设计的成功。刚开始,我们在本次设计中,我们从查阅资料,到编写程序再到软件仿真,在这个过程中我们充分的利用了所学的知识,并在老师的指导下,按时按质完成了本次课程设计。通过本次课程设计我们充分的锻炼了自己的动手能力,并把课堂上所学的知识运用到了实际中,达到了我们预期的效果,也为我们以后工作打下了一个好的前提。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!