序列卷积和快速卷积的编程实现_第1页
序列卷积和快速卷积的编程实现_第2页
序列卷积和快速卷积的编程实现_第3页
免费预览已结束,剩余9页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 Matlab软件介绍12原理简介32.1离散傅里叶变换(DFT)和快速傅里叶变换(FFT) 32.2序列的卷积和快速卷积运算 32.3快速傅里叶变换和快速卷积 33Matlab程序设计43.1程序设计43.2程序仿真43.2.1 : 43.2.2 : 53.2.3 : 63.3运行结果及分析 84心得体会85参考文献9课程设计任务书学生:禹煜指导教师:阙大顺专业班级:电信1104工作单位:信息工程学院课程设计名称:信号分析与处理课程设计课程设计题目:序列的卷积和快速卷积运算的编程实现 初始条件:1. Matlab6.5以上版本软件;2. 课程设计辅导资料:“ Matlab语言基础及使用入门

2、”、“信号与系统”、“数字信号处理原理与实现”“Matlab及在电子信息课程中的应用”等;3. 先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 课程设计时间:1周;2. 课程设计容:序列的卷积和快速卷积运算的编程实现,具体包括:直接卷积及应用、快速卷积方法 及实现、两者的比较分析等;3. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析, 画出程序设计框图,编写程序代码(含注释), 上机调试运行程序

3、,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结,按要求进行实验演示和答辩等;4. 课程设计说明书按学校“课程设计工作规”中的“统一书写格式”撰写,具体包括: 目录; 与设计题目相关的理论分析、归纳和总结; 与设计容相关的原理分析、建模、推导、可行性分析; 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结; 课程设计的心得体会(至少500字); 参考文献; 其它必要容等。时间安排:2周(分散进行)1 Matlab软件介绍Matlab ( Matrix Laboratory,矩阵实验室)软件最初是作为“矩阵理论”和“数据分 析”等课程的计算工具,经过十几年的

4、发展和完善,目前已成为世界各国在科学分析和 计算领域的主流软件,并被IEEE评述为国际公认的最优秀的科技应用软件。它的主要特 点是:(1) Matlab可以用来解线性方程组、进行矩阵变换与运算、数据插值运算等,能使用 户从繁杂的数学运算分析中解脱出来。(2) Matlab中有许多高级的绘图函数,包括二维、三维、专用图形函数、图形句柄、 用户图形界面工具等,利用这些函数可以轻松地完成各种图形的绘制和编辑工作,实现 计算结果和编程的可视化。(3) 友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌握。(4) 功能丰富的应用工具箱(如信号处理工具箱,通信工具箱,控制系统工具箱等) 为用

5、户提供了大量方便实用的处理工具。Matlab的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学 科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前,国很多理工院 校已经或者正在把该软件作为学生必须掌握的一种软件。MATLAB产品族可以用来进行以下各种工作:(1) 数值分析(2) 数值和符号计算(3) 工程与科学绘图(4) 控制系统的设计与仿真(5) 数字图像处理技术(6) 数字信号处理技术(7) 通讯系统设计与仿真(8) 财务与金融工程MATLAB的应用围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测 量、财务建模和分析以及计算生物学等众多应用领域。附加

6、的工具箱(单独提供的专用 MATLAB函数集)扩展了 MATLAB环境,以解决这些应用领域特定类型的问题。它的主要特点是:(1) Matlab可以用来解线性方程组、进行矩阵变换与运算、数据插值运算等,能使用户从繁杂的数学运算分析中解脱出来(2)Matlab中有许多高级的绘图函数,包括二维、三维、专用图形函数、图形句 柄、用户图形界面工具等,利用这些函数可以轻松地完成各种图形的绘制和编辑工作,实 现计算结果和编程的可视化。(3) 友好的用户界面及接近数学表达式的自然化语言,使学习者易于学习和掌 握。(4)功能丰富的应用工具箱(如信号处理工具箱,通信工具箱,控制系统工具箱等)为用户提供了大量方便实

