FFT算法(用matlab实现)
数字信号处理实验报告
(一)实验目的:理解离散傅立叶变换时信号分析与处理的一种重要变换,特别是FFT在数字信号处理中的高效率应用。(二)实验原理:
1、有限长序列x(n)的DFT的概念和公式:
2、FFT算法
调用格式是
X= fft(x)或 X=fft(x,N)
对前者,若x的长度是2的整数次幂,则按该长度实现x的快速变换,否则,实现的是慢速的非2的整数次幂的变换;对后者,N应为2的整数次幂,若x的长度小于N,则补零,若超过N,则舍弃N以后的数据。Ifft的调用格式与之相同。(三)实验内容
1、题一:若x(n)=cos(n*pi/6)是一个N=12的有限序列,利用MATLAB计算它的DFT并画出图形。
源程序:clc;
N=12;
n=0:N-1;
k=0:N-1;
xn=cos(n*pi/6);
W=exp(-j*2*pi/N);
kn=n'*k
Xk=xn*(W.^kn)
stem(n,Xk);
xlabel('k');
ylabel('Xk');
grid on;
也可用FFT算法直接得出结果,程序如下:
clc;
N=12;
n=0:N-1;
xn=cos(n*pi/6);
Xk