现代信号处理 10 - 自适应应用与LMS变种

Posted Ciaran-byte

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了现代信号处理 10 - 自适应应用与LMS变种相关的知识,希望对你有一定的参考价值。

自适应应用与LMS变种

1. 自适应应用的基本框架

  如果信号处理中没有自适应的话,我们的框架是这样的。输入一个信号Z,经过滤波器,得到信号Y。

  但是现在的问题是Z是随时变的,Y也是随时变的,一个固定的滤波器没有办法解决问题。因此我们引入了自适应模块。

  引入了自适应模块以后,通过滤波器以后得到的估计就不一定是最优估计了,我们与真实值进行比较,得到了误差e,然后把误差送人自适应滤波器中,得到一个新的系数ω,从而调整滤波器,通过不断的对滤波进行更新,使得最终的误差变小。

  误差大的原因主要来自于两个方面,一方面可能是滤波器还没用调整好,训练时间不够。另一方面是因为数据Z在不断的变动,即使这样,也不代表之前训练的数据没有用,基于前面的数据进行调整,才能够得到更好的结果。

2. 自适应滤波与机器学习

  自适应滤波的思想与机器学习极其的相似。

  比如我们现在产生了一个误差,我们是通过误差去驱动自适应的,这个在机器学习中就是监督学习。监督学习就必须要给标准答案。监督学习的结果与标准答案之间会产生误差,通过误差来驱动学习,就是监督学习。

  如果还没训练好,还在不断的对滤波器进行调整,这个在机器学习中就是训练。

  调整好了,但是我们发现信号变了,我们需要去追踪信号的变化,这个在机器学习中就叫做迁移学习。比如我们做机器学习的时候,先去github先去找找open source的东西,看看有没有现成的model,然后以这个为基础和初值,继续训练,训练它没有训练过的东西,就叫做迁移学习。这就相当于在已经调整好的滤波器的基础上,去跟踪新信号的变化。

Error-Driver ⇒  Supervised Learning Adaptive Adjustment ⇒  Training Tracking Variation ⇒ Transfert Learning \\textError-Driver \\Rightarrow \\text Supervised Learning \\\\ \\textAdaptive Adjustment \\Rightarrow \\text Training \\\\ \\textTracking Variation \\Rightarrow \\textTransfert Learning Error-Driver Supervised LearningAdaptive Adjustment TrainingTracking VariationTransfert Learning

3. 自适应思想的应用

  自适应的根本就是在改变输入和输出的方式。

3.1 预测

  第一种应用,就是预测。

  信号Zn作为输入,正常输出就是Y,另一边,对信号进行延时,通过构造预测器,产生预测信号\\hat Y,与真值进行比较,得到误差,根据这个误差进行自适应,从而调整预测器。

  信号预测最重要的应用是做语音编码。前面讲过线性预测编码,通过莱文森迭代和维纳滤波来实现,但是要求系统必须是平稳的。而使用自适应滤波的方法,就没有平稳性的限制了。

3.2 系统辨识

  有一个等待辨识的系统,输入一个Z,输出是Y。我们构造一个系统的模板,自己实现一个系统,让他去接近与我们需要辨识的系统。可能与需要辨识的系统不一样,但是只要输入输出是一致的就行。

  我们的系统也会输出一个Y,两者进行比较,得到误差e,就可以让我们来自适应了,通过输入和误差,调整我们设计的系统。

  系统辨识的最主要的应用在自适应控制上。如果我们想对系统进行有效的控制,我们首先要做的就是被控制的系统是什么样子的。

  知道了控制系统是什么样子,才能够根据输出推断输入控制量是什么样子的。

3.3 逆滤波

  信号通过一个变化,又引入了一些噪声,通过滤波器,输出一个信号。然后我们试图用滤波以后的信号去恢复原始的信号,利用恢复过程中产生的误差去做自适应,调整滤波器。

  逆滤波是把被污染了、被畸变过的信号作为输入,试图去把这个信号进行恢复。

  逆滤波的应用就是通信。通信在信道发送的过程中,就会发生畸变,我们希望把这种畸变消除掉。这种操作就叫做均衡。

  因为信道很难是平稳不变的,因此一定有自适应的需求。移动通讯中,信道的均衡技术是核心技术。

3.4 干扰消除

  我们有一个信号和噪声的信号,我们又有一个驱动信号。

  我们试图以驱动信号作为起点,构造消除器。

  消除器信号与信号和噪声信号进行比较,得到的误差进行自适应。

  消除器是为了把信号和噪声复现出来。最终的输出会把这个复现的信号减掉,这样的话,其他的信号里面就没有这部分了。

  这个应用就是回声抵消。我们希望能够在电话系统中,复制出回声,然后把它减去。

4. LMS的变种

4.1 从步长角度考虑的变种

4.1.1 步长的重要性

ω ( k + 1 ) = ω ( k ) + μ Z ( k ) e ( k ) \\omega(k+1) = \\omega(k) + \\mu Z(k)e(k) ω(k+1)=ω(k)+μZ(k)e(k)

  在自适应滤波器中,我们通过输入和误差构建搜索方向,但是另外一个问题就是,步长怎么选。

  我们在前面其实已经得到了步长的限制条件了,因为我们有收敛的条件,所以要求底数小于1,因此就可以得到

0 < μ < 2 λ m a x 0 < \\mu < \\frac2\\lambda_max 0<μ<λmax2

  步长的这个限制条件是下式得到的。

