欢迎来到天天文库
浏览记录
ID:18427954
大小:149.00 KB
页数:13页
时间:2018-09-17
《信号与系统课程设计:循环卷积和离散卷积的计算机计算》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、信号与系统课程设计报告学院电气与电子工程学院班级学号姓名13目录一设计概述1设计题目………………………………………………32设计目的………………………………………………33具体步骤………………………………………………34实现方法………………………………………………4二设计目标…………………………………………………4三设计内容1原理学习………………………………………………41.1循环卷积…………………………………………..51.2离散卷积…………………………………………..52程序流程图……………………………………………63c语
2、言编程与计算3.1c语言程序………………………………………...73.2计算结果…………………………………………..84验证计算结果4.1验算循环卷积……………………………………94.2验算离散卷积……………………………………9四体会与感想……………………………………………..10五参考文献………………………………………………..1013一设计概述设计题目:循环卷积和离散卷积的计算机计算设计目的:通过理论课的学习和自己查阅资料学习,能掌握不少理论知识和实际应用知识。对于一个未来的工程技术人员来说,如何运用所学知识去分析和解决实
3、际问题至关重要,本课程设计的目的也正是如此。信号与系统课程设计是本专业学生在校学习期间第一次进行的设计,对学生的独立的工作能力及灵活运用所学知识分析问题和解决问题的能力是一次很好的锻炼机会,是培养电气技术人员的一个重要坏节。通过设计,学生应培养和掌握正确的设计思想和认真负责的设计态度设计应结合实际进行,力求准确、实用和可靠。具体步骤:1明确设计目的、任务及内容2分析离散卷积与循环卷积的特点与不同3画出程序流程图4用C语言编程并计算5用所学知识验证该计算结果6分析与体会13实现方法:通过学习课本及参阅相关书籍以及网络,从理论上分
4、析离散卷积和循环卷积的特点;学习用Word设计程序流程图,C语言编程进行计算,并验证计算结果。二设计目标设有两离散序列和,则两序列的循环卷积和离散卷积分别为:画出计算此两卷积的程序框图,并用C语言编写计算程序,计算出结果。学生用C语言编程,分析计算结果。三设计内容离散卷积和循环卷积的计算机计算1原理学习卷积关系最重要的一种情况,就是在信号与线性系统或数字信号处理中的卷积定理。利用该定理,可以将时间域或空间域中的卷积运算等价为频率域的相乘运算,从而利用FFT等快速算法,实现有效的计算,节省运算代价。131.1循环卷积循环卷积比起
5、线性卷积,在运算速度上有很大的优越性,它可以采用快速傅里叶变换(FFT)技术,若能利用循环卷积求线性卷积,会带来很大的方便。一般情况下,n≧N时x[n]*v[n]并不等于零,x[n]*v[n]的N点DFT和这些值不一致。因此,有必要定义一种卷积运算,使得n=0,1,…,N-1之外的卷积信号x[n]*v[n]等于零,这就引出循环卷积的概念。离散卷积和循环卷积之间的唯一区别是:用折叠位移(模N)信号代替了离散卷积式中的折叠位移信号。对于循环卷积来说,不仅要知道这两组数而且要确定N值。1.2离散卷积信号与线性系统中,定义x[n],v
6、[n],其卷积为计算离散卷积时,首先将x[n],v[n]中的离散时间序号n改为i,得到信号x[i],v[i],下一步确定v[n-i]和乘积x[i]v[n-i]。信号v[n-i]是信号v[i]的反折和平移,通过对x[i]v[n-i]中的i求和即可计算出来,式中i取一定范围的的整数。计算离散卷积时需要用户输入x[n]和v[m]的值,这样便可以得到所要求的离散卷积的值132程序流程图开始输入n,m,x[n],v[m]输入N,x[n],v[m]i=0i<=m+n-2j=0j<=n-1j<=iy[i]+=x[j]*v[i-j]j++i+
7、+j=0j<=N-1i=0i<=N-1j>=iy[j]+=x[i]*v[j-i]y[j]+=x[i]*v[j-i+t]i++j++循环卷积y[n]离散卷积y[n]假真真假假真假真假真真假计算循环卷积计算离散卷积133c语言编程与计算3.1c语言程序#include13#includevoidmain(){inti,j;i=j=0;intt;staticfloata[100],b[100],c[200];printf("计算循环卷积y");printf("请输入N的值");scanf(
8、"%d",&t);printf("请输入x[n]");for(i=0;i<=t-1;i++)scanf("%f",&a[i]);printf("请输入v[m]");for(i=0;i<=t-1;i++)scanf("%f",&b[i]);for(j=0;j<=t-1;
此文档下载收益归作者所有