您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 用FFT对信号作频谱分析
姓名:谢英明班级:学号:实验题目:用FFT对信号作频谱分析1、实验目的学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便正确应用FFT。2、实验原理与方法用FFT对信号作频谱分析是学习数字信号处理的重要内容。经常需要进行谱分析的信号是模拟信号和时域离散信号。对信号进行谱分析的重要问题是频谱分辨率D和分析误差。频谱分辨率直接和FFT的变换区间N有关,因为FFT能够实现的频率分辨率是2pi/N,因此要求2pi/N=D。可以根据此式选择FFT的变换区间N。误差主要来自于用FFT作频谱分析时,得到的是离散谱,而信号(周期信号除外)是连续谱,只有当N较大时离散谱的包络才能逼近于连续谱,因此N要适当选择大一些。周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。如果不知道信号周期,可以尽量选择信号的观察时间长一些。对模拟信号进行谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的谱分析进行。3、实验内容、步骤、结果及结果分析(1)对以下序列进行谱分析。034)(081)()()(3241nnnxnnnxnRnxnnnnnn其他其他74307430选择FFT的变换区间N为8和16两种情况进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。解:functionmstem(Xk)%mstem(Xk)绘制频域采样序列向量Xk的幅频特性图M=length(Xk);k=0:M-1;wk=2*k/M;%产生M点DFT对应的采样点频率(关于pi归一化值)stem(wk,abs(Xk),'.');boxon;%绘制M点DFT的幅频特性图axis([0,2,0,1.2*max(abs(Xk))]);symsnadisp('请输入序列x1n:');a=input('x1n=','s');%输入字符串x1nx1n=str2num(a)%字符串转数字x1k8=fft(x1n,8);x1k16=fft(x1n,16);subplot(3,2,1);mstem(x1k8);xlabel('w/pi');ylabel('幅度');title('x1n的8点DFT');gridon;subplot(3,2,2);mstem(x1k16);xlabel('w/pi');ylabel('幅度');title('x1n的16点DFT');gridon;disp('请输入序列x2n的前半部分xa:');fori=0:1a=input('xa=','s');xb=fliplr(str2num(a));%由前半部分逆序得到后半部分a=str2num(a);ifi==1x3n=[a,xb]x3k8=fft(x3n,8);x3k16=fft(x3n,16);subplot(3,2,5);mstem(x3k8);xlabel('w/pi');ylabel('幅度');title('x3n的8点DFT');gridon;subplot(3,2,6);mstem(x3k16);xlabel('w/pi');ylabel('幅度');title('x3n的16点DFT');gridon;elsex2n=[a,xb]x2k8=fft(x2n,8);x2k16=fft(x2n,16);subplot(3,2,3);mstem(x2k8);xlabel('w/pi');ylabel('幅度');title('x2n的8点DFT');gridon;subplot(3,2,4);mstem(x2k16);xlabel('w/pi');ylabel('幅度');title('x2n的16点DFT');gridon;i=i+1;disp('请输入序列x3n的前半部分xa:');endend请输入序列x1n:x1n=ones(1,4)x1n=1111请输入序列x2n的前半部分xa:xa=1234x2n=12344321请输入序列x3n的前半部分xa:xa=4321x3n=43211234分析:图(1a)和(1b)说明x1(n)=R4(n)的8点DFT和16点DFT分别是x1(n)的频谱函数的8点和16点采样;因为x3(n)=x2((n+3))8R8(n),所以,x3(n)与x2(n)的8点DFT的模相等,如图(2a)和(2b),但是当N=16时,x2(n)与x3(n)不满足循环移位关系,模值不相等。下图所示:(2)对以下周期序列进行谱分析。nnx4cos)(48cos4cos)(5nnnx选择FFT的变换区间N为8和16两种情况分别对以上序列进行频谱分析。分别打印其幅频特性曲线。并进行对比、分析和讨论。解:symsnaNfori=1:4disp('请输入变换区间N:');b=input('N=');N=b;n=0:N-1;disp('请输入序列xn:');a=input('xn=','s');%输入字符串x1nxn=eval(a);%字符串转数字xk=fft(xn,N);subplot(3,2,i);ifi==1mstem(xk);xlabel('w/pi');ylabel('幅度');title('x4n的8点DFT');gridon;endifi==2mstem(xk);xlabel('w/pi');ylabel('幅度');title('x4n的16点DFT');gridon;endifi==3mstem(xk);xlabel('w/pi');ylabel('幅度');title('x5n的8点DFT');gridon;endifi==4mstem(xk);xlabel('w/pi');ylabel('幅度');title('x5n的16点DFT');gridon;endi=i+1;end请输入变换区间N:N=8请输入序列xn:xn=cos(pi/4*n)请输入变换区间N:N=16请输入序列xn:xn=cos(pi/4*n)请输入变换区间N:N=8请输入序列xn:xn=cos(pi/4*n)+cos(pi/8*n)请输入变换区间N:N=16请输入序列xn:xn=cos(pi/4*n)+cos(pi/8*n)分析:对于x4(n)=cos(pi*n/4),周期T=8,N=8和16是周期的整数倍,所以得到正确的单一频率正弦波的频谱,仅在0.25π处有1根单一谱线。如图(4a)和(4b)所示对于x5n=cos(pi*n/4)+cos(pi*n/8),周期T=16,但是N=8不是该周期的整数倍,所以8点的dft和16点的dft不一样。(3)对模拟周期信号进行谱分析:ttttx20cos16cos8cos)(6选择采样频率Fs=64Hz变换区间N=16,32,64三种情况进行谱分析。分别打印其幅频特性,并进行分析和讨论。解:symsnaNkdisp('请选择采样频率:');b=input('Fs=');Fs=b;T=1/Fs;fori=1:3disp('请输入变换区间N:');b=input('N=');N=b;Tp=N*T;F=1/Tp;k=-N/2:N/2-1;fk=k*F;n=0:N-1;disp('请输入序列xt:');a=input('xt=','s');%输入字符串x1nxt=eval(a);%字符串转数字xk1=fft(xt,N);xk=fftshift(xk1);subplot(3,1,i);ifi==1stem(fk,abs(xk),'.');xlabel('f(Hz)');ylabel('幅度');title('x6n的16点DFT');gridon;endifi==2stem(fk,abs(xk),'.');xlabel('f(Hz)');ylabel('幅度');title('x6n的32点DFT');gridon;endifi==3stem(fk,abs(xk),'.');xlabel('f(Hz)');ylabel('幅度');title('x6n的64点DFT');gridon;endi=i+1;end请选择采样频率:Fs=64请输入变换区间N:N=16请输入序列xt:xt=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T)请输入变换区间N:N=32请输入序列xt:xt=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T)请输入变换区间N:N=64请输入序列xt:xt=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T)分析:对于x6nT=cos(8*pi*n*T)+cos(16*pi*n*T)+cos(20*pi*n*T)可以知道其周期为三部分所对应的w的最小公倍数即40pi所对应的周期即0.5当N=16时观察时间为16/64=0.25不是0.5的整数倍所以频谱不正确;N=32观察时间为32/64=0.5是0.5的整数倍,所以所的频谱正确;N=64时观察时间为64/64=1为0.5的整数倍,所以所得频谱正确。4、实验总结周期信号的频谱是离散谱,只有用整数倍周期的长度作FFT,得到的离散谱才能代表周期信号的频谱。求类似x6nT的函数的周期为各部分周期的最小公倍数对模拟信号进行频谱分析时,首先要按照采样定理将其变成时域离散信号。如果是模拟周期信号,也应该选取整数倍周期的长度,经过采样后形成周期序列,按照周期序列的普分析进行。5、思考题(1)对于周期序列,如果周期不知道,如何用FFT进行谱分析?答:可先截取M点进行DFT,再将截取长度扩大1倍截取,比较结果,如果二者的差别满足分析误差要求,则可以近似表示该信号的频谱,如果不满足误差要求就继续将截取长度加倍,重复比较,直到结果满足要求。(2)如何选择FFT的变换区间?(包括非周期信号和周期信号)?答:对于非周期信号:有频谱分辨率F,而频谱分辨率直接和FFT的变换区间有关,因为FFT能够实现的频率分辨率是2π/N,因此有最小的N2π/F。(3)当N=8时,x2(n)和x3(n)的幅频特性会相同吗?为什么?N=16呢?答:因为x3(n)=x2((n+3))8R8(n),所以,x3(n)与x2(n)的8点DFT的模相等,但是当N=16时,x2(n)与x3(n)不满足循环移位关系,模值不相等。
本文标题:用FFT对信号作频谱分析
链接地址:https://www.777doc.com/doc-2202376 .html