1、装 订 线评阅人老师实验成绩成绩 自动化学院本科生实验报告 数字信号处理 课 程 实 验 报 告实验名称 用 FFT 作谱分析 一、实验原理、目的与要求1.目的(1)进一步加深 DFT 算法原理和基本性质的理解(因为 FFT 只是 DFT 的一种快速算法,所以 FFT 的运算结果必然满足 DFT 的基本性质)。(2)熟悉 FFT 算法原理和 FFT 子程序的应用。(3)学习用 FFT 对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用 FFT。2. 要求(1)简述实验原理及目的。(2)结合实验中所得给定典型序列幅频特性曲线,与理论结果比较,并分析说明误差产生的原因以及用 FFT 作谱分析时有关参数的选择方法。(3)总结实验所得主要结论。(4)简要回答思考题3.原理用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2/N因此要求2/ND。可以根据此式选择FFT的变换区间
2、N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时,离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。二、实验仪器设备(标注实验设备名称及设备号)Windows 计算机 台号 22Matlab 软件三、 实验内容及结果分析 1. 对信号逐个进行谱分析。下图为对于N=8,15,前五个序列分别进行的FFT。可见N=8时频谱有8个点,比较稀疏。N=16时,频谱有16个点,较密。如果增加N的值,它会越来越密集,而越来越接近一个连续谱。但如果序列没有N那么长就需要进行补零操作,补零不会改变序列信息,但会增加频谱的“密度”。对于N=16,32,64,采样频率为64Hz,先对于x6(t)进行采样得到x6(n)。在对这个序列进行FFT变换。2.
3、 令x(n)=x4(n)+x5(n)用FFT计算8点和16点离散傅里叶变换。上图是对于序列四和序列五相加后的8点和16点的FFT变换。上图是对于N=8时的情况,序列四和序列五都是实共轭对称序列,因此两者的加和也是一个实共轭对称序列,因此对应到频域里面也是一个实共轭对称序列,也就是虚部为零,共轭反对称为零,共轭对称分量与实部相等都是X本身,上图也说明了这一点。上图是对于N=16时的情况,由图可知,序列四是共轭对称序列,序列五都是共轭对称序列。两者的和正好是一个共轭对称分量加一个共轭反对称分量。共轭对称分量对应频域里面的实部,共轭反对称分量对应频域里面的虚部。序列四的FFT等于实部,序列四的FFT等于实部,图中也说明了这一点,证明了DFT的对称性。3. 令x(n)=x4(n)+jx5(n)用FFT计算8点和16点离散傅里叶变换。下图是对于序列四和序列五乘以j相加后的8点和16点的FFT变换。上图是对于N=8时的情况,序列四和序列五一个对应实部一个对应虚部。根据对称性,时域里的实部对应频域里面的共轭对称分量,时域里的虚部对应频域里面的共轭反对称分量。也就是说x4(n)的FFT对应x(n)的F
4、FT的共轭对称分量,jx5(n)的FFT对应x(n)的FFT的共轭反对称分量。如图也有力地说明了这个结论。上图是对于N=16时的情况,类似于N=8时的情况。四、 主要结论(1)N点的FFT,N不同得出的结果也就不同。为了保持原来的频谱形状不变的情况下,使得谱线加密,从而看到原来看不到的频谱分量,可以通过补零,然后增加N的值来实现。这样不会改变原有的记录数据,是一种重要的方法。(2)DFT具有对称性,具体就是:共轭对称分量对应频域里面的实部,共轭反对称分量对应频域里面的虚部。时域里的实部对应频域里面的共轭对称分量,时域里的虚部对应频域里面的共轭反对称分量。五、思考(1)在 N=8 时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16 呢?N=8时,序列2和序列3的取值信息一模一样,只是顺序不同而已,如果对其进行周期延拓的话,它们的序列一样的,只是有一点偏移而已。所以对其进行FFT所得结果都是一样的。但N=16的话,对序列2序列3进行补零操作,再进行周期延拓,两者就千差万别。我们说FFT是快速计算DFT的,DFT是对DFS的加窗处理。DFS是对这样一个周期延拓的信号进行变换的,信
5、号本身不同当然变换后的结果也就不同,然后再进行加窗看到的频谱固然也不相同。(2)如果周期信号的周期预先不知道,如何用 FFT 进行谱分析?周期信号的周期预先不知道时,可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求六、部分代码附录%-function x = x1( n )x=;for i=n if i=0&i=0&i=4&i=0&i=4&i=7 x=x,i-3; else x=x,0; endend%-function x = x4( n )x=cos(pi/4*n);end%-function x = x5( n ) x=sin(pi/8*n);end%-function x = x6( t )x=cos(pi*8*t)+cos(pi*16*t)+cos(pi*20*t);end%-%main 输入不同的N可对6个信号进行N点的快速傅里叶变化clearN=input(please input N: );T=0.4;D=2*pi/N/T;n=0:N
6、-1;k=floor(-(N-1)/2:(N-1)/2);x1=x1(n);x2=x2(n);x3=x3(n);x4=x4(n);x5=x5(n);x6=x6(n*T); subplot(621);stem(n,x1,.);title(信号序列1);axis(0 N-1,-inf,inf);ylabel(x1(n);grid;X1=fftshift(fft(x1,N);%X1=ditfft2(x1,N);subplot(622);stem(k*D,abs(X1),.);title(频谱1);ylabel(X1);grid; subplot(623);stem(n,x2,.);title(信号序列2);axis(0 N-1,-inf,inf);ylabel(x2(n);grid;X2=fftshift(fft(x2,N);subplot(624);stem(k*D,abs(X2),.);title(频谱2);ylabel(X2);grid; subplot(625);stem(n,x3,.);title(信号序列3);axis(0 N-1,-inf,inf);ylabel(x3(n);g
7、rid;X3=fftshift(fft(x3,N);subplot(626);stem(k*D,abs(X3),.);title(频谱3);ylabel(X3);grid; subplot(627);stem(n,x4,.);title(信号序列1);axis(0 N-1,-inf,inf);ylabel(x4(n);grid;X4=fftshift(fft(x4,N);subplot(628);stem(k*D,abs(X4),.);title(频谱4);ylabel(X4);grid; subplot(629);stem(n,x5,.);title(信号序列5);axis(0 N,-inf,inf);ylabel(x5(n);grid;X5=fftshift(fft(x5,N);subplot(6,2,10);stem(k*D,abs(X5),.);title(频谱5);ylabel(X5);grid; subplot(6,2,11);stem(n,x6,.);title(信号序列6);axis(0 N,-inf,inf);ylabel(x6(n);grid;X6=T*fftshift(fft(x6);subplot(6,2,12);stem(k*D,abs(X6),.);title(频谱6);ylabel(X6);grid;%-%输入N=16,做16点的FFT,结果如下%-%对信号逐个进行谱分析。clearclcN1=8,16;T=0.4;for i=1:2 figure(1); N=N1(i); D=2*pi/N/T;
《用 FFT 作谱分析实验报告》由会员世界****88分享,可在线阅读,更多相关《用 FFT 作谱分析实验报告》请在金锄头文库上搜索。