- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)