2.2.3 RLS算法的参数分析
; ; (n):增益向量; :遗忘因子。在RLS算法中遗忘因子是一个接近1但是小于1的正数,一般来说介于0.95到1之间。使用遗忘因子的目的在于把接近目前时间点的信息乘上越大的权值,而离目前时间点越远的信息乘上越小的权值,也就是说,我们重视较近时间点的信息甚与较远时间点的信息。若等于1,则表示对所有的信息都一样,其权值都是相同的。
2.2.4 RLS算法Matlab仿真分析
图2.2.4.1
上图分别为输入信号,输出信号和误差信号的曲线,可以看出输出信号在经过一段时间的自适应调整后,便能基本达到跟踪,滤波的效果。从误差信号曲线也可以看出这点,误差输出经过一段时间就趋于稳定。
图2.2.4.2
上图为误差平方的均值曲线,大约在t=300时,误差趋于收敛,系统完成自适应过程。
以上就是围绕对RLS算法的分析,着重讨论了RLS算法推导,具体实现的相关公式以及运用matlab软件对其进行仿真。
2.2.5 RLS算法与LMS算法的比较分析
RLS算法能够在很短的时间内就趋于收敛,而LMS算法则有一个比较长的渐变过程,所以RLS的跟踪性能要优于LMS,这可以从图2.1.5.1和图2.2.4.1看出。换句话说,RLS比LMS的收敛速度要快。可以通过下图看出:
上图蓝色是LMS收敛曲线,红色为RLS收敛曲线。可以看出明显RLS收敛性要优于LMS算法。
而且LMS在收敛后波形还有较大波动,而RLS就要小的多,基本没有波动,这说明RLS的稳态误差也是小于LMS的,从图2.1.5.3和图2.2.4.2可以看出。但是由于LMS计算量简单,适合于硬件实现,这是RLS无法相比的。所以二者各有优劣。(以上LMS和RLS算法仿真均采用相同的外界信号及采样时间点)
2.3 归一化LMS算法(NLMS)
2.3.1 NLMS算法实现
值重新定义,让 值会随输入信号之正规化作改变,能提升收敛的稳定性。下面为NLMS算法实现所需的计算式: ; :很小的正常数,一般取 =1e-10。 值。下图为NLMS算法的流程图:
SHAPE \* MERGEFORMAT
SHAPE \* MERGEFORMAT2.3.2 NLMS算法的Matlab仿真分析
图(2.3.2.1)
图(2.3.2.2)
由图2.3.2.1和图2.3.2.2可以看出NLMS算法的自适应滤波过程及误差收敛情况,而且相比LMS算法在相同条件下,NLMS算法要比LMS算法收敛更快一些。这是因为NLMS算法的计算量与LMS相当,但是由于NLMS算法的收敛条件与输入信号的特征值无关,故NLMS算法比LMS算法的收敛速率快。
下图可以看出二者收敛的差别:
图4.2.3 LMS的误差收敛
图4.2.4 NLMS的误差收敛
LMS算法中大约在t=600时开始收敛,而NLMS则是在大约t=400时开始收敛。明显NLMS的收敛速度要快与LMS。