实验五用FFT对信号做频谱分析一、实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。二、实验原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT得变换区间N有关,因为FFT能够实现的频率分辨率是2π/N,因此要求2π/N≤D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。三、实验内容(包括代码与产生的图形及分析讨论)1.对以下序列进行谱分析:选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。实验名称专业、年级学号姓名用FFT对信号做频谱分析11级电本2班2011222402张瑜以下内容由实验指导教师填写实验项目完成情况实验项目成绩指导教师时间朱燕2013年11月20日解:functionmstem(Xk)M=length(Xk);k=0:M-1;stem(k,abs(Xk),'.');boxon;xlabel('w/\pi');ylabel('幅度');(1)x1n=[ones(1,4)];X1k8=fft(x1n,8);X1k16=fft(x1n,16);subplot(2,1,1);mstem(X1k8);title('(1a)8点DFT[x_1(n)]');xlabel('k');ylabel('幅度');axis([0,7,0,1.2*max(abs(X1k8))])subplot(2,1,2);mstem(X1k16);title('(1b)16点DFT[x_1(n)]');xlabel('k');ylabel('幅度');axis([0,15,0,1.2*max(abs(X1k16))])(2)x2n=[1111];x3n=[1111];x1n=conv(x2n,x3n);X1k8=fft(x1n,8);X1k16=fft(x1n,16);subplot(2,1,1);mstem(X1k8);title('(1a)8点DFT[x_1(n)]');xlabel('k');ylabel('幅度');axis([0,7,0,1.2*max(abs(X1k8))])subplot(2,1,2);mstem(X1k16);title('(1b)16点DFT[x_1(n)]');xlabel('k');ylabel('幅度');axis([0,15,0,1.2*max(abs(X1k16))])(3)x1n=[43211234];X1k8=fft(x1n,8);X1k16=fft(x1n,16);subplot(2,1,1);mstem(X1k8);title('(1a)8点DFT[x_1(n)]');xlabel('k');ylabel('幅度');axis([0,7,0,1.2*max(abs(X1k8))])subplot(2,1,2);mstem(X1k16);title('(1b)16点DFT[x_1(n)]');xlabel('k');ylabel('幅度');axis([0,15,0,1.2*max(abs(X1k16))])2.对以下周期序列进行谱分析:选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线,并进行对比、分析和讨论。解:N=8;n=0:N-1;x4n=cos(pi*n/4);X4k8=fft(x4n);N=16;n=0:N-1;x4n=cos(pi*n/4);X4k16=fft(x4n);subplot(2,2,1);mstem(X4k8);title('(4a)8点DFT[x_4(n)]');xlabel('x4(n)/k');ylabel('幅度');axis([0,7,0,1.2*max(abs(X4k8))])subplot(2,2,2);mstem(X4k16);title('(4b)16点DFT[x_4(n)]');xlabel('x4(n)/k');ylabel('幅度');axis([0,15,0,1.2*max(abs(X4k16))])N=8;n=0:N-1;x4n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n);N=16;n=0:N-1;x4n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n);subplot(2,2,3);mstem(X4k8);title('(4a)8点DFT[x_4(n)]');xlabel('x5(n)/k');ylabel('幅度');axis([0,7,0,1.2*max(abs(X4k8))])subplot(2,2,4);mstem(X4k16);title('(4b)16点DFT[x_4(n)]');xlabel('x5(n)/k');ylabel('幅度');axis([0,15,0,1.2*max(abs(X4k16))])3.对模拟周期信号进行谱分析:选择采样频率Fs=64Hz,对变换区间N=16,32,64三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。解:Fs=64;T=1/Fs;N=16;n=0:N-1;x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k16=fft(x6nT);X6k16=fftshift(X6k16);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,1);stem(fk,abs(X6k16),'.');boxontitle('(6a)16点|DFT[x_6(nT)]|');xlabel('f(Hz)');ylabel('幅度');axis([-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16))])Fs=64;T=1/Fs;N=32;n=0:N-1;x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T);X6k16=fft(x6nT);X6k16=fftshift(X6k16);Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;subplot(3,1,2);stem(fk,abs(X6k16),'.');boxontitle('(6a)16点|D...