08实验八-利用快速傅里叶变换(FFT)实现快速卷积

上传人:206****923 文档编号:88624124 上传时间:2019-05-05 格式:DOCX 页数:6 大小:52.94KB
返回 下载 相关 举报
08实验八-利用快速傅里叶变换(FFT)实现快速卷积_第1页
第1页 / 共6页
08实验八-利用快速傅里叶变换(FFT)实现快速卷积_第2页
第2页 / 共6页
08实验八-利用快速傅里叶变换(FFT)实现快速卷积_第3页
第3页 / 共6页
08实验八-利用快速傅里叶变换(FFT)实现快速卷积_第4页
第4页 / 共6页
08实验八-利用快速傅里叶变换(FFT)实现快速卷积_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《08实验八-利用快速傅里叶变换(FFT)实现快速卷积》由会员分享,可在线阅读,更多相关《08实验八-利用快速傅里叶变换(FFT)实现快速卷积(6页珍藏版)》请在金锄头文库上搜索。

1、实验八 利用FFT实现快速卷积一、 实验目的(1) 通过这一实验,加深理解FFT在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT进行数字信号处理。(2) 进一步掌握循环卷积和线性卷积两者之间的关系。二、 实验原理与方法数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response)系统(简记为FIR系统)和无限长单位脉冲响应(Infinite Impulse Response)系统(简记为IIR系统)。对于FIR滤波器来说,除了可以通过数字网络来实现外,也可以通过FFT的变换来实现。一个信号序列x(n)通过FIR滤波

2、器时,其输出应该是x(n)与h(n)的卷积:或当h(n)是一个有限长序列,即h(n)是FIR滤波器,且时H(Z)h(n)y(n)x(n)在数字网络(见图6.1)类的FIR滤波器中,普遍使用的横截型结构(见下图6.2)就是按这个卷积公式构成的。图6.1 滤波器的数字网络实现方法x(n)h(0)h(1)h(2)h(N-2)y(n)h(N-1)Z-1Z-1Z-1Z-1图6.2 FIR滤波器横截型结构应用FFT实现数字滤波器实际上就是用FFT来快速计算有限长度列间的线性卷积。粗略地说,这种方法就是先将输入信号x(n)通过FFT变换为它的频谱采样值X(k),然后再和FIR滤波器的频响采样值H(k)相乘,

3、H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT)还原为时域序列,即得到输出y(n)如图6.3所示。x(n)FFTXH(k)H(k)H(k)X(k)IFFTy(n)X(k)图6.3 数字滤波器的快速傅里叶变换实现方法现以FFT求有限长序列间的卷积及求有限长度列与较长序列间的卷积为例来讨论FFT的快速卷积方法。(1) 序列和的列长差不多。设的列长为,的列长为,要求N用FFT完成这一卷积的具体步骤如下:i. 为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度,若采用基2-FFT完成卷积运算,要求(为整数)。ii. 用补零方法使,

4、变成列长为的序列。iii. 用FFT计算的点离散傅里叶变换iv. 做和乘积,v. 用FFT计算的离散傅里叶反变换得(2) 当x(n)长度很长时,即,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若太大,要补上太多的零点,很不经济,且FFT的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。具体内容请参考教材中“快速离散傅里叶变换”一章中的线性卷积的FFT算法部分,本实验这部分不作重点要求。三、 实验任

5、务(1)用FFT实现以下两序列的线性卷积。n=0:1:11;m=0:1:5;N1=length(n);N2=length(m);xn=0.8.n; hn=ones(1,N2); N=N1+N2-1;XK=fft(xn,N);HK=fft(hn,N);YK=XK.*HK;yn=ifft(YK,N);if all(imag(xn)=0)&(all(imag(hn)=0) yn=real(yn);endx=0:N-1;stem(x,yn,.)title(2015167111(1);(2)数字滤波器的脉冲响应为可自定,本实验取输入序列可选下列几种情况i. 可取16clcclear alln=0:1:1

6、5;m=0:1:16;N1=length(n);N2=length(m);x=ones(1,N1);h=(-1/2).m;N=N1+N2-1;X=fft(x,N);H=fft(h,N);Y=X.*H;y=ifft(Y,N);if all(imag(x)=0)&(all(imag(h)=0) y=real(y);endx1=0:N-1;stem(x1,y);title(2015167111(2-1)FFT快速卷积);ii.clcclear alln=0:1:15;m=0:1:16;N1=length(n);N2=length(m);x=cos(2*pi*n/16);h=(-1/2).m;N=N1

7、+N2-1;X=fft(x,N);H=fft(h,N);Y=X.*H;y=ifft(Y,N);if all(imag(x)=0)&(all(imag(h)=0) y=real(y);endx1=0:N-1;stem(x1,y);title(2015167111(2-2)FFT快速卷积);iii. clcclear alln=0:1:15;m=0:1:16;N1=length(n);N2=length(m);x=(1/3).n; ;h=(-1/2).m;N=N1+N2-1;X=fft(x,N);H=fft(h,N);Y=X.*H;y=ifft(Y,N);if all(imag(x)=0)&(all(imag(h)=0) y=real(y);endx1=0:N-1;stem(x1,y);title(2015167111(2-3)FFT快速卷积);附:实验用MATLAB语言工具函数简介若序列x1(n)、x2(n)为长度分别为N1、N2的有限长序列,N,。由DFT的性质可知:当时有。序列较长时DFT运算通常用快速算法FFT实现。在MATLAB的信号处理工具箱中函数FFT和IFFT用于快速傅里叶变换和逆变换。函数FFT的调用格式同实验七。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号