《现代谱估计(共6页).doc》由会员分享,可在线阅读,更多相关《现代谱估计(共6页).doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上现代谱估计实验报告1 实验目的功率谱估计在实际工程中有重要应用价值。如在语音信号识别、雷达杂波分析、波达方向估计、地震勘探信号处理、水声信号处理、系统辨识中非线性系统识别、物理光学中透镜干涉、流体力学的内波分析、太阳黑子活动周期研究等许多领域发挥了重要作用。本次实验的目的主要是深入理解现代谱估计的基本理论,包括ARMA模型、ARMA谱估计。掌握现代谱估计的基本方法,包括SVD-TLS算法等。利用ARMA功率谱估计中Cadzow谱估计子和Kaveh谱估计子来进行谱估计。2 实验原理2.1 背景若离散随机过程x(n)服从线性差分方程 (1)式中e(n)是一离散白噪声,则称
2、x(n)为ARMA过程,而式(1)所示的差分方程称为ARMA模型。系数a1,a2ap,和b1,b2bq,分别称为自回归参数和滑动平均参数,而p和q分别叫做AR阶数和MA阶数。式(1)所示的ARMA过程,其功率谱密度为 (2)ARMA谱估计的目的是使用N个已知的观测数据x(0),x(1).x(N-1)计算出ARMA过程x(n)的功率谱密度估计。 在实际中,可以运用cadzow谱估计子和kaveh谱估计子来估计,cadzow谱估计子秩序确定AR阶数p和估计AR参数,而kaveh 谱估计子也只需要确定AR阶数p和估计AR参数以及MA阶数。2.2 相关算法AR阶数p的确定用奇异值分解(SVD),AR参
3、数的估计用总体最小二乘法(TLS),即应用(SVDTLS)算法来完成ARMA谱估计。SVDTLS算法:步骤1 计算增广矩阵B的SVD,并储存奇异值和矩阵V;步骤2 确定增广矩阵B的有效秩p;步骤3 计算矩阵S;步骤4 求S的逆矩阵S-,并计算出未知参数的总体最小二乘估计。3 实验内容仿真的观测数据由下式给出:xn = square(W*n)+0.2*randn(1,N)(3)其中,fs = 20000,n = 0:1/fs:0.1,N = length(n),W = 2000*pi。1、采样周期图法进行谱估计2、假设AR阶数未知,用SVD-TLS方法确定AR阶数和参数,然后使用Cadzow谱估
4、计子进行谱估计。4 Matlab仿真仿真的观测数据时域信号如图1所示。图1 观测数据时域信号1、经典功率谱估计周期图法是把随机序列x(n)的N 个观测数据视为一能量有限的序列。直接计算x(n)的离散傅立叶变换,得X(k),然后再取其幅值的平方,并除以N,作为序列x(n)真实功率谱的估计。仿真图如图2所示。图2 周期图法功率谱2、现代功率谱估计现代功率谱估计即参数谱估计方法是通过观测数据估计参数模型再按照求参数模型输出功率的方法估计信号功率谱。主要是针对经典谱估计的分辨率低和方差性能不好等问题提出的。按照上面介绍的步骤,编写程序对观测信号x(n)进行仿真,可以设置不同的M,qe,pe的值,以便分
5、析对比。图3是设置了M=2001,qe=100,pe=50,后得出的x(n)的功率谱图形。图3 ARMA模型功率谱5 实验总结本次实验分别用了周期图法和ARMA模型的参数估计方法对方波信号进行了功率谱估计,通过实验和得到的仿真图对比可以发现:通过周期图法得到的功率谱估计频谱分辨率较低,不能适应高分辨率功率谱估计的要求,参数化的谱估计可以获得高频率分辨率的功率谱。经典功率谱估计的分辨率反比于有效信号的长度,但现代谱估计的分辨率可以不受此限制。这是因为对于给定的N 点有限长序列x(n),虽然其估计出的自相关函数也是有限长的, 但是现代谱估计的一些隐含着数据和自相关函数的外推,使其可能的长度超过给定
6、的长度,不像经典谱估计那样受窗函数的影响。因而现代谱的分别率比较高,而且现代谱线要平滑得多,从上图可以清楚看出。6 附录Matlab程序如下:main.mclear;close all fs = 20000; n = 0:1/fs:0.1; N = length(n); W = 2000*pi; x1n = square(W*n); x2n = randn(1,N); xn = x1n+0.2*x2n; figure;plot(n,xn);title(时域信号);Nfft = 100;Pxx,f = period(xn,fs,Nfft);figure;plot(f,Pxx);title(周期图
7、法功率谱);%ARMA谱估计pe = 50;qe = 100;NARMA = length(xn);M = length(n);a,Rx,p = ARMA (xn,qe,pe,M);%Cadzow谱估计子Pw = Cadzow(a,Rx,p,NARMA);%功率谱figure;plot(0:length(Pw)-1)*fs/length(Pw),Pw);title(ARMA模型);period.mfunction Pxx,f = period(xn,fs,Nfft)Pxx = abs(fft(xn,Nfft).2)/Nfft; f = (0:length(Pxx)-1)*fs/length(P
8、xx);ARMA.mfunction a,Rxx,p = ARMA(xn,qe,pe,M)Rxx = xcorr(xn,unbiased);for(i = 1:M) for(j = 1:pe+1) Re(i,j) = Rxx(pe+i+1-j); endendU,S,V = svd(Re);Ak = 0;for(i = 1:pe+1) Ak = Ak + S(i,i)2;end;Akf = 0;v = Akf/Ak;p = 0;while v 0.99995 p = p+1; Akf = Akf + S(p,p)2; v = Akf/Ak;endSp = 0; for j =1:p for i
9、 =1:pe+1-p Sp=Sp+S(i,i)2*V(i:i+p,j)*V(i:i+p,j); end endinvSp = inv(Sp);for(i = 1:p) a(i) = invSp(i+1,1)/invSp(1,1);endCadzow.mfunction Pw = Cadzow(a,Rx,p,N)Ro = Rx;Ro(N) = 0.5*Rx(N);p = p-1;n = zeros(1,p+1); for k=1:p+1 n(k) = a(1:p+1)*Ro(k+N:-1:k-p+N);endwfreq = linspace(0,2*pi,N); z = exp(sqrt(-1)*wfreq);Pw = polyval(n,z)./polyval(a,z)+polyval(n,z.-1)./polyval(a,z.-1);Pw = abs(Pw);专心-专注-专业