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

施图伦一、实验目的
1.掌握利用FFT计算线性卷积的原理及具体实现方法。海德格尔 此在
2.加深理解重叠相加法和重叠保留法。
3.考察利用FFT计算线性卷积各种方法的适用围。
宁波px事件二、实验设备与环境
计算机、matlab软件环境。
三、实验基础理论
1.线型卷积和圆周卷积
设x(n)为L点序列,h(n)为M点序列,x(n)和h(n)的线性卷积为
的长度为L+M-1。
x(n)和h(n)的N点圆周卷积为
圆周卷积与线性卷积相等而不产生交叠的必要条件为
圆周卷积定理:根据DFT的性质,x(n)和h(n)的N点圆周卷积的DFT 等于它们DFT的乘积
2.快速卷积
快速卷积算法用圆周卷积实现线性卷积,根据圆周卷积定理利用FFT算法实现圆周卷积。可以将快速卷积的步骤归纳如下:
(1)为了使线性卷积可以用圆周卷积来计算,必须选择
90后炫富女;同时为了能使用基-2FFT完成卷积运算,要求。采用补零的办法使x(n)和h(n)的长度均为N。
(2)计算x(n)和h(n)的N点FFT
(3)组成乘积
(4)利用IFFT计算Y(K)的IDFT,得到线性卷积y(n)
3.分段卷积
我们考察单位取样响应为h(n)的线性系统,输入为x(n),输出为
y(n),则
当输入序列x(n)极长时,如果要等x(n)全部集齐时再开始进行卷积,会使输出相对输入有较大的延时,再者如果序列太长,需要大量存贮单元。为此我们把x(n)分段,分别求出每段的卷积,合在一起得到最后总的输出。这种方法称为分段卷积分段卷积可细分为重叠保留法和重叠相加法。
重叠保留法:设x(n)的长度为,h(n)的长度为M。我们把序列x(n)分成多段N点序列(n),每段与前一段重叠M-1个样本。由于第一段没有前一段保留信号,为了修正,我们在第一个输入端前面填充M-1个零。计算每一段与h(n)的圆周卷积,则其每段卷积结果的前M-1个样本不等于线性卷积值,不是正确的样本值。所以我们将每段卷积结果的前M-1个样本社区,只保留后面的N-M+1个正确输出样本,把这些输出样本合起来,得到总输出。
利用FFT实现重叠保留发的步骤如下:
(1)在x(n)前面填充M-1个零,扩大以后的序列为
(2)将x(n)分为若干N点子段,设L=N-M+1为每一段的有效数据
长度,则第i段(n)()的数据为
(3)计算每一段与h(n)的N点圆周卷积,利用FFT计算圆周卷积:
名人掌上电脑(4)舍去每一段卷积结果的前M-1个样本,连接剩下样本,得到卷
积结果y(n)。
重叠相加法:设h(n)长度为M,将信号x(n)分解成长为L的子段,建议L选择与的M数量级相同,以(n)表示没每段信号,则
每一段卷积的长度为L+M-1,所以在做求和时,相邻两段序列有M-1个样本重叠,即前一段的最后M-1个样本喝下一段的前M-1个序列重叠,这个重叠部分相加,再与不重叠部分共同组成输出y(n)。
白嘉轩
利用FFT实现重叠保留法的步骤如下:
(1)将x(n)分为若干L点子段(n)。
(2)计算每一段与h(n)的卷积,根据快速卷积算法利用FFT 计算卷积。
(3)将各段相加,得到输出y(n)
四、实验容
假设要计算序列x(n)=u(n)-u(n-L),0<=n<=L和h(n)=cos(0.2n),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);

本文发布于:2024-09-22 06:50:21,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/293247.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:卷积   线性   重叠   计算   利用
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议