AR模型谱估计
跟卡尔曼滤波挺像的,实际用的比卡尔曼滤波少
AR(自回归)模型
AR模型适用于平稳、宽平稳的随机序列,是一个差分方程模型。
可以认为是一个带微扰的马尔可夫过程。一个最简单的例子是单摆。一些不满足平稳条件的事件,AR模型的分析效果是很差的(如股票预测)
从时域讨论稳定参见时间序列的自回归模型—从线性代数的角度来看, 当Y-W方程的系数矩阵正定时,传递函数的极点在单位圆内,模型稳定。
AR模型及功率谱的估计
主要有前向预测的L-D法,Burg法,Marple法,矩阵分解等算法,此外还有极大似然估计等估计方法。
Burg算法和Marple算法都是求前向预测和后向预测误差之和最小,Burg算法较为常用。Marple算法很容易受噪声影响导致不稳定。
Burg算法对于高斯随机过程等价于最大熵算法
AR功率谱估计可以突破较短序列由于序列长度N过短对于频率分辨率的限制。经典谱估计的频率分辨率约为
$$\Delta f={fs \over N}$$
AR法通过前向和后向预测外推,突破了短序列长度N的限制(N点长序列相当于长序列加窗,频率分辨率受限于主瓣宽度)。但是AR法仍然无法突破奈奎斯特采样定理$\frac{fs}{2}$的限制。要想突破采样定理,只有在特定的条件下采用压缩感知等方法改变采样方式,如磁共振重建。
几种功率谱估计的比较
- 算法复杂度
L-D 算法计算量约为直接解Y-W方程的一半
Marple算法复杂,计算量大 - 效果
L-D算法
1)一定收敛
2误差较大;
3)预测均方随阶数增加而减小
4)可能出现谱线分裂
5)受阶数影响大,阶数过高有伪峰。
Burg算法
1)在有限长情况下好于前向预测
2)对于高斯随机信号,AR谱估计和最大熵算法效果相同
3)易受初相的影响产生频率偏移
Marple算法
1)通常性能最好,分辨率最高
2)可能会不稳定
3)基本上克服了谱线分裂、频率偏移和出现伪峰等缺点
函数包
这些算法基本都有成熟的工具包
比如matlab中:
- pyulear.m 用AR模型的自相关法估计信号的功率谱,其基本调用格式是:
[Px, F] = pyulear(x, order, Nfft, Fs) - pburg.m 用AR模型的Burg算法估计信号的功率谱,调用格式与pyulear类似
- pcov.m 用AR模型方差方法估计信号的功率谱
- pmcov.m 用AR模型的改进的方差方法估计信号的功率谱
- pmem.m 最大熵功率谱估计,其估计性能类似pyulear
- pmusic.m 用自相关矩阵分解的MUSIC算法估计信号的功率谱
- peig.m 用自相关矩阵分解的特征向量
法估计信号的功率谱,其基本调用格式是:
[Px, F] = peig(x, order, Nfft, Fs),
[Px, F,V, E] = peig(x, order, Nfft, Fs),
x :信号向量,order:模型的阶次,Fs:抽样频率,Nfft:对x作FFT时的长度。Px:估计出的功率谱,F是频率轴坐标。对peig, 输出的E 是由自相关矩阵的特征值所组成的向量,V是由特征向量组成的矩阵。V的列向量张成了噪声子空间,V的行数减去列数即是信号子空间的维数。 - 直接得到模型有aryulear、arburg等函数,用法:
arburg(x,order)