- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字信号实验报告二,北京理工大学,实验报告
实验三利用FFT计算线性卷积一、实验目的1.掌握利用FFT计算线性卷积的原理及具体实现方法。2.加深理解重叠相加法和重叠保留法。3.考察利用FFT计算线性卷积各种方法的适用范围。二、实验设备与环境计算机、MATLAB软件环境三、实验基础理论1.线性卷积与圆周卷积设为L点序列,为M点序列,和的线性卷积为的长度为L+M-1。和的N点圆周卷积为圆周卷积与线性卷积相等而不产生交叠的必要条件为圆周卷积定理:根据DFT的性质,和的N点圆周卷积的DFT等于它们DFT的乘积2.快速卷积快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。可以将快速卷积的步骤归纳如下:(1)为了使线性卷积可以利用圆周卷积来计算,必须选择;同时为了能使用基2-FFT完成卷积运算,要求。采用补零的办法是和的长度均为N。(2)计算和的N点FFT(3)组成卷积(4)利用IFFT计算IDFT,得到线性卷积3.分段卷积我们考察单位取样响应为的线性系统,输入为,输出为,则当输入序列时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量的存储单元。为此,我们把,分别求出每段的卷积,合在一起其到最后的总输出。这种方法称为分段卷积。分段卷积可细分为重叠相加法和重叠保留法。重叠保留法:设的长度为,的长度为M。我们把序列分成多段N点序列,每段与前一段重叠M-1个样本。由于第一段没有前一段保留信号,为了修正,我们在第一个输入段前面填充M-1个零。计算每一段的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。所以我们将每段卷积结果的前M-1个样本舍去,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来得到总的输出。利用FFT实现重叠保留法的步骤如下:(1)在前面填充M-1个零,扩大以后的序列为(2)将分为若干N点子段,设L=N-M+1为每一段的有效数据长度,则第i段〖(3)计算每一段与的N点圆周卷积,利用FFT计算圆周卷积:(4)舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果。重叠相加法:设长度为M,将信号分解成长为L的子段,建议L选择与M数量级相同。以表示每段信号,则每一段卷积的长度为L+M-1,所以在做求和时,相邻两段序列有M-1个样本重叠,即前一段的最后M-1个样本和下一段的前M-1个序列重叠,这个重叠部分相加,再与不重叠部分共同组成输出。利用FFT实现重叠保留法的步骤如下:(1)将分为若干L点子段。(2)计算每一段与的卷积,根据快速卷积算法利用FFT计算卷积。(3)将各段(包括重叠部分)相加,得到输出4.可能用到的MATLAB函数实验中FFT运算可采用MATLAB中提供的函数fft来实现。MATLAB提供了函数conv来计算线性卷积,实验中可以将编程计算的结果和conv函数的计算结果相比较,以验证结果的正确性,conv函数用法如下: x和h为要进行卷积运算的两个序列,y为卷积结果统计程序运行时间可以利用MATLAB提供的tic和toc两个命令,具体用法如下:tic……需要运行的程序代码toc即,在需要统计运行时间的程序代码前加上tic命令,之后加上toc命令,此时会在命令窗口中显示该程序的运行时间。四、实验内容假设要计算序列和的线性卷积,完成以下实验内容:1.设L=M,根据线性卷积表达式和快速卷积原理,分别编程实现计算两个序列线性卷积的方法,比较当序列长度分别为8,16,32,64,256,512,1024时,两种方法计算线性卷积所用的时间。实验代码及实验结果:(1)l=m=8线性卷积:tic; *统计程序运行时间l=8;m=8;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000246 seconds.快速卷积:ticl=8;n=0:l;m=8;M=0:m;x=heaviside(n)-heaviside(n-l);x1=fft(x,16);h=cos(0.2*pi*M);h1=fft(h,16);y1=x1.*h1;y=ifft(y1);tocElapsed time is 0.000226 seconds.结论:0.0002260.000246快速卷积运行时间较短。(2)l=m=16线性卷积:ticl=16;m=16;n=0:l;M=0:m;x=heaviside(n)-heaviside(n-l);h=cos(0.2*pi*M);x=conv(x,h);tocElapsed time is 0.000249 seconds.快速卷积:ticl=16;n=0:l;m=16;M=0:m;x=heaviside(n)-heavisid
文档评论(0)