实验四:离散傅里叶变换实验原理:DFT的快速算法FFT利用了的三个固有特性:(1)对称性(2)周期性(3)可约性。FFT算法基本上可以分为两大类,即按时间抽选法(DIT,Decimation-In-Time)和按频率抽选法(DIF,Decimation-In-frequency)。MATLAB中提供了进行快速傅里叶变换的fft函数:X=fft(x),基2时间抽取FFT算法,x是表示离散信号的向量;X是系数向量;X=fft(x,N),补零或截断的N点DFT,当x得长度小于N时,对补零使其长度为N,当x的长度大于N时,对x截断使其长度为N。实验内容:1.k=60;n=[0:1:k/2];xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);subplot(321)stem(n,xa1)xlabel('N');ylabel('x(n)');xk1=fft(xa1);xk1=abs(xk1)subplot(322)stem(n,xk1)xlabel('k');ylabel('X(k)');n=[0:1:k*1.5];xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);subplot(323)stem(n,xa1)xlabel('N');ylabel('x(n)');xk1=fft(xa1);xk1=abs(xk1)subplot(324)stem(n,xk1)xlabel('k');ylabel('X(k)');n=[0:1:k*2];xa1=2*sin(10*pi*n/k)+cos(18*pi*n/k);subplot(325)stem(n,xa1)xlabel('N');ylabel('x(n)');xk1=fft(xa1);xk1=abs(xk1)subplot(326)stem(n,xk1)xlabel('k');ylabel('X(k)');结果分析:当选取的采样分析长度不为周期信号周期T的整数倍时,就会发生频率泄露,如上图。反之则不会发生频率泄露2.n=[0:7];L=length(n);x=ones(L,1);N=32;n1=[0:N-1];xk=fft(x,N);subplot(221);n2=(2*pi/N)*[0:(N-1)]';stem(n2,abs(xk));xlabel('k'),ylabel('幅度');title('N=32');subplot(223);stem(n2,angle(xk));xlabel('k'),ylabel('相位');N=64;n1=[0:N-1];xk=fft(x,N);subplot(222);n2=(2*pi/N)*[0:(N-1)]';stem(n2,abs(xk));xlabel('k'),ylabel('幅度');title('N=64');subplot(224);stem(n2,angle(xk));xlabel('k'),ylabel('相位');结果分析:当采样点数越大时,用STEM绘制出的图形包络线越接近于真实的连续幅频和相频特性的连续曲线。