卷积算法课程设计报告.docx

上传人:b****5 文档编号:14824720 上传时间:2023-06-27 格式:DOCX 页数:17 大小:980.97KB
下载 相关 举报
卷积算法课程设计报告.docx_第1页
第1页 / 共17页
卷积算法课程设计报告.docx_第2页
第2页 / 共17页
卷积算法课程设计报告.docx_第3页
第3页 / 共17页
卷积算法课程设计报告.docx_第4页
第4页 / 共17页
卷积算法课程设计报告.docx_第5页
第5页 / 共17页
卷积算法课程设计报告.docx_第6页
第6页 / 共17页
卷积算法课程设计报告.docx_第7页
第7页 / 共17页
卷积算法课程设计报告.docx_第8页
第8页 / 共17页
卷积算法课程设计报告.docx_第9页
第9页 / 共17页
卷积算法课程设计报告.docx_第10页
第10页 / 共17页
卷积算法课程设计报告.docx_第11页
第11页 / 共17页
卷积算法课程设计报告.docx_第12页
第12页 / 共17页
卷积算法课程设计报告.docx_第13页
第13页 / 共17页
卷积算法课程设计报告.docx_第14页
第14页 / 共17页
卷积算法课程设计报告.docx_第15页
第15页 / 共17页
卷积算法课程设计报告.docx_第16页
第16页 / 共17页
卷积算法课程设计报告.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

卷积算法课程设计报告.docx

《卷积算法课程设计报告.docx》由会员分享,可在线阅读,更多相关《卷积算法课程设计报告.docx(17页珍藏版)》请在冰点文库上搜索。

卷积算法课程设计报告.docx

卷积算法课程设计报告

一、DSP课程设计目的..................................3

二、课程设计任务......................................3

三、卷积定义及实验原理..................................3

四、实验设备..........................................4

五、卷计算法的流程图及程序.............................4

六、课程设计步骤及过程.................................10

七、课程设计心得.......................................17

八、参考文献.........................................18

一、DSP课程设计目的

1、巩固《DSP技术及应用》的理论知识;

2、熟悉并掌握卷积算法以及CCS软件的使用方法;

3、掌握利用窗函数法设计卷积算法的原理和方法

 二、课程设计任务

本课程设计要求利用卷积算法,能够在CCS集成开发环境中使用图形显示工具显示输入和输出波形。

三、卷积的定义及实验原理

1、卷积的定义

卷积和(简称卷积)是信号处理中常用的算法之一。

数字卷积运算通常采用两种方法:

线性卷积和圆卷积。

为了能使卷积运算在C54x系列DSP上的实现方法,首先要对数字卷积的基本概念作深入了解。

使大家从根本上掌握卷积的实现方法,我们以模拟信号的卷积和数字信号的卷积为主,以及他们在C54x系列DSP上的实现方法。

在通信和信号处理中,常用的运算,如卷积,自相关,滤波和快速傅里叶交换等。

都具有较高的密度性和复杂性,而这些运算中所用到的最基本的是乘法-累加运算。

C54x的硬件及软件设计使其具有快速的进行乘法-累加运算功能,并具有丰富的软件资源为这些算法的实施提供有力的条件。

因此,这种芯片在通信及信号处理等领域得到广泛的应用。

本节主要介绍卷积算法在DSP原理中的应用。

2、卷积的基本原理和公式

卷集和:

对离散系统“卷积和”也是求线性时不变系统输出响应(零状态响应)的主要方法。

卷积和的运算在图形表示上可分为四步:

Y(n)=∑X(m)h(n−m)=X(n)*h(n)

m=−∞

1)翻褶先在哑变量坐标M上作出x(m)和h(m),将m=0的垂直轴为轴翻褶成h(-m)。

2)移位将h(-m)移位n,即得h(n-m)。

当n为正整数时,右移n位。

当n为负整数时,左移n位。

