数字信号处理实践与应用-MATLAB话数字信号处理(第2版) 课件 案例十 - 线性卷积这样算会快_第1页
数字信号处理实践与应用-MATLAB话数字信号处理(第2版) 课件 案例十 - 线性卷积这样算会快_第2页
数字信号处理实践与应用-MATLAB话数字信号处理(第2版) 课件 案例十 - 线性卷积这样算会快_第3页
数字信号处理实践与应用-MATLAB话数字信号处理(第2版) 课件 案例十 - 线性卷积这样算会快_第4页
数字信号处理实践与应用-MATLAB话数字信号处理(第2版) 课件 案例十 - 线性卷积这样算会快_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

案例十——线性卷积这样算会快内容概要案例设置目的相关基础理论情境任务及步骤磨刀不误砍柴工探寻圆周卷积与线性卷积的等价关系挑战经典思考题总结报告要求案例设置目的编制程序验证圆周卷积和线性卷积的等价条件,理解线性卷积与圆周卷积的关系,掌握用圆周卷积计算线性卷积的快速实现方法;理解MATLAB函数conv的算法基础;了解程序效率测试的基本方法。相关基础理论设输入序列x(n)仅在0≤n≤N1-1范围内有非零值,系统单位脉冲

响应h(n)仅在0≤n≤N2-1范围内有非零值,二者的线性卷积yl(n)和N点圆周卷积yc(n)可分别表示为(10.1)

(10.2)当圆周卷积计算点数N≥N1+N2-1时,在0≤n≤N-1范围内yl(n)和yc(n)完全相同,即yl(n)可以用计算yc(n)的方法进行计算。利用DFT的性质,圆周卷积可以这样计算:(10.3)其中Yc(k)=X(k)⁎H(k)。而根据序列DFT的定义,有限长序列x(n)的N(N>N1)点DFT可表示为(10.4)相关基础理论若将序列x(n)写成一个列向量x=[x(0),x(1),…,x(N-1)]T,当N≥M时x(M),…,x(N-1)取值为零,将N个X(k)值写成一个列向量X=[X(0),X(1),…,X(N-1)]T,此时式(10.4)可改写为:(10.5)h(n)的DFT结果H(k)也可用式(10.5)计算。综上,利用圆周卷积计算线性卷积的过程可以概括为如下五步(1)确定循环卷积长度N,其中N≥N1+N2-1。若采用基2-FFT实现DFT的快速运算,还要求N=2m(m为整数)。(2)用补零方法使x(n)和h(n)变成列长为N的序列,即

(10.6)相关基础理论(3)计算x(n)和h(n)的N点离散傅里叶变换

(H(k)只需计算一次)。(4)计算X(k)和H(k)乘积H(k)X(k)=Y(k)。(5)计算Y(k)的离散傅里叶反变换得

(10.7)从式(10.7)可以看出,序列的IFFT可以通过调用FFT的算法程序实现,因而线性卷积的计算过程仅需编制一个FFT程序,而不用再单独编写IFFT程序。利用圆周卷积计算线性卷积的流程如图10.1所示。图10.1利用FFT的快速卷积实现框图情境任务及步骤一、磨刀不误砍柴工已知序列x1(n)={1,1,1,1}和x2(n)={1,2,3,4}。1.DFT怎么算、有何用(1)根据离散时间傅里叶变换的定义计算X1(ejω),其中X1(ejω)=DTFT[x1(n)],并画出0~2

范围内|X1(ejω)|~ω的图。(2)N分别取4、8和32,根据式(10.5)计算x1(n)的离散傅里叶变换,结果分别记为X4(k)、X8(k)和X32(k),并分别画出|X4(k)|~k、|X8(k)|~k和|X32(k)|~k的图。需要说明的是这里画|Xi(k)|~k的图时补一个点的值,如i=4时,k取0,1,2,3,4,且这样补充Xi(N)的值,即Xi(N)=Xi(0)。将所有的|Xi(k)|~k的图与0~2

