信号功率谱估计.docx
《信号功率谱估计.docx》由会员分享,可在线阅读,更多相关《信号功率谱估计.docx(15页珍藏版)》请在冰豆网上搜索。
![信号功率谱估计.docx](https://file1.bdocx.com/fileroot1/2023-4/20/934926f7-f76e-4b0e-b2d8-0c6fed9b2b94/934926f7-f76e-4b0e-b2d8-0c6fed9b2b941.gif)
信号功率谱估计
白噪声中正弦组合的功率谱分析
摘要:
在白噪声中估计出淹没在其中的正弦波的功率谱是现代信号处理技术最有实用价值,同时也是最基础的技术之一。
而对于平稳随机过程来说,功率谱理论上的数值不可能实现,只能用有限的观测值来估计或者逼近真实值,从而估计问题的本质。
然而谱估计的结果好坏与采用的处理方法有很大关系。
本文分别选了古典谱估计和现代参数方程谱估计,对淹没在白噪声中的一对正弦组合进行了分析,并进行了Matlab仿真。
关键词:
白噪声+正弦组合功率谱估计Matlab仿真
Abstract:
inthewhitenoiseestimatethesubmergedinthesinewaveofpowerspectrumisthemostpracticalvalueofmodernsignalprocessingtechnology,isalsooneofthemostbasictechnology.Andforstationaryrandomprocess,thepowerspectrumvaluescannotbeachievedintheory,canonlyuselimitedobservationstoestimateorclosetotherealvalue,thustheessenceoftheestimationproblem.However,spectrumestimationresultisgoodorbadhasalottodowiththeprocessingmethod.Thispaperchosetheclassicalspectrumestimationandparametricequationofmodernspectralestimation,sinepairofsubmergedinwhitenoiseisanalyzed,andaMatlabsimulationwascarriedout.
Keywords:
whitenoise+sinecombined,powerspectrum,estimationofMatlab
课题简介:
本课题中以信号x(n)=
sin(2π*0.2n)+
sin(2π*0.3n)+w(n)为例进行研究,其中w(n)为零均值方差为1的高斯白噪声。
分别以古典谱中的自相关法、周期图法和现代谱估计中AR模型的Yule_Walker法、和解递推方程的LevinsonDurbin算法本文中使用Matlab软件用以下四种方法进行了仿真:
①相关法、②周期图法、③Yule_Walker、④LevinsonDurbin算法并对估计结果进行简要分析。
最后根据不同方法得到的结果进行了分析。
引言:
信号处理的核心是在信号受到干扰产生失真的情况下,正确回复原有信号,提取有用信息。
功率谱估计是在频率域研究随机信号的统计规律,其中心目的是为了估计出随机干扰信号,并将其去除,提取有用信号,对语音声呐雷达等信号处理有着重要意义,在现代数字信号处理中占有重要地位。
一、相关法
1、原理
相关法谱,估计是以相关函数为媒介来计算功率谱,又叫做间接法它的理论基础是维纳-辛钦定理,其具体步骤如下:
第一步,由获得的N点数据构成的有限长序列
来估计自相关函数,即:
第二步
由自相关函数的傅里叶变换求功率谱即:
2、程序
clearall;
N=64;
n=1:
N;
wn=randn(1,N);
xn=sqrt(20)*sin(2*pi*0.2*n)+sqrt(10)*sin(2*pi*0.3*n)+wn;
figure;
plot(n,xn);
axis([0N-1min(xn)1.2*max(xn)])
gridon;
title('采样信号波形图')
Rx=xcorr(xn,'unbiased');
Px=fft(Rx,N);
figure;
plot(n/N,abs(Px));
gridon;
title('相关法谱估计');
信号时域波形图:
图1-1
信号相关法谱估计图:
图1-2
3、结果分析:
分辨出了两个频率成分0.221和0.318,没有精确地分辨出来0.2和0.3两个频率。
说明用相关法谱估计得到的频谱图有较大的误差。
以上相关法经历了两次截断一次是估计
时仅利用了x(n)的N个观测值
这相当于对x(n)加矩形窗截断,该窗是加在数据上的一般称为加数据窗,另一次是估计
时仅利用了从-(M-1)到(M-1)的
这相当于对
加矩形窗截断将
截成(2M-1)长,这称为加延时窗式中
和
分别表示对
和
的估值由于M、N,使得上式估算时在选择不是最合适的窗函数时会有较大误差。
由于FFT是对原信号频谱的周期延拓,当频率归一化后,在一个周期内可以看到正半轴出现两个对称的峰值,其中第二个峰值相当于信号频谱负半轴部分平移的结果。
二、周期图法
1、原理
周期图法对信号进行加矩形窗处理,对采样得到的信号进行FFT,从而得到信号在频域上的功率分布,又称直接法。
与相关法的差异只是估计自相关函数的方法不同。
具体实现步骤如下:
(1)对N长的
直接求傅里叶变换,即
(2)取频谱密度的平方,并除以N作为
的估计。
2、程序
clearall;
N=64;
n=1:
N;
wn=randn(1,N);
xn=sqrt(20)*sin(2*pi*0.2*n)+sqrt(10)*sin(2*pi*0.3*n)+wn;
Rx=xcorr(xn,'unbiased');
Px=fft(Rx,N);
figure;
plot(n/N,abs(Px));
gridon;
title('周期图法谱估计');
周期图法谱估计图形:
3、结果分析:
由仿真结果可以看出,当采样点数为64点时,可以分辨出0.219和0.307两个频率的信号,误差较大,没有精确分辨出0.2和0.3两个频率。
由于FFT是对原信号频谱的周期延拓,当频率归一化后,在一个周期内可以看到正半轴出现两个对称的峰值,其中第二个峰值相当于信号频谱负半轴部分平移的结果。
古典谱加窗函数之外,经典谱估计的功率谱定义中既无求均值运算又无求极限运算,因而使得谱估计的方差性能较差,当数据很短时,这个问题更为突出。
因此,古典谱估计不是真实谱的一致估计。
三、Yule--Walker方程法
1、原理:
Yule-Walker方程法是通过解Yule-Walker方程获得AR模型参数。
p阶AR模型的系统函数为:
由此可将系统输出表示为:
,同时令预测误差为e(n),有
可推出:
在最小均方误差准则下,要使预测值最佳的逼近x(n),
参数的a的选择应使:
可以得到矩阵:
对据矩阵直接求逆矩阵求解即可得到参数a,带入到系统函数中就可以求出信号的功率谱。
2、程序:
clearall;
N=64;
n=1:
N;
wn=randn(1,N);
xn=sqrt(20)*sin(2*pi*0.2*n)+sqrt(10)*sin(2*pi*0.3*n)+wn;
p=27;
R=xcorr(xn,p+1,'biased');
Ra=toeplitz(R(1:
N),R(1:
N));
a=zeros(1,p);
R=-R(2:
p+1);
a=inv(Ra)*R';
A=[1a'];
B=[1zeros(1,p)];
[H,W]=freqz(1,A,512);
figure;
plot(W/(2*pi),abs(H).^2);
gridon;
title('直接解YuleWalker方程'
直接解YuleWalker方程图:
3、结果分析:
由实验结果图可以看出,直接解YuleWalker方程能够很精确地分辨出0.2和0.3两个频率分量。
AR模型对信号进行功率谱估计完全依赖于对信号自相关函数的估计,因此自相关函数的估计误差对最终的谱估计有一定影响。
同时,如果需要预测的阶次很高的情况下,需要求解的矩阵相对复杂,求逆矩阵的过程需要很长的时间,整个程序运行速度慢。
这就需要通过递推的方式解决。
四、LevinsonDurbin谱估计
Levinson-durbin递推算法是解尤勒-沃克方程的快速有效的算法,这种方法是利用自相关矩阵具有的一些良好的性质,使运算量大大减少,在介绍Levinson-durbin递推算法之前,先大概了解一下尤勒-沃克方程:
如前所述,P阶AR模型的系统函数为:
可以看出,P阶AR模型有P+1个待定系数,由上式,可得白噪声激励得到的系统输出为:
可以理解为,用n时刻之前的p个值的线性组合
来预测n时刻的值
的预测误差为
,在均方误差最小准则下,组合系数
,
…..
的选择应使预测误差
的均方值最小。
经过一系列的运算,最终可以得到AR模型的正规方程
也就是尤勒-沃克方程
上面方程中令p=1,的一阶AR模型的尤勒-沃克方程为:
进而可以解得:
再进而可以求得:
在一阶的基础上进行递推,将阶次为m时的第m个系数
定义为反射系数,用
表示,于是可以将计算m阶AR模型参数的Levinson-durbin递推算法表示如下:
式中m=1,2,…….p,
程序:
clearall
N=64;
p=20;
n=1:
N;
wn=randn(1,N);
yn=sqrt(20)*sin(2*pi*0.2*n)+sqrt(10)*sin(2*pi*0.3*n)+wn;
rm=xcorr(yn,p+1,'biased');
rm=rm(p+2:
2*p+3);
aa(1,1)=-rm
(2)/rm
(1)
p
(1)=rm
(1)*(1-abs(aa(1,1)^2))
sum=0;
form=2:
p
fori=1:
m-1
sum=sum+aa(m-1,i)*rm(m+1-i);
end
aa(m,m)=-(rm(m+1)+sum)/p(m-1);
p(m)=p(m-1)*(1-aa(m,m)^2);
fori=1:
m-1
aa(m,i)=aa(m-1,i)+aa(m,m)*aa(m-1,m-i);
end
sum=0;
end
B=(p(m)).^0.5;
aa(m,:
)
A=[1,aa(m,:
)];
[HW]=freqz(B,A)
figure;
plot(W/(2*pi),abs(H).^2);
gridon;
title('levinson-Durbin算法');
Levinson-durbin算法图:
结果分析:
Levinson-durbin递推算法得到的频谱图很清晰的分辨出了0.2和0.3两个频率,在频谱图中几乎看不出来误差。
现代谱估计中自相关法对于长数据记录,可得到较好的自相关估值,因此能够得到良好的谱估计。
但对于短数据记录,得到谱估计的分辨率较差。
但对于现代功率谱估计,阶数p应该选取在N/3-N/2之间。
阶选的太高,固然会提高谱估计的分辨率,但同时会产生虚假的谱峰或谱的细节。
现代谱估计主要针对经典谱估计分辨率低和方差性不好提出的,可以极大的提高估计的分辨率和平滑性。
可以分为参数模型谱估计和非参数模型谱估计。
参数模型谱估计有AR模型,MA模型,ARMA模型等。
现代谱估计的方法不是直接进行功率谱的计算,而是假设随机信号服从一个模型,通过有限的数据记录,对信号模型的参数进行估计,通过模型参数得到信号的功率谱。
心得体会:
通过这次随机信号处理大作业我总共有一下几点收获和体会:
1.通过这次信号处理大作业内容,我深入了解了信号处理在功率谱分析方面的发展历程,掌握了谱分析的几种算法。
更加深刻的明白要想在通信行业走的更远,掌握和发明最先进的算法是多么有用,这是通信技术进步的最大动力。
2.这次大作业内容,第一次的时候自己只重视对编程方面的完成,在完成作业时对作业上的理论解释内容不够重视,认为只要程序编好就行,在一些理论内容上直接复制了网上的图片,没有认真完成整篇论文的书写,分析。
其实这样是害了自己,经过陈老师的教导认识到了自己的错误,认真的完成了对整篇论文的书写。
在论文书写内容要求、格式要求方面有了很好的认识,完成了人生中第一篇有模有样的论文,收获很大。