今天用Kalman来求线性预测模型的系数,和LMS一对比,天啦噜,我感叹了半小时...
和LMS需要选合适的步长,样本序列需要足够长,迭代次数需要足够多,相比,卡尔曼真是帅呆了!不需要步长!不需要蒙特卡罗若干次!不需要1000个以上样本点!精度还是比LMS高!LMS默默地擦了擦汗...
先说一下问题背景。起源都是维纳滤波,如何根据一串输入u(n)和期望响应d(n)来求滤波器系数,使得输出和期望响应的均方误差最小。
当期望响应为u(n),输入为u(n-1)\u(n-2)\...u(n-M)时,就是所谓的线性预测问题。
在已知输入信号的二阶统计量p和R的情况下,最速下降就可以求系数,也不需要输入信号;但这样输入就没体现作用(输入的变化),为了让输入的存在感更强点,就自己算自相关矩阵R和互相关矩阵p,于是LMS就这样来了。
Kalman其实还是维纳滤波。在线性预测问题上,状态向量是滤波器系数,观测量是输入序列,kalman的最大优势是它的步长是自适应的,不需要人为选择
【关于LMS其实有很多改进版本,有一个归一化LMS(对输入归一化),观察它的迭代公式会发现,其实也是kalman的低配版】