b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

自适应滤波:递归最小二乘

电脑杂谈  发布时间:2020-03-11 21:02:30  来源:网络整理

递归最小二乘_小二上酒 小二上酒 两声招呼之间_jquery递归递归调用

【读书笔记12】

前言

西蒙.赫金的《自适应滤波器原理》第四版第九章:递归最小二乘(Recursive least squares, RLS)。记得看完第一章之后,半个月没有碰这本书,后来想着开了个头递归最小二乘,还是该发现第十章的卡尔曼滤波才好,前前后后又花了半个月,总算见到了第九章。回头看看,静下心来递归最小二乘,确实容易理清思路,也学到不少知识。虽然前路漫漫,编程水平不够、机器学习的理论还没多少概念、算法基础没多少、收入也更微薄......不过还是该表扬一下自己。既然选择了道路,自己而是该耐心走下去,哪怕上不了山顶,也该看看高处的风景。

言归正传,本文主要包括:

1)RLS原理介绍;

2)RLS应用示例;

内容为自己的学习记录,其中多有借鉴对方的地方,最后一并给出链接。

一、RLS原理介绍

A-问题描述

考虑指数加权的优化问题:

jquery递归递归调用_递归最小二乘_小二上酒 小二上酒 两声招呼之间

$0 < \lambda \le 1$为遗忘因子,这里只讨论平稳情况,取$\lambda = 1$。

从而得到最优解:

其中:

可以看到,$\lambda = 1$对应的就是最小二乘思想。回头看看之前分析的LMS以及NLMS,用的是随机梯度下降的思想,这是RLS与LMS很明显的不同点。

由于$x(i)$、$y(i)$时刻在变换,最优解如何升级呢?

B-迭代更新

首先给出文中用到的矩阵求逆引理:

递归最小二乘_jquery递归递归调用_小二上酒 小二上酒 两声招呼之间

矩阵求逆引理:

定义逆矩阵:

利用矩阵求逆引理:

其中$k(n)$称为增益向量,由上式得出:

借助迭代:

可以得到权重的升级公式:

jquery递归递归调用_小二上酒 小二上酒 两声招呼之间_递归最小二乘

其中为估计误差:

至此实现RLS的整个步骤。

二、RLS应用示例

A-算法方法

结合上文的推论,给出RLS的迭代步骤:

步骤一:初始化

其中$\delta $为更小的正数,如1e-7;

步骤二:迭代更新

递归最小二乘_小二上酒 小二上酒 两声招呼之间_jquery递归递归调用

B-代码应用

给出主要代码,可以结合前文的LMS/NLMS对比分析:

function [e,w]=rls(lambda,M,u,d,delta)
% recursive least squares,rls.
% Call:
% [e,w]=rls(lambda,M,u,d,delta)
%
% Input arguments:
% lambda = constant, (0,1]
% M = filter length, dim 1x1
% u = input signal, dim Nx1
% d = desired signal, dim Nx1
% delta = constant for initializaton, suggest 1e-7.
%
% Output arguments:
% e = estimation error, dim Nx1
% w = final filter coefficients, dim Mx1
% Step1:initialize
% 2017-4-4 14:34:33, Author: Gui
w=zeros(M,1);
P=eye(M)/delta;
u=u(:);
d=d(:);
% input signal length
N=length(u);
% error vector
e=d.';
% Step2: Loop, RLS
for n=M:N
    uvec=u(n:-1:n-M+1);
    e(n)=d(n)-w'*uvec;
    k=lambda^(-1)*P*uvec/(1+lambda^(-1)*uvec'*P*uvec);
    P=lambda^(-1)*P-lambda^(-1)*k*uvec'*P;
    w=w+k*conj(e(n));
end

给出应用:

[s, fs, bits] = wavread(filename);          
s=s-mean(s);                           
s=s/max(abs(s));                       
N=length(s);                            
time=(0:N-1)/fs;                       
clean=s';
ref_noise=.1*randn(1,length(s));
mixed = clean+ref_noise;
mu=0.05;M=2;espon=1e-4;
% [en,wn,yn]=lmsFunc(mu,M,ref_noise,mixed);
% [en,wn,yn]=nlmsFunc(mu,M,ref_noise,mixed,espon);
delta = 1e-7;
lambda = 1;
[en,w]=rls(lambda,M,ref_noise,mixed,delta);

对应结果图:

可以看出不像NLMS/LMS有一个慢速收敛的过程,RLS在起初阶段就受到较多的降噪。

C-与LMS对比

与LMS对比,可以观察到RLS的几点特征:

参考:


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-143826-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 吹牛大王
        吹牛大王

        当然来鬼城的难民是限制条件的

      热点图片
      拼命载入中...