一、实验目的与要求学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。二、实验原理用FFT对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2π/N,因此要求2π/N小于等于D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近连续谱,因此N要适当选择大一些。三、实验步骤及内容(1)对以下序列进行FFT分析:x1(n)=R4(n)n+10≤n≤3x2(n)={8-n4≤n≤70其它n4-n0≤n≤3X3(n)={n-34≤n≤70其它n选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较xn1=[1111];Xk18=fft(xn1,8);yn11=abs(Xk18);n11=0:length(yn11)-1;Xk116=fft(xn1,16);yn12=abs(Xk116);n12=0:length(yn12)-1;n=0:3;x21=n+1;x31=4-n;n=4:7;x22=8-n;x32=n-3;xn2=[x21,x22];Xk28=fft(xn2,8);yn21=abs(Xk28);n21=0:length(yn21)-1;Xk216=fft(xn2,16);yn22=abs(Xk216);n22=0:length(yn22)-1;xn3=[x31,x32];Xk38=fft(xn3,8);yn31=abs(Xk38);n31=0:length(yn31)-1;Xk316=fft(xn3,16);yn32=abs(Xk316);n32=0:length(yn32)-1;figure;subplot(3,2,1);stem(n11,yn11,'.');xlabel('n');ylabel('yn11');title('八点傅立叶变换');subplot(3,2,2);stem(n12,yn12,'.');xlabel('n');ylabel('yn12');title('十六点傅立叶变换')subplot(3,2,3);stem(n21,yn21,'.');xlabel('n');ylabel('yn21');title('八点傅立叶变换');subplot(3,2,4);stem(n22,yn22,'.');xlabel('n');ylabel('yn22');title('十六点傅立叶变换')subplot(3,2,5);stem(n31,yn31,'.');xlabel('n');ylabel('yn31');title('八点傅立叶变换');subplot(3,2,6);stem(n32,yn32,'.');xlabel('n');ylabel('yn32');title('十六点傅立叶变换')(2)对以下周期序列进行谱分析:x4(n)=cos[(π/4)*n]x5(n)=cos[(π/4)*n]+cos[(π/8)*n]选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较n=0:7;xn1=cos(pi*n/4);xn2=cos(pi*n/4)+cos(pi*n/8);Xk18=fft(xn1,8);yn11=abs(Xk18);n11=0:length(yn11)-1;Xk28=fft(xn2,8);yn21=abs(Xk28);n21=0:length(yn21)-1;n=0:15;xn1=cos(pi*n/4);xn2=cos(pi*n/4)+cos(pi*n/8);Xk116=fft(xn1,16);yn12=abs(Xk116);n12=0:length(yn12)-1;Xk216=fft(xn2,16);yn22=abs(Xk216);n22=0:length(yn22)-1;figure;subplot(2,2,1);stem(n11,yn11,'.');xlabel('n');ylabel('yn11');title('八点傅立叶变换');subplot(2,2,2);stem(n12,yn12,'.');xlabel('n');ylabel('yn12');title('十六点傅立叶变换');subplot(2,2,3);stem(n21,yn21,'.');xlabel('n');ylabel('yn21');title('八点傅立叶变换');subplot(2,2,4);stem(n22,yn22,'.');xlabel('n');ylabel('yn22');title('十六点傅立叶变换')(3)对模拟周期信号进行频谱分析:x6(n)=cos(8πt)+cos(16πt)+cos(20πt)选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比。Fs=64;T=1/Fs;N=64;n=0:N-1;xn=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);Xk16=fft(xn,16);yn1=abs(Xk16);n1=0:length(yn1)-1;Xk32=fft(xn,32);yn2=abs(Xk32);n2=0:length(yn2)-1;Xk64=fft(xn,64);yn3=abs(Xk64);n3=0:length(yn3)-1;figure;subplot(3,1,1);stem(n1,yn1,'.');xlabel('n');ylabel('yn1');title('八点傅立叶变换');subplot(3,1,2);stem(n2,yn2,'.');xlabel('n');ylabel('yn2');title('三十二点傅立叶变换');subplot(3,1,3);stem(n3,yn3,'.');xlabel('n');ylabel('yn3');title('六十四点傅立叶变换');四、思考题1,如果周期不知道,如何用FFT进行谱分析?周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求。2FFT的变换区间?(包括非周期信号和周期信号)(1)对于非周期信号,有频谱分辨率F,而频谱分辨率直接和FFT的变换区间有关,因为FFT能够实现的频率分辨率是2π/N...因此有最小的N2π/F。就可以根据此式选择FFT的变换区间。(2)FFT离散谱才能代表周期信号的频谱。3当N=8时,x1(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?)当N=8时,x2(n)和x3(n)的幅频特性相同,当N=16时,x2(n)和x3(n)的幅频特性不相同。当n=8时,满足循环移位关系,所以n=8时,x2(n)与x3(n)的8点DFT的模相等。当n=16时,不满足循环移位关系,所以n=16时,x2(n)与x3(n)的16点DFT的模不相等。