《实验6-FFT算法的应用(4页).doc》由会员分享,可在线阅读,更多相关《实验6-FFT算法的应用(4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-实验6-FFT算法的应用-第 4 页实验6 FFT算法的应用实验目的:加深对离散信号的DFT的理解及其FFT算法的运用。实验原理:N点序列的DFT和IDFT变换定义式如下: 利用旋转因子具有周期性,可以得到快速算法(FFT)。 在MATLAB中,可以用函数X=fft(x,N)和x=ifft(X,N)计算N点序列的DFT正、反变换。例1 对连续的单一频率周期信号 按采样频率 采样,截取长度N分别选N =20和N =16,观察其DFT结果的幅度谱。 解 此时离散序列 ,即k=8。用MATLAB计算并作图,函数fft用于计算离散傅里叶变换DFT,程序如下: k=8;n1=0:1:19;xa1=si
2、n(2*pi*n1/k);subplot(2,2,1)plot(n1,xa1)xlabel(t/T);ylabel(x(n);xk1=fft(xa1);xk1=abs(xk1);subplot(2,2,2)stem(n1,xk1)xlabel(k);ylabel(X(k);n2=0:1:15;xa2=sin(2*pi*n2/k);subplot(2,2,3)plot(n2,xa2)xlabel(t/T);ylabel(x(n);xk2=fft(xa2);xk2=abs(xk2);subplot(2,2,4)stem(n2,xk2)xlabel(k);ylabel(X(k);计算结果示于图2.1
3、,(a)和(b)分别是N=20时的截取信号和DFT结果,由于截取了两个半周期,频谱出现泄漏;(c) 和(d) 分别是N=16时的截取信号和DFT结果,由于截取了两个整周期,得到单一谱线的频谱。上述频谱的误差主要是由于时域中对信号的非整周期截断产生的频谱泄漏。 实验内容:(1) 2N点实数序列N=64。用一个64点的复数FFT程序,一次算出,并绘出。(2) 已知某序列在单位圆上的N=64等分样点的Z变换为用N点IFFT程序计算,绘出和。实验要求:利用MATLAB编程完成计算,绘出相应图形。并与理论计算相比较,说明实验结果的原因。(1) 用以下代码实现可得图6-1所示的DFT图。 N=64; n=
4、0:2*N-1; x=cos(2*pi*7*n/N)+1/2*cos(2*pi*19*n/N); X=fft(x,128); k=n; stem(k,abs(X) grid xlabel(k);ylabel(|Xk|); 图6-1理论分析如下:由欧拉公式得:对,其2N点的DFT变换为: 当时, =0 当时,即由此可得当k=14,38,90,114时有值,其余为0)与图6-1有相同的结论。(2)用以下代码可得图6-2 N=64; k=0:N-1; X=1./(1-0.8*exp(-j*2*pi*k/N); x=ifft(X,64); n=k; stem(n,abs(x) grid 图6-2 xl
5、abel(n);ylabel(xn);理论分析如下:由,其Z变换为可得,其N=64点的DFT为: 得 其IDFT为:比较用IFFT函数时,得其结果是复数求其模值与理论值进行比较得: x1=1/(1-0.8N)*0.8.n; delta=x1-abs(x)delta = 1.0e-015 * Columns 1 through 9 0 0.1110 0.2220 0.1110 0.2220 0.1665 0.1110 0.0278 -0.0555 Columns 10 through 18 -0.1110 -0.0416 -0.0833 -0.0833 -0.0625 -0.0278 -0.03
6、47 -0.0139 0.0035 Columns 19 through 27 0.0035 0.0173 0.0087 -0.0347 -0.0755 -0.0668 -0.0572 -0.0100 0.0507 Columns 28 through 36 0.0694 0.0982 0.1212 0.1594 0.1232 0.1231 0.1317 0.1276 0.0911 Columns 37 through 45 0.0395 0.0538 0.0098 0.0245 -0.0054 -0.0737 -0.0950 -0.1385 -0.1163 Columns 46 through 54 -0.0917 -0.0359 -0.0523 -0.0418 -0.0133 -0.0745 -0.0846 -0.0455 -0.0836 Columns 55 through 63 -0.0689 -0.0843 -0.1010 -0.0895 -0.0400 -0.0358 -0.0156 0.0387 0.0588 Column 64 0.1080由此可见其delta值即计算值与理论值间差值极小为。产生复数差值最重要的原因是计算机的有效字长效应(如果按理论计算那样求和,得出来的离散信号是为实数序列),但由delta来开,其影响极小。