( 1 − μ λ k ) n (1-\\mu \\lambda_k)^n (1μλk)n

  实际上,我们在选择步长的时候,不能太大,大了不满足限制条件。同时也不能太小,太小的话,一方面搜索速度满,另外一方面,有可能陷入局部极小值。

  不收敛的意思有两种,一种是反复震荡,震荡幅度很大,步长太大可能存在这个问题。两个一种不收敛是指不收敛到我们需要的极值,步长小可能会出现这个问题,进入局部极小的坑里,就很难出来。

4.1.2 归一化LMS

4.1.2.1 概述

  实际上,关于自适应滤波器,有些人的观点认为,其步长也应该是自适应的,应该根据输入数据去调整步进值。

  于是就有了这样的式子

ω ( k + 1 ) = ω ( k ) + 1 ∑ i = 1 N Z i 2 ( k ) Z ( k ) e ( k ) \\omega(k+1) = \\omega(k) + \\frac1\\sum_i=1^N Z_i^2(k) Z(k)e(k) ω(k+1)=ω(k)+i=1NZi2(k)1Z(k)e(k)

  这个式子中,我们把步长和输入数据联系到了一起,当输入数据比较长的时候,步子就比较小;当输入数据比较短的时候,步长就比较大。也就相当于实现了步长的自适应。这个LMS叫做归一化的LMS。

ω ( k + 1 ) = ω ( k ) + Z ( k ) ∑ i = 1 N Z i 2 ( k ) e ( k ) \\omega(k+1) = \\omega(k) + \\frac Z(k)\\sum_i=1^N Z_i^2(k)e(k) ω(k+1)=ω(k)+i=1NZi2(k)Z(k)e(k)

4.1.2.2 感性理解

  我们先从感性上来理解这个式子在做什么。我们知道,误差e其实是个标量,也就是说,优化的方向只与Z有关,我们希望Z代表优化方向,e代表优化大小。因此,我们有理由要求Z是一个归一化的方向向量,我们不希望Z是个有大小的向量。本来我们的愿望是,希望步长也是个自适应的,但是我们有更好的选择,我们直接让Z除以他的模做归一化就好了。

4.1.2.3 公式证明

  我们再来从数据公式上对归一化的LMS进行证明。因为我们对步长有这样的要求,首先希望他尽可能小,不然会不收敛;然后,我们也希望步长不能太小,否则就会原地踏步。

  为了使得步子足够小,我们有这样的目标函数

ω ( k ) ⇒ ω ( k + 1 ) m i n ( ω ( k + 1 ) − ω ( k ) ) 2 \\omega(k) \\Rightarrow \\omega(k+1) \\\\ min(\\omega(k+1)-\\omega(k))^2 ω(k)ω(k+1)min(ω(k+1)ω(k))2

  为了不固步自封,我们增加一个约束条件

m i n ( ω ( k + 1 ) − ω ( k ) ) 2 s . t . ω ( k + 1 ) T Z ( k ) = d ( k ) min(\\omega(k+1)-\\omega(k))^2 \\\\ s.t. \\quad \\omega(k+1)^T Z(k) = d(k) min(ω(k+1)ω(k))2s.t.ω(k+1)TZ(k)=d(k)

  这个约束条件的意思是这样的。我们计算出来一个新的权重,但是新的数据还没到来,我们就要求这个新计算得到的权,能够对老数据进行线性组合,得到对目标的估计。也就是要求新产生的方向,能够在当前数据和目标的基础上得到满足。

  我们来计算条件极值,在约束条件下,极小化均方误差。因为我们希望得到的结果是个+号项,所以这里求条件极值的时候写了个-λ。

L ( ω ( k + 1 ) , λ ) = ∣ ∣ ω ( k + 1 ) − ω ( k ) ∣ ∣ 2 − λ ( ω ( k + 1 ) T Z ( k ) − d ( k ) ) = ω T ( k + 1 ) ∗ ω ( k + 1 ) − 2 ∗ ω T ( k + 1 ) ∗ ω ( k ) + ω T ( k ) ∗ ω ( k ) − λ ( ω ( k + 1 ) T Z ( k ) − d ( k ) ) L(\\omega(k+1),\\lambda) = ||\\omega(k+1) - \\omega(k)||^2 - \\lambda(\\omega(k+1)^T Z(k)-d(k)) \\\\ = \\omega^T(k+1)* \\omega(k+1) - 2*\\omega^T(k+1)* \\omega(k) + \\omega^T(k)*\\omega(k)- \\lambda(\\omega(k+1)^T Z(k)-d(k)) L(ω(k+1),λ)=ω(k+1)ω(k)2λ(ω(k+1)TZ(k)d(k))=ωT(k+1)ω(k+1)2ωT(k+1)ω(k)+ωT(k)ω(k)λ(ω(k+1)TZ(k)d(k))

  求导

∇ ω k + 1 L = 2 ∗ ω ( k + 1 ) − 2 ∗ ω ( k ) − λ Z ( k ) = 0 ω ( k + 1 ) = ω ( k ) + λ 2 Z ( k ) \\nabla _\\omega_k+1 L = 2* \\omega(k+1) - 2* \\omega(k) -\\lambda Z(k) = 0 \\\\ \\omega(k+1) = \\omega(k) + \\frac\\lambda2 Z(k) ωk+1L=2ω(k+1)2ω(k)λZ(k)=0ω(k+1)=以上是关于现代信号处理 10 - 自适应应用与LMS变种的主要内容,如果未能解决你的问题,请参考以下文章

现代信号处理 11 -递归最小二乘

变步长LMS自适应滤波算法的MATLAB程序

基于LMS算法的自适应滤波

信号去噪基于低通和自适应滤波LMS去噪matlab源码

滤波器最小均方(LMS)自适应滤波器

滤波器最小均方(LMS)自适应滤波器