资源描述:
《用MATLAB进行FFT频谱分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用MATLAB进行FFT频谱分析假设一信号:画出其频谱图。分析:首先,连续周期信号截断对频谱的影响。DFT变换频谱泄漏的根本原因是信号的截断。即时域加窗,对应为频域卷积,因此,窗函数的主瓣宽度等就会影响到频谱。实验表明,连续周期信号截断时持续时间与信号周期呈整数倍关系时,利用DFT变换可以得到精确的模拟信号频谱。举一个简单的例子:其周期为0.02。截断时不同的持续时间影响如图一.1:(对应程序shiyan1ex1.m)图Error!Notextofspecifiedstyleindocument..1其次,采样频率的确定。根据Shannon采样定理,采样带限信
2、号采样频率为截止频率的两倍以上,给定信号的采样频率应>1/7.92,取16。再次,DFT算法包括时域采样和频域采样两步,频域采样长度M和时域采样长度N的关系要符合M≧N时,从频谱X(k)才可完全重建原信号。实验中信号R经采样后的离散信号不是周期信号,但是它又是一个无限长的信号,因此处理时时域窗函数尽量取得宽一些已接近实际信号。实验结果如图一.2:其中,0点位置的冲激项为直流分量0.6造成(对应程序为shiyan1.m)图Error!Notextofspecifiedstyleindocument..2♣ARMA(AutoRecursiveMovingAvera
3、ge)模型:将平稳随机信号x(n)看作是零均值,方差为σu2的白噪声u(n)经过线性非移变系统H(z)后的输出,模型的传递函数为用差分方程表示为AR(AutoRecursive)自回归模型,即ARMA模型中系数b只有在r=0的情况下为1,其余都是零,获得一个全极点模型:差分方程表示为:AR模型的功率谱估计为:程序:%%------------------------------------------------------------------------%%功能:利用MATLAB的FFT函数做双正弦信号频谱分析%%--------------------
4、----------------------------------------------------fs=16;t=0:1/fs:200;x6=0.6+sin(2*pi*t/2.996)*0.1+cos(2*pi*t/7.92+2)*0.1;subplot(2,1,1);plot(t,x6);N=length(t);subplot(212);plot((-N/2:N/2-1)*fs/N,abs(fftshift(fft(x6,N))))%绘制信号的频谱,横轴对应实际频率axis([00.50160]);例子:%%----------------------
5、--------------------------------------------------%%功能:连续周期信号截断对频谱的影响%%------------------------------------------------------------------------fs=8000;n1=0.02;n=0:1/fs:n1;n=n(1,1:end-1);N=length(n);y=cos(100*pi*n+0.2*pi);subplot(2,2,1);plot(n,y);title('函数y=cos(100{pi}t+0.2{pi})');
6、subplot(2,2,2);stem((-N/2:N/2-1)*fs/N,abs(fftshift(fft(y,N))));axis([010000100]);gridon;title('截断时,时间间期为周期整数倍,频谱图');n1=0.03;n=0:1/fs:n1;n=n(1,1:end-1);N=length(n);y=cos(100*pi*n+0.2*pi);subplot(2,2,3);plot(n,y);title('函数y=cos(100{pi}t+0.2{pi})');subplot(2,2,4);stem((-N/2:N/2-1)*fs
7、/N,abs(fftshift(fft(y,N))));axis([010000100]);gridon;title('截断时,时间间期不为周期整数倍,频谱图');