7、用的处理工具。Matlab的上述特点,使它深受工程技术人员及科技专家的欢迎,并很快成为应用学 科计算机辅助分析、设计、仿真、教学等领域不可缺少的基础软件。目前,国很多理工院 校已经或者正在把该软件作为学生必须掌握的一种软件。2原理简介2.1离散傅里叶变换(DFT和快速傅里叶变换(FFT)离散傅里叶变换,是连续傅里叶变换在时域和频域上都离散的形式,将时域信号的采样变换为在离散时间傅里叶变换频域的采样。在形式上,变换两端(时域和频域上) 的序列是有限长的,而实际上这两组序列都应当被认为是离散周期信号的主值序列。即使对有限长的离散信号作DFT也应当将其看作经过周期延拓成为周期信号在做变换。在实际应用

8、常采用快速傅里叶变换(FFT)高效计算DFT采用这种算法能使计算机计算离 散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。2.2序列的卷积和快速卷积运算卷积是数字信号处理中最常见的,也是最重要的运算之一。利用卷积可以实现相关计 算和FIR滤波等等,正因为卷积如此重要,所以半个世纪以来,学者们提出了多种不同卷 积实现结构,这些结构各有优点,针对不同应用可以灵活选择,而其中快速卷积无疑是 重要的卷积方法之一。顾名思义,快速卷积重点在一个“快”,如果对卷积速度要求较 高,快速卷积无疑是理想的工具。当然,为了提高速度,就要牺牲面积和功耗。在此, 我们

9、是利用快速傅里叶变换实现快速卷积运算。2.3快速傅里叶变换和快速卷积在此,我们是利用快速傅里叶变换实现快速卷积运算。同时在进行Matlab编程时也是利用快速傅里叶变换来得到快速卷积的结果。(具体方法将在分析中详细介绍)3 Matlab程序设计3.1程序设计题目1:已知线性非移变系统的h(n)=6,2,3,4,2,输入为x(n)=1,2,3,4,5;(1) 用人工计算系统输出y(n);(2) 编写程序输出y(n),并作图。题目2:用函数conv和FFT计算长为1000序列的卷积,比较其计算时间。题目3:用快速卷积法计算x(n) 0.9n Rm(n)和h(n)Rn (n)两个序列的卷积;并测试直接

10、卷积和快速卷积的时间。3.2程序仿真:已知线性非移变系统的h(n)=6,2,3,4,2,输入为x(n)=1,2,3,4,5;(3) 用人工计算系统输出y(n);(4) 编写程序输出y(n),并作图。程序:h=6,2,3,6,4,2;x=1,2,3,4,5;y=c onv (h,x);stem(y)eo图1322 :用函数conv和FFT计算长为1000序列的卷积,比较其计算时间 程序:L=1000;N=L*2-1;n=1:L;x1=2* n;x2=3.A n;t0=clock;yc=c onv (x1,x2);con v_time=etime(clock,t0)t0=clock;yf=ifft

11、(fft(x1,N).*fft(x2,N);fft_time=etime(clock,t0)结果:conv time=0.0030 fft_time=0.0050可知计算长为1000序列的卷积,直接卷积用时反而少些。:用快速卷积法计算x(n) 0.9n Rm (n)和h(n)RN (n)两个序列的卷积;并测试直接卷积和快速卷积的时间。因为并没有说明M和N的取值,所以我们用两组数据来对比说明。情况1:取 M=60 N=40时,xn=0.94(1:60);hn=1.A(1:40);tic;yn=conv(xn,hn);toc;L=pow2(nextpow2(60+40-1);% 取快速卷积的长度

12、L>=M+N-1并为2的整次幕ticxk=fft(x n,L);hk=fft(h n,L);yk=xk.*hk;yn=ifft(yk,L);toc;subplot(221),stem(x n,'.');ylabel('x (n)');subplot(222),stem(h n,'.');ylabel('h( n)');subplot(212), ny=1:L;stem(real(y n) ,'.');ylabel('y (n)');Elapsed time is 0.004174 seco n

13、ds.Elapsed time is 0.008883 seco nds.1A情况2:取 M=3OO0 N=2000时,xn=0.9八(1:3000);hn=1.A(1:2000);tic;yn=conv(xn,hn);toc;L=pow2(nextpow2(3000+2000-1);% 取快速卷积的长度 L>=M+N-1并为2的整次幕ticxk=fft(x n,L);hk=fft(h n,L);yk=xk.*hk;yn=ifft(yk,L);toc;subplot(221),stem(x n,'.');ylabel('x (n)');subplot(22

14、2),stem(h n,'.');ylabel('h( n)'); subplot(212), ny=1:L;stem(real(y n) ,'.');ylabel('y( n)');Elapsed time is 0.006967 sec on ds.Elapsed time is 0.006764 seco nds.图33.3运行结果及分析图1及图2序列长度较短,用直接卷积比用快速卷积更好,图 3序列长度较长,快速卷积 更效率。所以我们得出以下结论:当序列长度较少时,直接卷积比快速卷积所需时间短; 当序列长度较长时,快速卷积更

15、效率。4心得体会本次课程设计我所做的题目是信号的谱分析及时域和频域采样对偶性分析的编程实 现,这次课设应该来说是比较轻松的一次,没有接触太多陌生的东西,作为电子信息工程 的一名学生,老师从一开始就一直强调信号的分析和对于MATLAB的掌握,当然我觉得这至少从一个侧面反映出这个软件或者是这种方法的重要性,我们必须很认真的对待。事 实上MATLAB也向我们展示了它的强大,虽然我们用的、掌握的只是很少一部分,这不 免让我有很多感触:第一,信息类专业的学生,我们要接触很多仿真软件,比如Pspice Protel、ISE我们每学期都要做课设,这是一个很好的进行能力拓展的平台,但是我们会觉得一些东西 并没

16、有达到其训练效果,为什么呢?我觉得很大一个方面就是我们的指导思想并不明确, 我们在不断的追求数量。如此反复,回头看看,我们发现什么都不会,什么都是在记忆中, 却什么都想不起来,而许多东西是相通的,我觉得我们掌握最基本的就够了,最基本的就 是最重要的,贪多没有任何好处。第二,MATLAB作为一种科学计算软件,有着其独特优势,尤其在科学计算及精确绘 图上,与其他计算机语言相比,简洁而且具有智能化,适应我们的思维方式与书写习惯, 它使用解析方法工作,直观且简单明了。人机交互性能好,操作也很简单,在图形描绘上 解决手工描绘的各种缺点。我想这也是我们专业为什么一再强调的原因。第三,完成这次课程设计我认为收获还是很多的,不但进一步掌握了数字信号处理 的基础知识及一门专业仿真软件的基本操作,还提高了自己的设计能力及动手能力,同 时对于模拟滤波器来了个系统的总结。 更多的是让我看清了自己,明白了凡事需要耐心, 实践是检验学习的唯一标准。理论知识的不足在这次课设中表现的很明显。这将有助于 我今后的学习,端正自己的学习态度,从而更加努力的学习。只有这样我们才能真正的 去掌握它,而不是只懂得一点皮毛。同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须 发扬团结协作的精神。这一点,是非常宝贵的、重要的。对我而言,知识上的收获重要, 精神上的丰收更加可喜。其次,整个设计

温馨提示

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

评论

0/150

提交评论