3)相乘再将h(n-m)和x(m)的相同m值的对应点值相乘。

4)相加把以上所有对应点的乘积叠加起来,即得y(n)值。

依上法,取n=…,-2,-1,0,1,2,3,…各值,即可得全部y(n)值。

四、实验设备

计算机,CodeComposerStudio3.3软件

五、卷计算法的流程图及程序

1、程序流程图

2.程序的自编函数及其功能

(1)processing1(int*input2,int*output2)

调用形式:

processing1(int*input2,int*output2)

参数解释:

intput2、output2为两个整型指针数组。

返回值解释:

返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:

对输入的input2buffer波形进行截取m点,再以零点的Y轴为对称轴进行翻褶,把生成的波形上的各点的值存入以OUTPUT2指针开始的一段地址空间中。

(2)processing2(int*output2,int*output3)

调用形式:

processing2(int*output2,int*output3)

参数解释:

output2、output3为两个整型指针数组。

返回值解释:

返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:

对输出的output2buffer波形进行作n点移位,然后把生成的波形上的各点

的值存入以OUTPUT3指针开始的一段地址空间中。

(3)processing3(int*input1,int*output2,int*output4)

调用形式:

processing3(int*input1,int*output2,int*output4)

参数解释:

output2、output4、input1为三个整型指针数组。

返回值解释:

返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:

对输入的input2buffer波形和输入的input1buffer作卷积和运算,然后把生成的波形上的各点的值存入以OUTPUT4指针开始的一段地址空间中。

(4)processing4(int*input2,int*output1)

调用形式:

processing4(int*input2,int*output1)

参数解释:

output1、input2为两个整型指针数组。

返回值解释:

返回了一个“TRUE”,让主函数的while循环保持连续。

功能说明:

对输入的input2buffer波形截取m点,然后把生成的波形上的各点的值存入以OUTPUT1指针开始的一段地址空间中。

3、卷积算法程序

#include

 

#include"volume.h"

intin1_buffer[BUFSIZE];

intin2_buffer[BUFSIZE];

intout1_buffer[BUFSIZE];

intout2_buffer[BUFSIZE];

intout3_buffer[BUFSIZE];

intout4_buffer[BUFSIZE*2];

intsize=BUFSIZE;

intgain=MINGAIN;

intzhy=0;

intsk=64;

unsignedintprocessingload=1;/*processingroutine//loadvalue*/

/*Functions*/

staticintstep1(int*output1,int*output2);

staticintstep2(int*output2,int*output3);

staticintstep3(int*input1,int*output2,int*output4);

staticintstep4(int*input2,int*output1);

staticvoiddataIO1(void);

staticvoiddataIO2(void);

voidmain()

{

int*input1=&in1_buffer[0];

int*input2=&in2_buffer[0];

int*output1=&out1_buffer[0];

int*output2=&out2_buffer[0];

int*output3=&out3_buffer[0];

int*output4=&out4_buffer[0];

puts("volumeexamplestarted\n");

while(TRUE)

{

/*

*Readinputdatausingaprobe-pointconnectedtoahostfile.

*Writeoutputdatatoagraphconnectedthroughaprobe-point.

*/

dataIO1();//breakpoint

dataIO2();//breakpoint

step4(input2,output1);

step1(output1,output2);

step2(output2,output3);

step3(input1,output2,output4);

}

}

staticintstep4(int*input2,int*output1)

{

intm=sk;

for(;m>=0;m--)

{

*output1++=*input2++*ain;

}

for(;(size-m)>0;m++)

{

output1[m]=0;

}

return(TRUE);

}

staticintstep1(int*output1,int*output2)

{

intm=sk-1;

for(;m>0;m--)

{

*output2++=*output1++*ain;

}

return(TRUE);

}

staticintstep2(int*output2,int*output3)

{

intn=zhy;

size=BUFSIZE;

for(;(size-n)>0;n++)

{

*output3++=output2[n];

}

return(TRUE);

}

