实验3 利用FFT计算线性卷积.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验3 利用FFT计算线性卷积 一、实验目的 1.掌握利用FFT计算线性卷积的原理及具体实现方法。 2.加深理解重叠相加法和重叠保留法。 3.考察利用FFT计算线性卷积各种方法的适用围。 二、实验设备与环境 计算机、matlab软件环境。 三、实验基础理论 1.线型卷积和圆周卷积 设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为 y yl(n) x(n)和h(n)的N点圆周卷积为 y 圆周卷积与线性卷积相等而不产生交叠的必要条件为 N≥L+M-1 圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT等于它们DFT的乘积 DFT 2.快速卷积 快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。可以将快速卷积的步骤归纳如下: (1)为了使线性卷积可以用圆周卷积来计算,必须选择N≥L+M-1;同时为了能使用基-2FFT完成卷积运算,要求N=2 (2)计算x(n)和h(n)的N点FFT x h (3)组成乘积 Y (4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n) Y 3.分段卷积 我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为y(n),则 y 当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。 重叠保留法:设x(n)的长度为Nx,h(n)的长度为M。我们把序列x(n)分成多段N点序列x 利用FFT实现重叠保留发的步骤如下: 在x(n)前面填充M-1个零,扩大以后的序列为 x 将x(n)分为若干N点子段,设L=N-M+1为每一段的有效数据长度,则第i段xi(n)(0≤n≤N-1 x 计算每一段与h(n)的N点圆周卷积,利用FFT计算圆周卷积: x h Y Y 舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷积结果y(n)。 重叠相加法:设h(n)长度为M,将信号x(n)分解成长为L的子段,建议L选择与的M数量级相同,以xi x x x 每一段卷积yi 利用FFT实现重叠保留法的步骤如下: (1)将x(n)分为若干L点子段xi (2)计算每一段与h(n)的卷积yi (3)将各段yi y 四、实验容 假设要计算序列x(n)=u(n)-u(n-L),0<=n<=L和h(n)=cos(0.2πn),0<=n<=M的线性卷积,完成以下实验容 1.设L=M,根据线性卷积的表达式和快速卷积的原理,分别编程实现计算两个序列线性卷积的方法,比较当序列长度分别为8,16,32,64,256,512,1024时,两种方法计算线性卷积所需时间。 实验代码及结果: 程序Exp3_1代码 L = input('L='); M = input('M='); xn = linspace(1, 1, L); hn = cos(0.2*pi*[0:M-1]); yn1 = zeros(1, L+M-1); tic for k = 0:L+M-1 for n = max([0 k-M+1]):min([k L-1]) yn1(k+1) = yn1(k+1)+xn(n+1)*hn(k-n+1); end end toc tic Xk = fft(xn, L+M-1); Hk = fft(hn, L+M-1); Yk = Xk.*Hk; yn2 = ifft(Yk); toc >> Exp3_1 L=8 M=8 Elapsed time is 0.000136 seconds. Elapsed time is 0.000033 seconds. >> Exp3_1 L=16 M=16 Elapsed time is 0.000205 seconds. Elapsed time is 0.000030 seconds. >> Exp3_1 L=32 M=32 Elapsed time is 0.000419 seconds. Elapsed time is 0.000056 seconds. >> Exp3_1 L=64 M=64 Elapsed time is 0.000911 seconds. Elapsed time is 0.000117 seconds. >> Exp3_1 L=256 M=256 Elapsed time is 0.005773 seconds. Elapsed time is 0.000261 secon

文档评论(0)

baibai0713 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档