1、实验三:用FFT对信号作频谱分析实验报告 一、 实验目的与要求学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。二、 实验原理用FFT对信号作频分析是学习数字信号处理的重要内容,经常需要进行分析的信号是模拟信号的时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2/N,因此要求2/N小于等于D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近连续
2、谱,因此N要适当选择大一些。三、 实验步骤及内容(含结果分析)(1)对以下序列进行FFT分析:x1(n)=R4(n)n+1 0n38-n 4n70 其它n x2(n)= 4-n 0n3n-3 4n70 其它n x3(n)=选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。【实验结果如下】:实验结果图形与理论分析相符。(2)对以下周期序列进行谱分析: x4(n)=cos(/4)*n x5(n)= cos(/4)*n+ cos(/8)*n选择FFT的变换区间N为8和16两种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。【实验结
3、果如下】:(3)对模拟周期信号进行频谱分析: x6(n)= cos(8t)+ cos(16t)+ cos(20t)选择采样频率Fs=64Hz,FFT的变换区间N为16、32、64三种情况进行频谱分析,分别打印出幅频特性曲线,并进行讨论、分析与比较。【实验结果如下】:四、 【附录】(实验中代码)x1n=ones(1,4); %产生R4(n)序列向量X1k8=fft(x1n,8); %计算x1n的8点DFTX1k16=fft(x1n,16); %计算x1n的16点DFT%以下绘制幅频特性曲线N=8;f=2/N*(0:N-1);figure(1);subplot(1,2,1);stem(f,abs(
4、X1k8),.); %绘制8点DFT的幅频特性图title(1a) 8点DFTx_1(n);xlabel(/);ylabel(幅度);N=16;f=2/N*(0:N-1);subplot(1,2,2);stem(f,abs(X1k16),.); %绘制8点DFT的幅频特性图title(1a) 16点DFTx_1(n);xlabel(/);ylabel(幅度);%x2n 和 x3nM=8;xa=1:(M/2); xb=(M/2):-1:1; x2n=xa,xb; %产生长度为8的三角波序列x2(n)x3n=xb,xa;X2k8=fft(x2n,8);X2k16=fft(x2n,16);X3k8=
5、fft(x3n,8);X3k16=fft(x3n,16);figure(2);N=8;f=2/N*(0:N-1);subplot(2,2,1);stem(f,abs(X2k8),.); %绘制8点DFT的幅频特性图title(2a) 8点DFTx_2(n);xlabel(/);ylabel(幅度);subplot(2,2,3);stem(f,abs(X3k8),.); %绘制8点DFT的幅频特性图title(3a) 8点DFTx_3(n);xlabel(/);ylabel(幅度);N=16;f=2/N*(0:N-1);subplot(2,2,2);stem(f,abs(X2k16),.); %
6、绘制8点DFT的幅频特性图title(2a) 16点DFTx_2(n);xlabel(/);ylabel(幅度);subplot(2,2,4);stem(f,abs(X3k16),.); %绘制8点DFT的幅频特性图title(3a) 16点DFTx_3(n);xlabel(/);ylabel(幅度);%x4n 和 x5nN=8;n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k8=fft(x4n,8);X4k16=fft(x4n,16);X5k8=fft(x5n,8);X5k16=fft(x5n,16);figure(3);N=8;
7、f=2/N*(0:N-1);subplot(2,2,1);stem(f,abs(X4k8),.); %绘制8点DFT的幅频特性图title(4a) 8点DFTx_4(n);xlabel(/);ylabel(幅度);subplot(2,2,3);stem(f,abs(X5k8),.); %绘制8点DFT的幅频特性图title(5a) 8点DFTx_5(n);xlabel(/);ylabel(幅度);N=16;f=2/N*(0:N-1);subplot(2,2,2);stem(f,abs(X4k16),.); %绘制8点DFT的幅频特性图title(4a) 16点DFTx_4(n);xlabel(
8、/);ylabel(幅度);subplot(2,2,4);stem(f,abs(X5k16),.); %绘制8点DFT的幅频特性图title(5a) 16点DFTx_5(n);xlabel(/);ylabel(幅度);%x8nFs=64; T=1/Fs; N=16;n=0:N-1; %对于N=16的情况nT = n*T;x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT)X8k16=fft(x8n,16);N=16;f=2/N*(0:N-1);figure(4);subplot(2,2,1);stem(f,abs(X8k16),.); %绘制8点DFT的幅频
9、特性图title(8a) 16点DFTx_8(n);xlabel(/);ylabel(幅度);N=32;n=0:N-1; %对于N=16的情况nT = n*T;x8n=cos(8*pi*nT)+cos(16*pi*nT)+cos(20*pi*nT)X8k32=fft(x8n,32);N=32;f=2/N*(0:N-1);subplot(2,2,2);stem(f,abs(X8k32),.); %绘制8点DFT的幅频特性图title(8a) 32点DFTx_8(n);xlabel(/);ylabel(幅度);N=64;n=0:N-1; %对于N=16的情况nT = n*T;x8n=cos(8*p
10、i*nT)+cos(16*pi*nT)+cos(20*pi*nT)X8k64=fft(x8n,64);N=64;f=2/N*(0:N-1);subplot(2,2,3);stem(f,abs(X8k64),.); %绘制8点DFT的幅频特性图title(8a) 64点DFTx_8(n);xlabel(/);ylabel(幅度);五、思考题及实验体会通过实验,我知道了用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2ND。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。对模拟信号进行频谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的普分析进行。