一、实验目的
(1)加深对快速傅里叶变换(FFT)基本理论的理解。
(2)了解使用快速傅里叶变换(FFT)计算有限长序列和无限长序列信号频谱的方法。
(3)掌握用MATLAB语言进行快速傅里叶变换时常用的子函数。
二、实验涉及的MATLAB子函数
1.fft
功能:一维快速傅里叶变换(FFT)。
调用格式1:y=fft(x);
利用FFT算法计算矢量x的离散傅里叶变换,当x为矩阵时,y为矩阵x每一列的FFT。
当x的长度为2的幂次方时,则fft函数采用基2的FFT算法,否则采用稍慢的混合基算法。
调用格式2:y=fft(x,n);
采用n点FFT。
当x的长度小于n时,fft函数在x的尾部补零,以构成n点数据;
当x的长度大于n时,fft函数会截断序列x。当x为矩阵时,fft函数按类似的方式处理列长度。
2.ifft
功能:一维快速傅里叶逆变换(IFFT)。
调用格式1:y=ifft(x);
用于计算矢量x的IFFT。当x为矩阵时,计算所得的y为矩阵x中每一列的IFFT。
调用格式2:y=ifft(x,n);
采用n点IFFT。
当length(x) < n时,在x中补零;
当length(x) > n时,将x截断,使length(x)=n。
3.fftshift
功能:对fft的输出进行重新排列,将零频分量移到频谱的中心。