《实验二 用FFT对信号进行频谱分析》由会员分享,可在线阅读,更多相关《实验二 用FFT对信号进行频谱分析(7页珍藏版)》请在金锄头文库上搜索。
1、东莞理工学院实验报告 课程名称: 数字信号处理 实验室名称: 实验名称:实验二 用FFT对信号进行频谱分析 指导老师: 所在院系: 专业班级: 姓名: 学号: 日期: 成绩: 1、实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其产生原因,以便正确应用FFT。 2、实验原理与方法用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率F和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2/N,因此要求2/NF。可以根据此式选择FFT的变换
2、区间N。误差主要来自于用FFT作频谱分析时得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。对于长度为M的有限长序列x(n),其N点DFT(NM)X(k)就是x(n)的FT即在0,2内的N点等间隔采样,频谱分辨率就是采样间隔2/N。对于周期为N的周期序列,其频谱是离散谱:其中,因此周期序列的频谱结构也可以用离散傅立叶级数系数表示。截取的主值序列,并进行N点DFT,得到:因此也可以用表示的频谱结构。如果截取长度为的整数个周期mN,m为整数,即,那么于是,也可以表示的频谱结构。由此可见,对于周期序列,只有用整数倍周期的长度作FFT,
3、得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。对一般的非周期模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果模拟信号持续时间很长,采样点数太多,会导致无法存储和计算,需截取有限点进行DFT。因此对模拟信号进行频谱分析必然是近似的,其近似程度与信号带宽、采样频率和截取长度有关。工程上,滤除幅度很小的高频成分和截去幅度很小的部分信号是允许的。如果是模拟信号为周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。3、实验内容及步骤(1)对以下序列进行谱分析: 先绘制各序列的FT频谱图,然后选择FFT的变换
4、区间N为8和16 两种情况,通过序列的DFT分析其频谱。分别打印其幅频特性曲线,并进行对比、分析和讨论。(2)对以下周期序列进行谱分析: 选择FFT的变换区间N为8和16 两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。(3)对模拟周期信号进行谱分析 选择采样频率,变换区间N=16,32,64 三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。4、实验程序清单clear all;close all%*内容一:有限长序列的频谱分析*%产生三个序列x1n=ones(1,4);M=8;xa=1:(M/2); xb=(M/2):-1:1;x2n=xa,xb;
5、 %产生长度为8的三角波序列 x3n=xb,xa;%获得序列x1n的傅立叶变换X1jw=fft(x1n,1024); %用1024个点的fft获得傅立叶变换的密集采样w=2*pi/1024*(0:1023);%采样频率位置subplot(3,1,1);plot(w/pi,abs(X1jw); %绘制FT的幅频特性title(1a) X_1(ejomega); xlabel(omega/pi);ylabel(幅度);X1k8=fft(x1n,8); %8个点DFTX1k16=fft(x1n,16); %16个点DFT%补充绘图8个点及16个点的DFT幅频特性,提示用stem指令绘图w=2*pi/
6、8*(0:7);subplot(3,1,2);stem(w/pi,X1k8,.); %绘制FT的幅频特性title(1b) 8点DFTx1(n); xlabel(omega/pi);ylabel(幅度);w=2*pi/16*(0:15);subplot(3,1,3);stem(w/pi,X1k16,.); %绘制FT的幅频特性title(1c) 16点DFTx1(n); xlabel(omega/pi);ylabel(幅度);%补充程序对x2n及x3n的频谱进行分析clear all;close allM=8;xa=1:(M/2); xb=(M/2):-1:1;x2n=xa,xb; %产生长度
7、为8的三角波序列 X2jw=fft(x2n,1024); %用1024个点的fft获得傅立叶变换的密集采样w=2*pi/1024*(0:1023);%采样频率位置subplot(3,1,1);plot(w/pi,abs(X2jw); %绘制FT的幅频特性title(2a) X_2(ejomega); xlabel(omega/pi);ylabel(幅度);X2k8=fft(x2n,8); %8个点DFTX2k16=fft(x2n,16); %16个点DFTw=2*pi/8*(0:7);subplot(3,1,2);stem(w/pi,abs(X2k8),.); %绘制FT的幅频特性title(
8、2b) 8点DFTx2(n); xlabel(omega/pi);ylabel(幅度);w=2*pi/16*(0:15);subplot(3,1,3);stem(w/pi,abs(X2k16),.); %绘制FT的幅频特性title(2c) 16点DFTx2(n); xlabel(omega/pi);ylabel(幅度);clear all;close allM=8;xa=1:(M/2); xb=(M/2):-1:1;x3n=xb,xa;X3jw=fft(x3n,1024); %用1024个点的fft获得傅立叶变换的密集采样w=2*pi/1024*(0:1023);%采样频率位置subplot
9、(3,1,1);plot(w/pi,abs(X3jw); %绘制FT的幅频特性title(3a) X_2(ejomega); xlabel(omega/pi);ylabel(幅度);X3k8=fft(x3n,8); %8个点DFTX3k16=fft(x3n,16); %16个点DFTw=2*pi/8*(0:7);subplot(3,1,2);stem(w/pi,abs(X3k8),.); %绘制FT的幅频特性title(3b) 8点DFTx3(n); xlabel(omega/pi);ylabel(幅度);w=2*pi/16*(0:15);subplot(3,1,3);stem(w/pi,ab
10、s(X3k16),.); %绘制FT的幅频特性title(3c) 16点DFTx3(n); xlabel(omega/pi);ylabel(幅度);%*内容二:周期序列的频谱分析*N=8; %设置FFT的变换区间长度为8 %根据区间长度8,截取序列n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4jw=fft(x4n,1024); X5jw=fft(x5n,1024); w=2*pi/8*(0:8);%补充程序,对两序列进行8点的DFT%补充程序,根据区间长度16,截取序列,并进行16个点的DFT%补充程序,显示8个点及16个点DFT的
11、幅度频谱X4k8=fft(x4n,8); %8个点DFTX5k8=fft(x5n,8); %8个点DFTN=16; %设置FFT的变换区间长度为16 %根据区间长度16,截取序列n=0:N-1;x4n=cos(pi*n/4);x5n=cos(pi*n/4)+cos(pi*n/8);X4k16=fft(x4n,16); %16个点DFTX5k16=fft(x5n,16); %16个点DFTw=2*pi/8*(0:7);subplot(2,2,1);stem(w/pi,abs(X4k8),.); %绘制FT的幅频特性title(4b) 8点DFTx4(n); xlabel(omega/pi);yl
12、abel(幅度);subplot(2,2,3);stem(w/pi,abs(X5k8),.); %绘制FT的幅频特性title(5b) 8点DFTx5(n); xlabel(omega/pi);ylabel(幅度);w=2*pi/16*(0:15);subplot(2,2,2);stem(w/pi,abs(X4k16),.); %绘制FT的幅频特性title(4c) 16点DFTx4(n); xlabel(omega/pi);ylabel(幅度);subplot(2,2,4);stem(w/pi,abs(X5k16),.); %绘制FT的幅频特性title(5c) 16点DFTx5(n); x
13、label(omega/pi);ylabel(幅度);%*内容三:模拟周期信号的频谱分析*Fs=64;T=1/Fs;%设置采样频率和采样间隔N=16;n=0:N-1; %设置采样点数为16x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(n)进行16点的采样 X6k16=fft(x6nT); %16点DFTX6k16=fftshift(X6k16); %将零频率移到频谱中心 Tp=N*T;F=1/Tp; %计算出频谱采样间隔k=-N/2:N/2-1;fk=k*F; %找出采样频谱对应的频率位置%补充程序,绘制16点DFT频谱图,通过采
14、样序列16点DFT反映模拟信号频谱axis(-N*F/2-1,N*F/2-1,0,1.2*max(abs(X6k16) subplot(3,1,1);stem(fk,abs(X6k16),.); %绘制FT的幅频特性title(6a) 16点DFTx6(nT); xlabel(omega/pi);ylabel(幅度);%补充程序,设置采样点数为32,通过采样序列的32点DFT反映模拟信号频谱%补充程序,设置采样点数为64,通过采样序列的64点DFT反映模拟信号频谱N=32;n=0:N-1; %设置采样点数为32x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T); %对x6(n)进行32点的采样 X6k32=fft(x6nT); %32点DFTX6k32