AR功率谱估计MatlAB
AR功率谱估计MatlAB
AR模型的谱估计是现代谱估计的主要内容AR模型的谱估计是现代谱估计的主要内容。
1.AR 模型的Yule—Walker方程和Levinson-Durbin递推算法:在MATLAB中,函数levinson和aryule都采用 Levinson-Durbin递推算法来求解AR模型的参数a1,a2,……,ap及白噪声序列的方差,只是两者的输入参数不同,它们的格式为:A=LEVINSON(R,ORDER) A=ARYULE(x,ORDER)两函数均为定阶ORDER的求解,但是函数levinson的输入参数要求是序列的自相关函数,而函数aryule的输入参数为采样序列。
下面语句说明函数levinson和函数aryule的功能是相同的:例子:randn('seed',0)a=[1 0.1 0.2 0.3 0.4 0.5];x=impz(1,a,20)+randn(20,1)/20;r=xcorr(x,'biased');r(1:length(x)-1)=[];A=levinson(r,5)B=aryule(x,5)2.Burg算法:格式为:A=ARBURG(x,ORDER); 其中x为有限长序列,参数ORDER用于指定AR模型的阶数。
以上面的例子为例:randn('seed',0)a=[1 0.1 0.2 0.3 0.4 0.5];x=impz(1,a,20)+randn(20,1)/20;A=arburg(x,5)3.改进的协方差法:格式为:A=ARMCOV(x,ORDER); 该函数用来计算有限长序列x(n)的ORDER阶AR 模型的参数。
例如:输入下面语句:randn('seed',0)a=[1 0.1 0.2 0.3 0.4 0.5];x=impz(1,a,20)+randn(20,1)/20;A=armcov(x,5)AR模型阶数P的选择:AR 模型阶数P一般事先是不知道的,需要事先选定一个较大的值,在递推的过程中确定。
MATLAB中AR模型功率谱估计中AR阶次估计的实现
MATLA中AR模型功率谱估计中AR阶次估计的实现(最近看了几个关于功率谱的问题,有关AR模型的谱估计,在此分享一下,希望大家不吝指正)(声明:本文内容摘自我的毕业论文——心率变异信号的预处理及功率谱估计)(按:AR模型功率谱估计是对非平稳随机信号功率谱估计的常用方法,但是其模型阶次的估计,除了HOSAE具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了’FPE','AIC', 'MDL', 'CAT' 集中准则一并估计,并采用试验方法确定那一个阶次更好。
)....................... 以上省略...................................................假设原始数据序列为x,那么n阶参数使用最小二乘估计在MATLAB中实现如下:复制内容到剪贴板代码:Y = x;Y(1:n) = [];m = N-n;X = [];% 构造系数矩阵for i = 1:mfor j = 1:nX(i,j) = xt(n+i-j);endendbeta = inv(X'*X)*X'*Y';beta即为用最小二乘法估计出的模型参数。
此外,还有估计AR 模型参数的Yule-Walker 方程法、基于线性预测理论的Burg 算法和修正的协方差算法等[26] 。
相应的参数估计方法在MATLAB 中都有现成的函数,比如aryule、arburg以及arcov等。
4.3.3 AR 模型阶次的选择及实验设计文献[26]中介绍了五种不同的AR 模型定阶准则,分别为 矩阵奇异值分解则。
文献[28]中还介绍了一种BIC 定阶准则。
SVD 方法是对Yule-Walker 方 程中的自相关矩阵进行 SVD 分解来实现的,在MATLA 工具箱中arorder 函数就是使用的该算法。
自己编写算法功率谱密度三种matlab实现方法
自己编写算法功率谱密度三种matlab实现方法功率谱密度的三种matlab实现方法一:实验目的:(1)掌握三种算法的概念、应用及特点;(2)了解谱估计在信号分析中的作用;(3)能够利用burg法对信号作谱估计,对信号的特点加以分析。
二;实验内容:(1)简单说明三种方法的原理。
(2)用三种方法编写程序,在matlab中实现。
(3)将计算结果表示成图形的形式,给出三种情况的功率谱图。
(4)比较三种方法的特性。
(5)写出自己的心得体会。
三:实验原理:1.周期图法:周期图法又称直接法。
它是从随机信号x(n)中截取N长的一段,把它视为能量有限x(n)真实功率谱的估计的抽样.认为随机序列是广义平稳且各态遍历的,可以用其一个样本x(n)中的一段来估计该随机序列的功率谱。
这当然必然带来误差。
由于对采用DFT,就默认在时域是周期的,以及在频域是周期的。
这种方法把随机序列样本x(n)看成是截得一段的周期延拓,这也就是周期图法这个名字的来历。
2.相关法(间接法):这种方法以相关函数为媒介来计算功率谱,所以又叫间接法。
这种方法的具体步骤是:第一步:从无限长随机序列x(n)中截取长度N的有限长序列列第二步:由N长序列求(2M-1)点的自相关函数序列。
(2-1)这里,m=-(M-1)…,-1,0,1…,M-1,MN,是双边序列,但是由自相关函数的偶对称性式,只要求出m=0,。
,M-1的傅里叶变换,另一半也就知道了。
第三步:由相关函数的傅式变换求功率谱。
即以上过程中经历了两次截断,一次是将x(n)截成N长,称为加数据窗,一次是将x(n)截成(2M-1)长,称为加延迟窗。
因此所得的功率谱仅是近似值,也叫谱估计,式中的代表估值。
一般取M<<N,因为只有当M较小时,序列傅式变换的点数才较小,功率谱的计算量才不至于大到难以实现,而且谱估计质量也较好。
因此,在FFT问世之前,相关法是最常用的谱估计方法。
三:Burg法:AR模型功率谱估计又称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估计须通过levinson_dubin递推算法由Yule-Walker方程求得AR的参数:σ2,α1α2…αp。
AR模型功率谱估计及Matlab实现
m = 1, 2, r x ( p ) r x ( p - 1) r x ( p - 2) r x ( 0) ap 型系数 : a m ( m) = k m
,p
( 11 )
再利用 L evinson Durbin 递推算法可得 AR 模 ( 12 ) ,p ( 13 )
即是 AR 模 型 的 正 则 方程 , 又 称尤 拉 沃 克 ( Yule Walker ) 方程。 2. 2 AR 模型参数估计的典型算法
型参数的几种典型求解算法 , 并借助 M A T L AB 平台对各种算法的功率谱进行仿真。 关键词 中图分类号
Power Spectrum Density Estimation for AR Model and the Simulation in Matlab
Y an Q inghua Cheng Z hao gang Duan Y unlong 050003) ( O rdnance Eng ineering Co llege, Shijiazhuang
4
结语
文章介绍了现代功率谱估计中的 AR 模型的
功率谱估计 , 并重点介绍 了 AR 模 型几种典型算 法 , 通过对功率谱的仿真比较可以得到 : 自相关法 的计算简单, 但谱估计的分辨率较差, 而 Bur g 算法 和改进协方差算法是较为通用的方法, 计算不太复 杂 , 且具有较好的谱估计质量。因此, 实际应用时 , 应根据需要选择合适的算法。
表1 不同算法的估计参数 自相 1. 0000 0. 0648 0. 0995 - 0. 0244 - 0. 0886 - 0. 9781 关法 Burg 1. 0000 - 0. 3130 0. 3586 - 0. 1014 - 0. 5718 0. 2077 法
用MATLAB进行AR模型功率谱分析
用MATLAB 进行AR 模型功率谱分析随机信号序列x(n)是均值为0方差为1的高斯型白噪声经过AR 模型()43219606.01697.29403.22137.211----+-+-=z z z z z H后的输出,采样长度为512,AR 模型阶次取3,4,5,用L-D 算法估计功率谱密度。
分析:MATLAB 函数pyulear()的用法pyulear()是基于自相关法、利用Levesion-Durbin 算法估计功率谱密度。
[px,w]=pyulear(x,p,[nfft],’range ’)x 为随即信号序列,是由白噪声经AR 模型产生的,在MATLAB 中可以由白噪声序列u 经过表示AR 模型的数字滤波器后得到,使用的是filter 函数;p 为AR 模型阶次;nfft 为由模型参数计算频谱时的频域采样点数,默认为256; range 用于选择输出是为单边[0,π],还是双边[0,2π];w 的范围[0,π],还是 [0,2π]由range 确定或由nfft 的奇偶性确定; 该函数返回实际频率w 下的功率谱密度向量,w 的单位即为rad/sample ,默认sample 为1Hz ,若要转化为归一化频率,只需用w/π即可。
实验结果如图三.1(对应程序为shiyan3.m ):图 错误!文档中没有指定样式的文字。
.1短时傅里叶变换(Short Time Fourier Transform, STFT )法,在MATLAB 中做短时傅里叶变换的函数为spectrogram :spectrogram(x,window,overlap,f,fs) [s,f,t,p]=spectrogram(x,window,overlap,f,fs)x 为被分析序列,window 为窗函数及长度,默认为hamming 窗,overlap 为相邻两个短时序列之间重叠的数据点数,f 为一向量,确定在某一个频率范围内做短时傅里叶变换,fs 为采样频率。
MATLAB在数字信号处理中的应用(第2版) 第8章 功率谱估计
8.2 随机信号处理基础
随机信号又称为随机函数、时间序列或 随机过程,是数学上表示无限能量信号的 一个基本概念。 它可以分为平稳随机信号和非平稳随机 信号两大类。随机信号不能用确定性的时 间函数来描述,只能用统计方法来研究, 其统计特性通常用概率分布函数与概率密 度函数来描述或用统计平均来表征。
1-10
8.3 经典功率谱估计方法
8.3.2 间接法
1-11
8.3 经典功率谱估计方法
8.3.3 基于经典谱估计的系统辨识
1-12
8.4 改进的直接法估计
8.4.1 Bartlett法
1-13
8.4 改进的直接法估计
8.4.2 Welch法
1-14
8.5 AR模型功率谱估计
传统的功率谱估计方法是利用加窗的数据 或加窗的相关函数估计值的傅立叶变换来计算 的,具有一定缺点:方差性能较差、谱分辨率低。 而参数模型法可以大大提高功率谱估计的分辨 率,是现代谱估计的主要研究内容,在语音分 析、数据压缩以及通信等领域有着广泛的应用。 按照模型化进行功率谱估计,主要思路为: (1) 选择模型; (2) 从给出的数据样本估计假设模型的参数; (3) 将估计出的模型参数带入模型的理论功率 谱密度公式中得出一个较好的谱估计值。
1-19
8.6现代谱估计的非参数方法
8.6.1 MTM(Multitaper)法估计
MTM法使用正交的窗口来截取获得相互独立的 功率谱估计,然后再把这些估计结果结合得到最终 的估计。MTM法最重要的参数是时间-带宽的乘 积—— NW。此参数直接影响到谱估计的窗的个数, 其中窗的个数为2*NW-1个。因此,随着NW的增大, 窗的个数增多,会有更多的谱估计,从而谱估计的 方差得到减小。但是,同时会带来谱泄漏的增大, 而且正的谱估计的结果将会有更大的偏差。
AR模型功率谱估计及Matlab实现
南昌大学实验报告学生姓名:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:一、实验名称基于AR模型的功率谱估计及Matlab实现二、实验目的1.了解现代谱估计方法,深入研究AR模型法的功率谱估计2.利用Matlab对AR模型法进行仿真三、实验原理1.现代谱估计现代功率谱估计以信号模型为基础,如下图所示为x(n)的信号模型,输入白噪声ω(n)均值为0,方差为σω2,x(n)的功率谱可由下式计算:P xx(e jω)=σω2|H(e jω)|2如果通过观测数据估计出信号模型的参数,信号功率谱就可以按上式计算出来,这样估计功率谱的问题就变成由观测数据估计信号模型参数的问题。
2.功率谱估计的步骤:(1)选择合适的信号模型;(2)根据x(n)有限的观测数据,或者有限个自相关函数估计值,估计模型的参数;(3)计算模型的输出功率谱。
3.模型选择选择模型主要考虑是模型能够表示谱峰、谱谷和滚降的能力。
对于尖峰的谱,选用具有极点的模型,如AR、ARMA模型;对于具有平坦的谱峰和深谷的信号,可以选用MA模型;既有极点又有零点的谱应选用ARMA模型,应该在选择模型合适的基础上,尽量减少模型的参数。
4.AR模型功率谱估计在实际中,AR 模型的参数估计比较简单,对其有充分的研究,AR模型功率谱估计又称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估可以通过列文森(Levenson)递推算法由Yule-Walker 方程求AR模型的参数。
4.MATLAB中AR模型的谱估计的函数说明:1.Pyulear函数:功能:利用Yule--Walker方法进行功率谱估计.格式:Pxx=Pyulear(x,ORDER,NFFT)[Pxx,W]=Pyulear(x,ORDER,NFFT)[Pxx,W]=Pyulear(x,ORDER,NFFT,Fs)Pyulear(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)说明:Pxx =Pyulear(x,ORDER,NFFT)中,采用Yule--Walker方法估计序列x的功率谱,参数ORDER用来指定AR模型的阶数,NFFT为FFT算法的长度,默认值为256,若NFFT为偶数,则Pxx为(NFFT/2 + 1)维的列矢量,若NFFT为奇数,则Pxx为(NFFT + 1)/2维的列矢量;当x为复数时,Pxx长度为NFFT。
AR模型功率谱估计的MATLAB实现
四、涉及实验的相关情况介绍(包含使用软件或实验设备等情况) MATLAB7.0 此软件是美国 MathWorks 公司出品的商业数学软件。中文名为 “矩阵实验室”,用于算法开发,数据可视化,数据分析以及数值计算的高级技 术计算语言和交互式环境。
操作系统为 Windows XP 函数: Pyulear (): Yule-Walker 法计算功率谱 Pburg (): Burg 法计算功率谱 Pmcov ():改进协方差法计算功率谱
0
0
50
100
150
200
250
300
350
400
450
500
六、实验总结 分析:
通过下面的三幅图,我们可以清晰的观察到在 300Hz 处有二个挨得很近的峰值。 而自相关法得到的功率谱图中两个峰值已经混叠。 说明 Burg 与改进协方差法均比 自相关法估计的功率谱性能有所改善 。
相关图形:
仿 真 信 号 x(n) 10 0 -10 4 2 0 4 2 0 5 0 50 100 150 200 250 300 350 改进协方差算法功率谱估计 400 450 500 0 50 100 150 200 250 300 350 Burg算 法 功 率 谱 估 计 400 450 500 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 自相关法功率谱估计 0.8 0.9 1
数字信号处理
AR 模型功率谱估计的 MATLபைடு நூலகம்B 实现
课程实验报告
实验指导教师:***
实验名称 姓 名
专业、 班级 实验日期
实验地点
一、实验内容
现代功率谱估计中 AR 模型参数的 Burg 算法与改进自相关的算法,比较集 中算法的优劣,用 MATLAB 仿真。 对一个输入信号进行自相关法功率谱估计、 Burg 算法功率谱估计、 改进协方差算 法功率谱估计的 MATLAB 仿真,输出功率谱图。
自-功率谱估计MATLAB实现
功率谱估计性能分析及其MATLAB实现一、经典功率谱估计分类简介1.间接法根据维纳-辛钦定理,1958年Blackman和Turkey给出了这一方法的具体实现,即先由N 个观察值,估计出自相关函数,求自相关函数傅里叶变换,以此变换结果作为对功率谱的估计。
2.直接法直接法功率谱估计是间接法功率谱估计的一个特例,又称为周期图法,它是把随机信号的N个观察值直接进行傅里叶变换,得到,然后取其幅值的平方,再除以N,作为对功率谱的估计。
3.改进的周期图法将N点的观察值分成L个数据段,每段的数据为M,然后计算L个数据段的周期图的平均,作为功率谱的估计,以此来改善用N点观察数据直接计算的周期图的方差特性。
根据分段方法的不同,又可以分为Welch法和Bartlett法。
Welch法所分的数据段可以互相重叠,选用的数据窗可以是任意窗。
Bartlett法所分的数据段互不重叠,选用的数据窗是矩形窗。
二、经典功率谱估计的性能比较1.仿真结果为了比较经典功率谱估计的性能,本文采用的信号是高斯白噪声加两个正弦信号,采样率F s=1000Hz,两个正弦信号的频率分别为f1=200Hz,f2=210Hz。
所用数据长度N=400.仿真结果如下:(a) (b)(c)(d)(e) (f)Figure1 经典功率谱估计的仿真结果Figure1(a)示出了待估计信号的时域波形;Figure2(b)示出了用该数据段直接求出的周期图,所用的数据窗为矩形窗;Figure2(c)是用BT法(间接法)求出的功率谱曲线,对自相关函数用的平滑窗为矩形窗,长度M=128,数据没有加窗;Figure2(d)是用BT法(间接法)求出的功率谱曲线,对自相关函数用的平滑窗为Hamming窗,长度M=64,数据没有加窗;Figure2(e)是用Welch平均法求出的功率谱曲线,每段数据的长度为64点,重叠32点,使用的Hamming窗;Figure2(f)是用Welch平均法求出的功率谱曲线,每段数据的长度为100点,重叠48点,使用的Hamming窗;2.性能比较1)直接法得到的功率谱分辨率最高,但是方差性能最差,功率谱起伏剧烈,容易出现虚假谱峰;2)间接法由于使用了平滑窗对直接法估计的功率谱进行了平滑,因此方差性能比直接法好,功率谱比直接法估计的要平滑,但其分辨率比直接法低。
(完整版)功率谱估计性能分析及Matlab仿真
功率谱估计性能分析及Matlab 仿真1 引言随机信号在时域上是无限长的,在测量样本上也是无穷多的,因此随机信号的能量是无限的,应该用功率信号来描述。
然而,功率信号不满足傅里叶变换的狄里克雷绝对可积的条件,因此严格意义上随机信号的傅里叶变换是不存在的。
因此,要实现随机信号的频域分析,不能简单从频谱的概念出发进行研究,而是功率谱[1]。
信号的功率谱密度描述随机信号的功率在频域随频率的分布。
利用给定的N 个样本数据估计一个平稳随机信号的功率谱密度叫做谱估计。
谱估计方法分为两大类:经典谱估计和现代谱估计。
经典功率谱估计如周期图法、自相关法等,其主要缺陷是描述功率谱波动的数字特征方差性能较差,频率分辨率低。
方差性能差的原因是无法获得按功率谱密度定义中求均值和求极限的运算[2]。
分辨率低的原因是在周期图法中,假定延迟窗以外的自相关函数全为0。
这是不符合实际情况的,因而产生了较差的频率分辨率。
而现代谱估计的目标都是旨在改善谱估计的分辨率,如自相关法和Burg 法等。
2 经典功率谱估计经典功率谱估计是截取较长的数据链中的一段作为工作区,而工作区之外的数据假设为0,这样就相当将数据加一窗函数,根据截取的N 个样本数据估计出其功率谱[1]。
2.1 周期图法( Periodogram )Schuster 首先提出周期图法。
周期图法是根据各态历经的随机过程功率谱的定义进行的谱估计。
取平稳随机信号()x n 的有限个观察值(0),(1),...,(1)x x x n -,求出其傅里叶变换10()()N j j n N n X e x n e ωω---==∑然后进行谱估计21()()j N S X e Nωω-= 周期图法应用比较广泛,主要是由于它与序列的频谱有直接的对应关系,并且可以采用FFT 快速算法来计算。
但是,这种方法需要对无限长的平稳随机序列进行截断,相当于对其加矩形窗,使之成为有限长数据。
同时,这也意味着对自相关函数加三角窗,使功率谱与窗函数卷积,从而产生频谱泄露,容易使弱信号的主瓣被强信号的旁瓣所淹没,造成频谱的模糊和失真,使得谱分辨率较低[1]。
MATLAB中AR模型功率谱估计中AR阶次估计的实现
MATLAB中AR模型功率谱估计中AR阶次估计的实现在MATLAB中,AR模型功率谱估计是一种用于信号分析的方法,它基于自回归(AR)模型建立。
在进行AR模型功率谱估计之前,首先需要确定AR模型的阶次。
本文将介绍AR阶次估计的实现方法。
AR模型是一种线性预测模型,用于描述时间序列的统计特性。
AR模型用过去的观测值来预测当前的观测值,其数学表达式为:X(t)=a(1)*X(t-1)+a(2)*X(t-2)+...+a(p)*X(t-p)+e(t)其中,X(t)表示当前时刻的观测值,p表示AR模型的阶次,a(1),a(2),...,a(p)表示AR模型的系数,e(t)表示误差项。
确定AR模型的阶次是进行AR模型功率谱估计的第一步。
一般来说,阶次越高,AR模型对原始数据的逼近程度越好,但也需要考虑计算复杂度和过拟合的问题。
常用的AR阶次估计方法有自相关函数法、偏自相关函数法和最小描述长度准则(MDL)法等。
首先介绍自相关函数法。
该方法基于信号的自相关函数来确定AR模型的阶次。
自相关函数可以用MATLAB中的xcorr函数计算得到。
调用xcorr函数时,需要指定输入信号和最大延迟,并设置参数'coeff',使输出的自相关函数按归一化方式呈现。
通过观察自相关函数的衰减情况,可以估计AR模型的阶次。
常用的阶次估计标准是自相关函数的返回值第一个小于1/e的点对应的延迟。
其次介绍偏自相关函数法。
该方法基于信号的偏自相关函数来确定AR模型的阶次。
偏自相关函数可以用MATLAB中的parcorr函数计算得到。
调用parcorr函数时,同样需要指定输入信号和最大延迟,并设置参数'coeff'。
通过观察偏自相关函数的衰减情况,可以估计AR模型的阶次。
常用的阶次估计标准是偏自相关函数的返回值第一个小于1/e的点对应的延迟。
最后介绍最小描述长度准则(MDL)法。
该方法基于MDL准则来确定AR模型的阶次。
AR模型功率谱估计及Matlab实现
轡南昌大学卖脸掖告学生姓名:_ 学号: _________ 专业班级:________________实验类型:口验证□综合口设计口创新实验日期: _________________ 实验成绩:—一、实验名称基于AR模型的功率谱估计及Matlab实现二、实验目的1•了解现代谱估计方法,深入研究AR模型法的功率谱估计2.利用Matlab对AR模型法进行仿真三、实验原理1•现代谱估计现代功率谱估计以信号模型为基础,如下图所示为x(n)的信号模型,输入口噪声3(n)均值为0,方差为x(n)的功率谱可由下式计算:%(凶)=圈H(』3)|2如果通过观测数据估计出信号模型的参数,信号功率谱就可以按上式计•算出来, 这样估计功率谱的问题就变成III观测数据估计信号模型参数的问题。
2.功率谱估计的步骤:(1)选择合适的信号模型;(2)根据x(n)有限的观测数据,或者有限个自相关函数估讣值,估计模型的参数;(3)计算模型的输出功率谱。
3•模型选择选择模型主要考虑是模型能够表示谱稣、谱谷和滚降的能力。
对于尖稣的谱,选用具有极点的模型,如AR、ARMA模型;对于具有平坦的谱邮和深谷的信号,可以选用MA模型;既有极点又有零点的谱应选用ARMA模型,应该在选择模型合适的基础上,尽量减少模型的参数。
4.AR模型功率谱估计在实际中,AR模型的参数估计比较简单,对其有充分的研究,AR模型功率谱估计乂称为自回归模型,它是一个全极点的模型,要利用AR模型进行功率谱估可以通过列文森(Levenson)递推算法山Yiile-Walker方程求AR模型的参数。
4.MATLAB中AR模型的谱估计的函数说明:1. Pynlear 函数:功能:利用Yiile-Walker方法进行功率谱佔计.格式:Pxx=Pyiilear(x,ORDER,NFFT)[Pxx,W]=Pyulear(x,ORDER,NFFT)[Pxx,W]=Pyulear(x,ORDER,NFFT,Fs)Pynlear(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)说明:Pxx =Pyulear(x,ORDER,NFFT)中,采用Yiile—Walker 方法估计序列x 的功率谱,参数ORDER用来指定AR模型的阶数,NFFT为FFT算法的长度,默认值为256,若NFFT为偶数,则Pxx为(NFFT/2+1)维的列矢量,若NFFT为奇数,则Pxx 为(NFFT +1)/2维的列矢量;当x为复数时,Pxx长度为NFFT。
基于MATLAB实现的AR模型功率谱估计
基于MATLAB实现的AR模型功率谱估计刘明晓;王旭光【期刊名称】《电子设计工程》【年(卷),期】2017(025)017【摘要】现代功率谱估计和经典功率谱估计是两种常用的功率谱估计,同时也是分析随机信号的常用方法.本文详细介绍了现代功率谱估计中有关AR模型参数的功率谱估计,具体包括自相关算法、Burg算法、协方差算法以及改进的协方差算法,在此基础上又对四种不同功率谱估计方法的性能指标进行了比较分析.在MATLAB仿真软件平台上对AR模型参数的四种不同功率谱估计算法进行了仿真,同时对功率谱估计结果进行了分析比较并得到了预期的谱估计效果.最后从实际应用角度出发讨论了AR模型参数不同功率谱估计算法的特点,以便在应用中能够选择合适的功率谱估计算法.%Power spectrum estimation can be divided into modern spectral estimation and classical spectral estimation, it is an method for analyzing random signal. It describes the autocorrelation algorithm, Burg algorithm, covariance algorithm and improved covariance algorithm of AR model parameters in Modern Spectral Estimation , and their perform indicators are analyzed in this paper. These methods for AR model parameter algorithm are implemented by MATLAB , the results of simulation are analyzed and get a better spectrum estimation. Moreover , the advantages and disadvantages of these methods are discussed from the experimental view so as to make reasonable selection in practical work.【总页数】4页(P129-132)【作者】刘明晓;王旭光【作者单位】西安铁路职业技术学院陕西西安 710014;西安航天自动化股份有限公司陕西西安 710014【正文语种】中文【中图分类】TN015【相关文献】1.AR模型功率谱估计在抗干扰中的DSP实现 [J], 蒋磊;程韧;刘轶德2.基于AR模型的现代功率谱估计算法在新型甲烷检定装置的应用 [J], 李富伟;梁龙;向艳芳3.AR模型功率谱估计及Matlab实现 [J], 闫庆华;程兆刚;段云龙4.AR模型功率谱估计的典型算法比较及MATLAB实现 [J], 储彬彬; 王琛; 漆德宁5.AR模型功率谱估计的典型算法比较及MATLAB实现 [J], 储彬彬; 王琛; 漆德宁因版权原因,仅展示原文概要,查看原文内容请购买。
matlab利用levinsondurbin算法进行功率谱估计仿真实验
m a t l a b利用l e v i n s o n d u r b i n算法进行功率谱估计仿真实验.d o c x(总5页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Levinson-Durbin algorithm利用Levinson-Durbin 算法计算序列x(n)的功率谱,()()()()cos 0.3cos 0.32x n n n w n ππ=++其中w(n)为高斯白噪声序列(1) 假设x(n)的采样点数为128,AR 模型阶数为80, (2) 假设x(n)的采样点数为512,AR 模型阶数为80。
1、数学模型Levinson 算法主要是从AR(k)模型参数出发,得到AR(k+1)阶模型参数。
目前已经得到k 阶Yule-Walker 方程参数{a k,1,a k,2,⋯,a k,k ,σk 2},接下来以此求解k+1阶Yule-Walker 方程,k 阶Yule-Walker 方程为:()()()()()()()()()2,1,1011010100k k k k R R R k a R R R k a R k R k R σ⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎣⎦⎣⎦⎣⎦ K+1阶Yule-Walker 方程为:211,11,1,k 11(0)(1)(k)(k 1)(1)(0)(k 1)(k)0(k)(k 1)(0)(1)0(k 1)(k)(1)(0)0k k k k k R R R R a R R R R a R R R R a R R R R σ++++++⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎣⎦⎣⎦⎣⎦ 将k 阶方程的系数矩阵增加一行一列,成为一下的扩大方程:2,1,(0)(1)(k)(k 1)1(1)(0)(k 1)(k)0(k)(k 1)(0)(1)0(k 1)(k)(1)(0)0k k k k k R R R R R R R R a R R R R a R R R R D σ+⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎣⎦⎣⎦⎣⎦其中D k 由下式定义:(),,001,1kk k i k i D a R k i a ==+-=∑将以上扩大方程的行倒序,列也倒序,得到预备方程:,,12(0)(1)(k)(k 1)00(1)(0)(k 1)(k)0(k)(k 1)(0)(1)(k 1)(k)(1)(0)1k k k k k D R R R R R R R R a R R R R a R R R R σ+⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥+⎣⎦⎣⎦⎣⎦将待求解的k+1阶Yule-Walker 方程的解表示成扩大方程的解和预备方程的解的线性组合形式:1,1,1,11,.,11,111001k k k k k k k k k k k k a a a a a a a γ+++++⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 或:1,,1,1,1,2,,k i k i k k k i a a a i k γ+++-=-=式中γk+1是待定系数,称为反射系数,上式中各项都右乘k+1阶系数矩阵,得到:221120000k k k k k k D D σσγσ++⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦由此可以得到:12kk kDγσ+= ()22221111k k k k k k D σσγγσ+++=-=-由扩大方程的第一个方程可以得到:()()2,10kkk i i R a R i σ==+∑从以上的推导可以归纳出如下的由k 阶模型参数求k+1阶模型参数的计算公式:()()2,10kkk i i R a R i σ==+∑(),,001,1kk k i k i D a R k i a ==+-=∑12kk kD γσ+=()222111k k k σγσ++=-1,,1,11,k 11,1,2,,;k i k i k k k i k k a a a i k a γγ+++-+++=-==-对于AR(p)模型,递推计算到k+1=p 为止,得到AR(p)模型的参数后,根据以下式子即可得到功率谱估计值:()22,1ˆ1pj pj ip i i Se a e ωωσ-==+∑2、算法模型Levinson-Durbin 算法计算流程如下:(1) 初始化:()()2000,00,1,a 1R D R σ===(2) 开始迭代计算:先由12kk k D γσ+=,根据k 阶的D k 与σk 2求出反射系数γk+1,之后利用()222111k k k σγσ++=-以及已经得到的σk 2求出σk+12,利用1,,1,1k i k i k k k i a a a γ+++-=-,求出k+1阶的AR 模型参数。
AR模型功率谱估计的典型算法比较及MATLAB实现
%随机信号xn subplot(41 1);plot(n,xn);title(’仿真信号x(n)’) %自相关法功率谱估计 【pxl,f1]=pyulear(xn,30,nfft,fs);subplot(412); plot(fl,pxl);title(’自相关法功率谱估计’) %Burg算法功率谱估计 [px2,f2]=pburg(xn,30,nfft,fs);subplot(4 1 3); plot(f2,px2);title(’Burg算法功率谱估计’) %改进协方差算法功率谱估计 [px3,f3]=pmcov(xn,30,nfft,fs);subplot(414); plot(f3,px3);title(’改进协方差算法功率谱估计’)
●I
如对本文内容有任何观点或评论,请发E—mail至sjtx@210n.com
参考文献
[1]张旭东.离散随机信号处理.北京:清华大学出版社,2005 [2]胡广书.数字信号处理理论算法实现.北京:清华大学出版社,2003 [3]傅广操.MATLAB在现代功率谱估计中的应用.电脑学习,2003,12(6)6~7
(上接78页)
Contrast of the Typical Algorith ms of PS D Esti mation Based on AR ModeI and the Simulation in MATLAB
Chu Binbin,Wang Chen,Qi Dening
(Department of Information Engineering,Artillery Academy,PLA,Hefei 23003 1,China)
关 ——.。—键 ———.词 ...—F—.S..K..调 ..—。制 —.,.—解 ..…—调 ————器 —一.—伪 ——~~随 ..一—机 —..——序 。.一一列 .——...一。.一————..一——。.——————————。.一————————————————。。——————————————————…—。————————.…———.———.,一——……一一—.…~——..——。.一I
功率谱估计及其MATLAB仿真
功率谱估计及其MATLAB仿真一、本文概述功率谱估计是一种重要的信号处理技术,它能够从非平稳信号中提取有用的信息,揭示信号在不同频率上的能量分布特征。
在通信、雷达、生物医学工程、地震分析等领域,功率谱估计都发挥着至关重要的作用。
随着计算机技术的快速发展,功率谱估计的仿真研究也越来越受到重视。
本文将对功率谱估计的基本理论进行简要介绍,包括功率谱的概念、性质以及常见的功率谱估计方法。
随后,我们将重点探讨MATLAB 在功率谱估计仿真中的应用。
MATLAB作为一种功能强大的数值计算和仿真软件,为功率谱估计的研究提供了便捷的工具。
通过MATLAB,我们可以轻松地模拟出各种信号,进行功率谱估计,并可视化结果,从而更直观地理解功率谱估计的原理和方法。
本文旨在为读者提供一个关于功率谱估计及其MATLAB仿真的全面而深入的学习机会,帮助读者更好地掌握功率谱估计的基本原理和仿真技术,为后续的实际应用打下坚实的基础。
我们将通过理论分析和实例仿真相结合的方式,逐步引导读者深入了解功率谱估计的奥秘,探索MATLAB在信号处理领域的广泛应用。
二、功率谱估计的基本原理功率谱估计是一种在信号处理领域中广泛使用的技术,它旨在从时间序列中提取信号的频率特性。
其基本原理基于傅里叶变换,通过将时域信号转换为频域信号,可以揭示信号中不同频率分量的存在和强度。
功率谱估计主要依赖于两个基本概念:自相关函数和功率谱密度。
自相关函数描述了信号在不同时间点的相似程度,而功率谱密度则提供了信号在不同频率下的功率分布信息。
在实际应用中,由于信号往往受到噪声的干扰,直接计算功率谱可能会得到不准确的结果。
因此,功率谱估计通常使用窗函数或滤波器来减小噪声的影响。
窗函数法通过在时域内对信号进行分段,并对每段进行傅里叶变换,从而减小了噪声对功率谱估计的干扰。
而滤波器法则通过在频域内对信号进行滤波,去除噪声分量,得到更准确的功率谱。
MATLAB作为一种强大的数值计算和仿真软件,为功率谱估计提供了丰富的函数和工具。
功率谱分析(Matlab)-
功率谱分析由题目内容,设采样频率fs=1000HZ,数据长度为256,模型阶数为14,f1=200,f2=300、250。
(1用最大熵法进行谱估计运行程序后,观察图像f1和f2相差较小时,功率谱变化更剧烈;模型的阶数越高,图像中能够获得的信息就越多,但同时计算量也就越大;增加数据长度可以获得更多的信息,提高了谱分析的分辨率,这是因为AR模型的谱估计隐含着对数据和自相关函数的外推,其长度可能会超过给定长度,分辨率不受信源信号的限制。
(2分别用Levinson递推法和Burg法进行功率谱分析①Levinson递推法运行程序后,观察图像,f1和f2相差较小时,功率谱变化更剧烈;模型的阶数越高,图像中能够获得的信息就越多,但同时计算量也就越大;增加数据长度可以获得更多的信息,提高了谱分析的分辨率,但本题中信号为正弦信号加白噪声,故图像观察不明显。
②Burg法运行程序后,观察图像,f1和f2相差较小时,功率谱变化更剧烈;模型的阶数越高,图像中能够获得的信息就越多,但同时计算量也就越大;增加数据长度可以获得更多的信息,提高了谱分析的分辨率。
(3改变信号的相位、频率、信噪比,上述谱分析结果有何变化如果正弦信号的频率过大,超过fs/2,会产生频率混叠现象,输入f1=600HZ,会在400HZ处产生一个波峰;降低信噪比会导致谱分辨率下降;信号起始相位的变动可导致谱线的偏移和分裂(我的图像观察不到。
最大熵法估计N=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,1plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.3,Nfft=256,Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*250*t; %0.25xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,2plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.25,Nfft=256,Oder=14';gridN=1024;Nfft=512; %修改数据长度512Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,3plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.3,Nfft=512,Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,24,Nfft,Fs; %修改阶数为24subplot(4,1,4plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.3,Nfft=256,Oder=24';GridBurg法估计N=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,1plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f2/fs=300,Nfft=256, Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*250*t; %0.25xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,2plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f2/fs=250,Nfft=256, Oder=14';gridN=1024;Nfft=512; %修改数据长度512Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,3plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f2/fs=300,Nfft=512, Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,24,Nfft,Fs; %修改阶数为24subplot(4,1,4plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f2/fs=300,Nfft=256, Oder=24';gridLevinson递推法N=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,14,Nfft,Fs;%[Pxx1,f]=Levinson(xn,14,Nfft,Fs;subplot(4,1,1plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f2/fs=0.3,Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*250*t; %0.25xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,14,Nfft,Fs;subplot(4,1,2plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f2/fs=0.25,Oder=14';gridN=1024;Nfft=512; %修改数据长度512Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,14,Nfft,Fs;subplot(4,1,3plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=512,f2/fs=0.3,Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,24,Nfft,Fs; %修改阶数为24subplot(4,1,4plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f2/fs=0.3,Oder=24';grid最大熵法改变信号的相位、频率、信噪比N=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,1plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.3,Nfft=256,Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t+pi/6; %相位加了pi/6x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,2plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.3,Nfft=256,Oder=14,相位加pi/6';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,5+x2+awgn(x2,5; %性噪比改为5[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,3plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f2/fs=0.3,Nfft=256,Oder=14,性噪比=5';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*300*t;x2=sin(2*pi*400*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pmem(xn,14,Nfft,Fs;subplot(4,1,4plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('MEM f1/fs=0.3,f2/fs=0.4,Nfft=256,Oder=14';gridBurg改变信号的相位、频率、信噪比N=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,1plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f2/fs=300,Nfft=256, Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t+pi/6; %相位加了pi/6x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,2plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f2/fs=300,Nfft=256, Oder=14,相位加pi/6'; gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*300*t;x2=sin(2*pi*400*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,3plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Burg f1/fs=300,f2/fs=400,Nfft=256, Oder=14'; gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,5+x2+awgn(x2,5; %性噪比改为5[Pxx1,f]=pburg(xn,14,Nfft,Fs;subplot(4,1,4plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB';title('Burg f2/fs=300,Nfft=256, Oder=14,性噪比=5';gridLevinson法改变信号的相位、频率、信噪比N=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,14,Nfft,Fs;%[Pxx1,f]=Levinson(xn,14,Nfft,Fs;subplot(4,1,1plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f2/fs=0.3,Oder=14';gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t+pi/6; %相位加了pi/6x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,14,Nfft,Fs;%[Pxx1,f]=Levinson(xn,14,Nfft,Fs;subplot(4,1,2plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f2/fs=0.3,Oder=14,相位加pi/6'; gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*300*t;x2=sin(2*pi*400*t; %0.3xn=x1+awgn(x1,10+x2+awgn(x2,10;[Pxx1,f]=pyulear(xn,14,Nfft,Fs;%[Pxx1,f]=Levinson(xn,14,Nfft,Fs;subplot(4,1,3plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f1/fs=0.3,f2/fs=0.4,Oder=14'; gridN=1024;Nfft=256;Fs=1000;n=0:N-1;t=n/Fs;x1=sin(2*pi*200*t;x2=sin(2*pi*300*t; %0.3xn=x1+awgn(x1,5+x2+awgn(x2,5; %性噪比位5[Pxx1,f]=pyulear(xn,14,Nfft,Fs;%[Pxx1,f]=Levinson(xn,14,Nfft,Fs;subplot(4,1,4plot(f,10*log10(Pxx1;xlabel('Frequency (Hz';ylabel('Power Spectrum (dB'; title('Levinson Nfft=256,f2/fs=0.3,Oder=14,性噪比=5'; grid。
基于Matlab实现现代功率谱估计
基于Matlab实现现代功率谱估计王春兴【摘要】功率谱估计可以分为经典谱估计和现代谱估计.现代谱的估计可建立AR 模型对离散信号进行谱估计、建立MA模型和ARMA模型进行谱估计.基于Matlab对三种模型进行仿真,并对结果进行了分析.结果显示,三种模型对现代谱的获得是有效的,并得到较好的谱估计.%Power spectrum estimation can be divided into classical spectral estimation and modern spectral estimation. Modern spectral estimation model can establish AR model, MA model and ARMA model for discrete signals to perform spectral estimation. These three models can be simulated based on Matlab, and the results are analyzed. The results show that the three models of modern spectrum are valid, and can get better spectrum estimation.【期刊名称】《现代电子技术》【年(卷),期】2011(034)016【总页数】3页(P65-67)【关键词】PSE;现代功率谱估计;AR模型法;ARMA【作者】王春兴【作者单位】山东师范大学物理与电子科学学院,山东济南250014【正文语种】中文【中图分类】TN911-34;G202随机信号在时域上是无限长的,在测量样本上也是无穷多的,因此随机信号的能量是无限的,应用功率信号来描述。
然而,功率信号不满足傅里叶变换的狄里赫莉绝对可积的条件,因此严格意义上随机信号的傅里叶变换是不存在的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AR模型的谱估计是现代谱估计的主要内容
AR模型的谱估计是现代谱估计的主要内容。
1.AR 模型的Yule—Walker方程和Levinson-Durbin递推算法:在MATLAB中,函数levinson和aryule都采用 Levinson-Durbin递推算法来求解AR模型的参数a1,a2,……,ap及白噪声序列的方差,只是两者的输入参数不同,它们的格式为:
A=LEVINSON(R,ORDER) A=ARYULE(x,ORDER)
两函数均为定阶ORDER的求解,但是函数levinson的输入参数要求是序列的自相关函数,而函数aryule的输入参数为采样序列。
下面语句说明函数levinson和函数aryule的功能是相同的:
例子:
randn('seed',0)
a=[1 0.1 0.2 0.3 0.4 0.5];
x=impz(1,a,20)+randn(20,1)/20;
r=xcorr(x,'biased');
r(1:length(x)-1)=[];
A=levinson(r,5)
B=aryule(x,5)
2.Burg算法:
格式为:A=ARBURG(x,ORDER); 其中x为有限长序列,参数ORDER用于指定AR
模型的阶数。
以上面的例子为例:
randn('seed',0)
a=[1 0.1 0.2 0.3 0.4 0.5];
x=impz(1,a,20)+randn(20,1)/20;
A=arburg(x,5)
3.改进的协方差法:
格式为:A=ARMCOV(x,ORDER); 该函数用来计算有限长序列x(n)的ORDER阶AR 模型的参数。
例如:输入下面语句:
randn('seed',0)
a=[1 0.1 0.2 0.3 0.4 0.5];
x=impz(1,a,20)+randn(20,1)/20;
A=armcov(x,5)
AR模型阶数P的选择:
AR 模型阶数P一般事先是不知道的,需要事先选定一个较大的值,在递推的过程中确定。
在使用Levinson—Durbin递推方法时,可以给出由低阶到高阶的每一组参数,且模型的最小预测误差功率Pmin(相当于白噪声序列的方差)是递减的。
直观上讲,当预测误差功率P达到指定的希望值时,或是不再发生变化时,这时的阶数即是应选的正确阶数。
因为预测误差功率P是单调下降的,因此,该值降到多少才合适,往往不好选择。
比较常见的准则是:
最终预测误差准则:FPE(r)=Pr{[N+(r+1)]/ [N-(r+1)]}
信息论准则:AIC(r)=N*log(Pr)+2*r
上面的N为有限长序列x(n)的长度,当阶数r由1增加时,FPE(r) 和AIC(r)都将在某一r处取得极小值。
将此时的r定为最合适的阶数p。
MATLAB中AR模型的谱估计的函数说明:
1. Pyulear函数:
功能:利用Yule--Walker方法进行功率谱估计.
格式: Pxx=Pyulear(x,ORDER,NFFT)
[Pxx,W]=Pyulear(x,ORDER,NFFT)
[Pxx,W]=Pyulear(x,ORDER,NFFT,Fs)
Pyulear(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)
说明:Pxx =Pyulear(x,ORDER,NFFT)中,采用Yule--Walker方法估计序列x
的功率谱,参数ORDER用来指定AR模型的阶数,NFFT为FFT算法的长度,默
认值为256,若NFFT为偶数,则Pxx为(NFFT/2 + 1)维的列矢量,若NFFT为奇数,则Pxx为(NFFT + 1)/2维的列矢量;当x为复数时,Pxx长度为NFFT。
[Pxx,W]=Pyulear(x,ORDER,NFFT)中,返回一个频率向量W.
[Pxx,W]=Pyulear(x,ORDER,NFFT,Fs)中,可以在F向量得到功率谱估计的频率点,Fs指定采样频率。
Pyulear(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)中,直接画出功率谱估计的曲线图。
2. Pburg函数:
功能:利用Burg方法进行功率谱估计。
格式:Pxx=Pburg(x,ORDER,NFFT)
[Pxx,W]=Pburg(x,ORDER,NFFT)
[Pxx,W]=Pburg(x,ORDER,NFFT,Fs)
Pburg(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)
说明:Pburg函数与Pyulear函数格式相同,只是计算AR模型时所采用的方法
不同,因此格式可以参照Pyulear函数。
3. Pcov函数:
功能:利用协方差方法进行功率谱估计。
格式:Pxx=Pcov(x,ORDER,NFFT)
[Pxx,W]=Pcov(x,ORDER,NFFT)
[Pxx,W]=Pcov(x,ORDER,NFFT,Fs)
Pcov(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)
说明:Pcov函数采用协方差法估计AR模型的参数,然后计算序列x的功率谱。
协方差法与改进的协方差法相比,前者仅令前向预测误差为最小,其他步骤是一样的。
:Pcov函数与Pyulear函数格式相同,只是计算AR模型时所采用的方
法不同,因此格式可以参照Pyulear函数.
4.Pmcov:
功能:利用改进的协方差方法进行功率谱估计。
格式:Pxx=Pmcov(x,ORDER,NFFT)
[Pxx,W]=Pmcov(x,ORDER,NFFT)
[Pxx,W]=Pmcov(x,ORDER,NFFT,Fs)
Pmcov(x,ORDER,NFFT,Fs,RANGE,MAGUNITS)
例如:输入下面语句:
figure 8.10--8.11
Fs=1000; %采样频率
n=0:1/Fs:3;
xn=cos(2*pi*n*200)+randn(size(n));
%设置参数
order=20;
nfft=1024;
%Yule-Walker方法
figure(1)
pyulear(xn,order,nfft,Fs);
%Burg方法
figure(2)
pburg(xn,order,nfft,Fs);
%协方差法
figure(3)
pcov(xn,order,nfft,Fs);
%改进协方差方法
figure(4)
pmcov(xn,order,nfft,Fs);
AR谱的分辨率:
经典谱估计的分辨率反比与信号的有效长度,但是现代谱估计的分辨率可以不受此限制. 这是因为对于给定的N点有限长序列x(n),虽然其估计出的相关函数也是有限长的,但是现代谱估计的一些方法隐含着数据和自相关函数的外推,使其可能的长度超过给定的长度,因而AR谱的分辨率较高。
例如:序列x(n)由两个正铉信号组成,其频率分别为f1=20Hz和f2=21Hz,并含有一定的噪声量。
试分别用周期图法,Burg方法与改进的协方差法估计信号的功率谱,且AR模型的阶数取30和50两种情况讨论。
上面的例子可以通过下面程序实现:
Fs=200;
n=0:1/Fs:1;
xn=sin(2*pi*20*n)+sin(2*pi*21*n)+0.1*randn(size(n));
window=boxcar(length(xn));
nfft=512;
[Pxx,f]=periodogram(xn,window,nfft,Fs);
figure(1)
plot(f,10*log10(Pxx)),grid
xlabel('Frequency(Hz)')
ylabel('Power Spectral Density(dB/Hz)')
title('Periodogram PSD Estimate')
order1=30;
order2=50;
figure(2)
pburg(xn,order1,nfft,Fs)
figure(3)
pburg(xn,order2,nfft,Fs) figure(4)
pmcov(xn,order1,nfft,Fs) figure(5)
pmcov(xn,order1,nfft)。