信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc

上传人:doc321 文档编号:14917649 上传时间:2022-02-24 格式:DOC 页数:11 大小:102KB
返回 下载 相关 举报
信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc_第1页
第1页 / 共11页
信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc_第2页
第2页 / 共11页
信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc_第3页
第3页 / 共11页
信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc_第4页
第4页 / 共11页
信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc》由会员分享,可在线阅读,更多相关《信号与系统课程设计报告循环卷积和离散卷积的计算机计算.doc(11页珍藏版)》请在三一文库上搜索。

1、数字信号处理学院 学院班级 电学号 U201012067 姓名 李晓东目录一 设计概述 1 设计题目32 设计目的33 具体步骤34 实现方法4二 设计目标4三 设计内容 1 原理学习4 1.1循环卷积.5 1.2离散卷积.52 程序流程图6 3 c语言编程与计算3.1 c语言程序.73.2计算结果.8 4 验证计算结果4.1 验算循环卷积94.2 验算离散卷积9四 体会与感想.10五 参考文献.10一 设计概述设计题目: 循环卷积和离散卷积的计算机计算设计目的:1、自学C语言以及巩固信号与系统离散卷积与循环卷积的内容; 2、培养独立思考以及灵活应用所学知识的能力; 3、培养和掌握正确的设计思

2、想和认真负责的设计态度; 4、自行检验与调试出精确、简便、实用、可靠的设计方法。具体步骤:仔细分析设计题目、目的及内容; 分析离散卷积与循环卷积的特点与异同; 分析计算步骤并画出流程图; 用C语言进行编程并用VC6.0进行演算; 自行计算进行验算;分析结果并分享体会运用软件:office word2003 VC6.0实现方法: 通过学习课本及参阅相关书籍以及网络,从理论上分析离散卷积和循环卷积的特点;学习用Word设计程序流程图,C语言编程进行计算,并验证计算结果。二 设计目标设有两离散序列和,则两序列的循环卷积和离散卷积分别为:画出计算此两卷积的程序框图,并用C语言编写计算程序,计算出结果。

3、学生用C语言编程,分析计算结果。三 设计内容离散卷积和循环卷积的计算机计算1 原理学习卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。1.1 循环卷积循环卷积比起线性卷积,在运算速度上有很大的优越性,它可以采用快速傅里叶变换(FFT)技术,若能利用循环卷积求线性卷积,会带来很大的方便。一般情况下,nN时xn*vn并不等于零,xn*vn的N点DFT和这些值不一致。因此,有必要定义一种卷积运算,使得n=0,1,N-1之外的卷积信号xn*vn等于零,这

4、就引出循环卷积的概念。离散卷积和循环卷积之间的唯一区别是:用折叠位移(模N)信号代替了离散卷积式中的折叠位移信号。对于循环卷积来说,不仅要知道这两组数而且要确定N值。1.2离散卷积信号与线性系统中,定义xn,vn,其卷积为 计算离散卷积时,首先将xn,vn中的离散时间序号n改为i,得到信号xi,vi,下一步确定vn-i和乘积xivn-i。信号vn-i是信号vi的反折和平移,通过对xivn-i中的i求和即可计算出来,式中i取一定范围的的整数。计算离散卷积时需要用户输入xn和vm的值,这样便可以得到所要求的离散卷积的值2 程序流程图开始输入n,m,xn,vm输入N,xn,vmi=0i=m+n-2j

5、=0j=n-1j=iyi+=xj*vi-jj+i+j=0j=N-1i=0i=iyj+=xi*vj-iyj+=xi*vj-i+ti+j+循环卷积yn离散卷积yn假真真假假真假真假真真假计算循环卷积计算离散卷积3 c语言编程与计算 3.1 c语言程序#include#includevoid discreat();void circle(); void main()int i; printf(欢迎使用卷积计算程序n); printf(请进行选择,输入1进行循环卷积计算,输入2进行离散卷积计算:);scanf(%d,&i);printf(n);while(i!=1&i!=2)printf(输入错误,请

6、重新选择:); scanf(%d,&i);if(i=1)circle();elsediscreat(),i-;if(i=1)discreat();elsecircle();printf(感谢使用n);system(pause);void circle()int i,j;i=j=0;int t;float a100,b100,c200;printf(现在计算循环卷积yn);printf(请输入N的值n);scanf(%d,&t);printf(请输入xnn);for(i=0;i=t-1;i+)scanf(%f,&ai);printf(请输入vmn);for(i=0;i=t-1;i+)scanf(

7、%f,&bi);for(j=0;j=t-1;j+)cj=0; for(j=0;j=t-1;j+)for(i=0;i=0)cj+=ai*bj-i;else if(j-i)0)cj+=ai*bj-i+t;printf(循环卷积yn为n);for(j=0;j=t-1;j+)printf(y%d=%fn,j,cj);void discreat()int n,m,k,q;n=m=k=q=0;ggstatic float x100,y100,z200; printf(计算离散卷积yn);printf(请输入xn的长度n);scanf(%d,&n);printf(请输入vm的长度n);scanf(%d,&m

8、);printf(请输入xnn);for(k=0;k=n-1;k+)scanf(%f,&xk);printf(请输入vmn);for(k=0;k=m-1;k+)scanf(%f,&yk);for(q=0;q=m+n-2;q+)for(k=0;k=0)zq+=xk*yq-k;printf(离散卷积yn为n);for(q=0;q=m+n-2;q+)printf(y%d=%fn,q,zq);printf(其余值均为0n); 3.2计算结果4 验证计算结果 4.1 验算循环卷积=x0v0+x1v2+x2v1=11, n=0yn=xn vm =x0v1+x1v0+x2v2=11, n=1 =x0v2+x

9、1v1+x2v0=14, n=24.2 验算离散卷积阵列方法:1 2 33 2 13 2 1 6 4 93 8 14 y0=3,n=0 y1=8, n=1yn=xn*vn= y2=14, n=2y3=8,n=3y4=3,n=4其他为0 验算结果与编程计算结果一致。四 体会与感想本次课设花了不少心思,主要在细节问题上不能够做到一步到位,所以在检查过程中耗费了不少时间。同时对于C语言的学习,没有做到稳固。所以导致以前学的很多知识都已经忘记,不得不又拾起以前的课本。但至少这一次课设让我温习了以前的知识也懂得了知识需要时时刻刻去温习。免得以前的知识白学了,当然,在成功后还是蛮有成就感的。又是一个自己做的成果,很满足。五 参考书目1.Fundamentals of Signals and Systems -Using the Web and MATLABEdward W.Kamen Bonnie S.Heck著 科学出版社2. 中文版office2003实用教程 徐贤军 著清华大学出版社 3.c程序设计(第三版) 谭浩强 著 清华大学出版社11 / 11文档可自由编辑打印

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1