MATLAB中AR模型功率谱估计中AR阶次估计的实现

(最近看了几个关于功率谱的问题,有关AR模型的谱估计,在此分享一下,希望大家不吝指正)

(声明:本文内容摘自我的毕业论文——心率变异信号的预处理及功率谱估计)

(按:AR模型功率谱估计是对非平稳随机信号功率谱估计的常用方法,但是其模型阶次的估计,除了HOSA工具箱里的arorder函数外,没有现成的函数可用,arorder函数是基于矩阵SVD分解的阶次估计方法,为了比较各种阶次估计方法的区别,下面的函数使用了'FPE', 'AIC', 'MDL', 'CAT'集中准则一并估计,并采用试验方法确定那一个阶次更好。)

………………………………以上省略……………………………………………………………………

假设原始数据序列为x,那么n阶参数使用最小二乘估计在MATLAB中实现如下:

复制内容到剪贴板

代码:

Y = x;

Y(1:n) = [];

m = N-n;

X = [];% 构造系数矩阵

for i = 1:m

for j = 1:n

X(i,j) = xt(n+i-j);

end

end

beta = inv(X'*X)*X'*Y';

beta即为用最小二乘法估计出的模型参数。

此外,还有估计AR模型参数的Yule-Walker方程法、基于线性预测理论的Burg算法和修正的协方差算法等[26]。相应的参数估计方法在MATLAB中都有现成的函数,比如aryule、arburg以及arcov等。

4.3.3 AR模型阶次的选择及实验设计

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