staticintstep3(int*input1,int*output2,int*output4)

{

intm=sk;

inty=zhy;

intz,x,w,i,f,g;

for(;(m-y)>0;)

{

i=y;

x=0;

z=0;

f=y;

for(;i>=0;i--)

{

g=input1[z]*output2[f];

x=x+g;

z++;

f--;

}

*output4++=x;

y++;

}

m=sk;

y=sk-1;

w=m-zhy-1;

for(;m>0;m--)

{

y--;

i=y;

z=sk-1;

x=0;

f=sk-y;

for(;i>0;i--,z--,f++)

{

g=input1[z]*output2[f];

x=x+g;

}

out4_buffer[w]=x;

w++;

}

return(TRUE);

}

staticvoiddataIO1()

{

/*dodataI/O*/

return;

}

staticvoiddataIO2()

{

/*dodataI/O*/

return;

}

六、课程设计步骤及过程

1.实验准备

(1)设置CodeComposerStudio为C55xx、Simulator、C5510Devicesimulator

(2)启动CodeComposerStudio3.3

2.建立工程Project,编写程序并编译

3.装载目标文件进行如下设置

(1)选择主菜单File中LoadProgram命令,在CCS的安装目录下,找到构建该工程项目下的网Debug目录,选择构建后生成的可执行文件*.out并打开。

(2)选择Debug菜单中的GoMain命令。

4.打开观察窗口

-选择菜单“View”、“Graph”、“Time/Frequency…”进行如下设置:

5.设置波形输入文件

打开菜单栏file-Data-load,然后输入相应值

(1)当输入为sin11和一个正弦方波时图像为

(2)当把输入2改为另一个正旋波sin22时,波形为

(3).当输入为正弦波sin22和只有一个周期的正旋波sin时

(4).输入为sin11和方波时

(5)*图表分析

输入图形频域图形采用通过频域采样取值比较,卷积后的结果与标准值只有很小的误差。

所以说卷积实验结果正确,卷积程序正确无误。

七、课程设计心得

随着时间的推移,本次的DSP课程设计在一周多的时间内完成了,在这短短的设计期间,我学到了许多新知识,同时也巩固了许多老的知识。

在这个设计期间,我认为最重要的就是熟悉掌握卷积算法、程序的编程及调试,认真的研究老师给的题目。

同时我还明白了,在编程序时自己不会时可以主动的问问老师和同学,要及时的分析问题解决问题。

还有在编程序时要重视程序的模块化,以便修改的方便,也要注重程序的调试,掌握其中的方法。

对于本次DSP课程设计,从中有了很多的感触。

第一、是在学习态度上,无论是学习课本知识还是在编程序时,都要全神贯注,认真对待,不能马虎。

因为越是细节的东西,越是不会引起我们的重视,就会越容易出错,编程序时有很多问题都是由于我们不够严谨、不够认真所造成的。

第二、要主动与同学合作交流,由于对课本理论的不熟悉导致编程出现错误,在不会的情况下,一定要主动的问老师、同学,一起讨论,一起思考,互相交流。

在与别人交流中,可以学习到她们的优点,可以得到自己想不到的学习方法与知识。

第三、在这次课程设计中,从中认识到了自己许多的不足,对课本的基础知识掌握的不够熟练、不够扎实。

对于自己会的东西也不会正确的运用,这是我欠缺的地方,对于自己不会的东西请教了学习好的同学,听她们讲解分析,这让我受益匪浅。

我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样问题。

但是从中学到的知识会让我受益终身。

发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中。

通过这次DSP课程设计,加深了我对《DSP技术及应用》理论知识的理解,对卷积部分的知识有了更进一步的理解。

同时懂得将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

八、参考文献

《DSP技术及应用》董胜、刘伯生北京大学出版社.

《信号与系统分析》吴京等编著国防科技大学出版社.

《C语言程序设计》韩增红王冬梅人民邮电出版社.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2