范围内|X1(ejω)|~ω的图进行对比,其中i=4,8,32,归纳DFT的物理含义,理解DFT的用途。情境任务及步骤2.探究X(k)的隐含周期性(1)N取8,根据式(10.5)重新计算x1(n)的离散傅里叶变换,结果记为X8(k),并画出|X8(k)|~k的图,这里画图时不进行补点。(2)将X8(k)中k的取值范围从0~7扩大到0~48重新计算,结果记为X8-49(k),并画出|X8-49(k)|~k的图,这里画图时不进行补点。需要提醒的是,在完成该项任务暂时先忽略式(10.4)中关于k取值范围的限定,或者说将式(10.5)中矩阵的维数直接扩成49×8进行计算。(3)比较|X8(k)|~k和|X8-49(k)|~k的图,从找共性的角度看,两者有何关联?(4)在探究“DFT怎么算、有何用”过程中,那样补点是否合理?情境任务及步骤3.探究DFT的对称性(1)N取8,根据式(10.5)重新计算x1(n)的离散傅里叶变换,结果记为X1(k),计算x2(n)的离散傅里叶变换,结果记为X2(k)。(2)观察Xi(k)与Xi(N-k)的值,你有何发现?i=1,2。(3)构造复序列f(n),其中f(n)=x1(n)+jx2(n),并计算f(n)离散傅里叶变换的结果F(k)。(4)计算序列F(k)的共轭对称部分Fe(k)和共轭反对称部分Fo(k),并将它们分别与X1(k)、X2(k)进行比较,你有何发现?

需要说明的是在MATLAB的语法中,标点“'”和“.’”对于复数矩阵是完全不同的两种运算。假设c=[1+2j,3+4j],你可以分别计算c’和c.’,便能明确二者的区别。情境任务及步骤二、探寻圆周卷积与线性卷积的等价关系已知序列x1(n)={1,1,1}和x2(n)={1,1,1,0,1}。1.编制基于DFT性质的线性卷积计算程序根据【相关基础理论】编制程序myconv计算两个序列的线性卷积,要求如下:(1)输入参数有三个,分别是输入序列a、b和计算卷积的点数N;输出参数为y,其中y为x(n)和h(n)的圆周卷积的结果序列。(2)myconv内部要求调用函数fft计算两序列的离散傅里叶变换,调用ifft计算离散傅里叶反变换,正反变换的点数均由参数N控制。2.直接计算卷积,确立比较基准(1)在workspace下调用MATLAB提供的conv函数计算x1(n)和x2(n)的线性卷积,并将结果记为y1。(2)在Figure1中显示序列y1,要求横轴显示的范围为0~9,纵轴显示范围为0~5,并用grid指令为子图添加栅格。情境任务及步骤3.一验自编函数在workspace下调用自己编制的函数myconv计算N=5的x1(n)和x2(n)线性卷积,将结果记为y2,并在Figure2中subplot(221)下显示序列y2。要求横轴显示的范围为0~9,纵轴显示范围为0~5,并用grid指令为子图添加栅格。4.再验自编函数在workspace下再次调用自己编制的函数myconv继续分别计算N=6,7,8的x1(n)

和x2(n)线性卷积,将结果分别记为y3,y4,y5,并在Figure2中subplot(222)、subplot(223)、subplot(224)下分别显示序列y3,y4,y5,要求横轴显示的范围为0~9,纵轴显示范围为0~5,并用grid指令为每个子图添加栅格,用title加注图题。5.圆周卷积、线性卷积等价点数的关系逐样点比较Figure2中各子图所示序列与Figure1所示序列的异同,并总结在x1(n)

和x2(n)的长度一定、N(5~8)

取值一定的情况下,对应结果与Figure1所示序列等价样点的个数。若只有部分样点等价,通过比较判断这些等价样点是出现在序列的右侧还是左侧,将数据分析结果记入总结报告。情境任务及步骤三、挑战经典已知数字滤波器的单位脉冲响应为

N1=8,序列x(n)=cos(2πn/N2)∙RN2(n),N2=8。(1)为N自选3组合适的取值,利用函数myconv分别计算三种不同点数的线性卷积,并在一个图形窗口的三个子图中显示结果。(2)调用函数conv计算x(n)和h(n)的线性卷积,在新的图形窗口中显示计算结果。(3)对比两种方法的计算效果,判断N的选择是否恰当,有无多余的零值点,有无样点值不同的点,有多少个,如何调整N才能消除差异(4)在conv语句的上一行键入tic,下一行键入toc,myconv语句也进行同样处理。重新执行程序,将在命令窗口中返回的总结报告记入总结报告。思考题(1)当输入序列为无穷长,而系统单位脉冲响应为M点长,按照

温馨提示

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

最新文档

评论

0/150

提交评论