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模型阶次的选择及实验设计