本文首发在我的个人博客:宅到没朋友,欢迎大家来玩!
1.最小二乘算法简介
最小二乘算法基于确定性思想,该算法讨论怎样根据有限个观测数据来寻找滤波器的最优解,即求如下图这样具有M个抽头的横向滤波器的最优权向量。
最小二乘算法的目的就是通过最小化误差向量
e
J=∥e
w
由于:
e
其中:
由此可以得到:
J=∥e∥2=eHe=(b?Aw)H(b?Aw)
化简得:
J=bHb?bHAw?wHAHb+wHAHAw
要求
J的最小值,首先要得到
J关于
w的梯度:
▽J=?2AHb+2AHAw
再令
▽J=0得:
AHAw^=AHb(1)
上式被称为确定性正则方程。
当
MAHAA^{H}A
AHA是非奇异(可逆)的,则可以得到确定性正则方程的解:
w^=(AHA)?1AHb(2)
上式也被称为最小二乘
(LS)解。
估计向量
b^=Aw被称为对期望响应向量
b的最小二乘估计,简称
LS估计。
2.递归最小二乘
(RLS)算法
在(2)式中,涉及矩阵
AHA的求逆运算,运算量较大,递归最小二乘
(RLS)算法就是用迭代算法代替矩阵求逆达到降低运算量的目的。
将数据矩阵
AH做如下扩展:
AH=??????u(1)0?0?u(2)u(1)?0??????u(M)u(M?1)?u(1)??????u(N)u(N?1)?u(N?M+1)???????
将期望向量
b做如下扩展:
b=[d(1)d(2)?d(M)?d(N)]
定义输入数据数据的时间相关矩阵:
Φ(N)=AHA=i=1∑N?u(i)uH(i)
定义时间互相关向量为
z(N)=AHb=i=1∑N?u(i)d?(i)
于是,如式(1)所示的确定性正则方程变成下式:
Φ(N)w^=z(N)(3)
(3)式就是N时刻的确定性正则方程。
将N时刻变为任意时刻n,并引入遗忘因子
λ(0<λ≤1),则
Φ、
z和(3)式变成如下所示:
Φ(n)=i=1∑n?λn?iu(i)uH(i)+δλnI
z(n)=i=1∑n?λn?iu(i)d?(i)
Φ(n)w^=z(n)
注:
Φ(n)中引入
δλnI是为了使
Φ(n)可逆。
令
P(n)=Φ?1(n),接下来需要的事情就是求出
w^的迭代公式,推导过程较为繁琐,在此不再展开,直接给出最后的迭代公式。
w^(n)=w^(n?1)+k(n)ξ?(n)
其中:
k(n)=1+λ?1uH(n)P(n?1)u(n)λ?1P(n?1)u(n)?
ξ(n)=d(n)?w^(n?1)u(n)
P(n)=λ?1P(n?1)?λ?1k(n)uH(n)P(n?1)
可以看到
w^(n)迭代式中的变量
P(n)、k(n))、ξ(n)都是可以迭代求解的。
2.1
(RLS)算法步骤
1. 初始化:
P(0)=δI,δ是小正数
w^(0)=0
λ取接近于1
2.
n=1,2,?,N时,做如下迭代运算:
k(n)=1+λ?1uH(n)P(n?1)u(n)λ?1P(n?1)u(n)?
ξ(n)=d(n)?w^(n?1)u(n)
w^(n)=w^(n?1)+k(n)ξ?(n)
P(n)=λ?1P(n?1)?λ?1k(n)uH(n)P(n?1)
3. 令
n=n+1,重复步骤2。
2.2 算例
考虑一阶
AR模型
u(n)=?0.99u(n?1)+v(n)的线性预测。假设白噪声
v(n)的方差为
σv2?=0.995,使用抽头数为
M=2的
FIR滤波器,用
RLS算法实现
u(n)的线性预测,选择遗忘因子
λ=0.98。
2.3
Matlab仿真结果
可以看到
RLS算法收敛的速度很快,收敛特性相当好。
2.4
Matlab源码下载
点此下载源码!
欢迎搜索并关注微信公众号“工科南”。