了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:自适应滤波器

2023-05-16

--neozng1@hnu.edu.cn

自适应滤波

自适应滤波以前述的wiener filter为基础,这里我们也从统计与优化和控制理论两个角度来介绍它,顺着上一篇介绍维纳滤波器的文章的思路继续进行推导。

  • 统计与优化

    前述的wiener filter在求取最优解的时候受到的限制很多,不仅要求噪声和目标信号的统计特性已知,还需要采集无限时间的信号序列(从零到正无穷)后以得到最优解,而在实际情况下我们一般利用一段时间内的信号序列对 ω o \omega_o ωo做出无偏估计。不过,这也只是权宜之计。首先倘若要对序列信号进行实时处理,采集一段时间这个要求就无法满足。其次若对信号和噪声的统计特性完全未知甚至它们是非平稳态的,那么问题相当于无解。

    不过,我们可以从维纳滤波器的近似求解中看出一些蛛丝马迹:利用一小段时间内的信号对误差的期望进行最小化,如果再对这个结果进行推广,缩小这个“一小段时间”的长度进行估计并保存这次的结果,认为是当前最佳同时在稍后进行迭代,不再追求最优解而是尽量消除噪声并尽可能快速的收敛,不也是一种很好的方法吗?

    那要怎么才能知道 ω \omega ω要如何更新呢?对于全局最优解,我们要求一个 ω \omega ω使得下式为零:
    ▽ = ∂ L ∂ ω T = E { − 2 y ( n ) x ( n ) + 2 x ( n ) T x ( n ) ω } \bigtriangledown =\frac{\partial{L}}{\partial{\omega^T}}=E\{-2y(n)x(n)+2x(n)^Tx(n)\omega\} =ωTL=E{2y(n)x(n)+2x(n)Tx(n)ω}
    并且之前我们已经得到,我们要优化的误差函数拥有很好的性质:它是一个凸函数,其上没一点的梯度都指向最优解!很直觉的想法就是,我们让 ω \omega ω每次往最优解迭代若干步,即 ω t + 1 = ω t − k ∂ L ∂ ω t \omega_{t+1}=\omega_t-k\frac{\partial{L}}{\partial{\omega_t}} ωt+1=ωtkωtL,其中k为调制因子(学习率),这不就是梯度下降法吗!如果在每一次采集完成后都进行数据更新,就成为了随机梯度下降法。很多的优化问题如果无法一次性求解,往往会诉诸迭代的解法,逐步逼近最终的解。对于极限情况,我们每采集一次数据就进行一次参数估计,即每一步都更新 ω \omega ω

    不过这里还有一个问题亟待解决,要计算处代价函数上某一点的梯度,还是需要输入信号和原信号的一些统计特性,因此我们让代价函数就等于误差向量,认为当前的样本的损失可以替代总损失。学习过优化或者神经网络的朋友应该对此应该不陌生了,那么求梯度就有:
    ▽ J ^ = ∂ e ( n ) 2 ∂ ω ( n ) = ∂ [ y ( n ) − y ^ ( n ) ] 2 ∂ ω ( n ) = − 2 [ y ( n ) − y ^ ( n ) ] ⋅ ∂ y ( n ) ^ ∂ ω ( n ) = − 2 e ( n ) x ( n ) (2) \hat{\bigtriangledown J}=\frac{\partial{e(n)^2}}{\partial\omega(n)}=\frac{\partial[{y(n)-\hat{y}(n)}]^2}{\partial\omega(n)}=-2[{y(n)-\hat{y}(n)}]\cdot\frac{\partial{\hat{y(n)}}}{\partial\omega(n)}=-2e(n)x(n)\tag{2} J^=ω(n)e(n)2=ω(n)[y(n)y^(n)]2=2[y(n)y^(n)]ω(n)y(n)^=2e(n)x(n)(2)
    其实也就是把式(1)中的后半部分用 y ^ ( n ) x ( n ) \hat{y}(n)x(n) y^(n)x(n)代替然后用结合律和前半部分相消(当然这种视角不太严谨,比较直觉,因为矩阵乘法没对齐,时间戳也不是对应的)。

    所以我们只需要之前的 ω \omega ω加上当前梯度乘上一个系数就可以达到参数更新的目的了。对于稳态信号,逐渐迭代就能够收敛到最优解附近(根据推导可以发现每次的误差一定会比上次来的小);而对于非平稳信号,也可在数十步之内逐渐跟上,但不可避免的有相较于稳态信号稍大的误差。

    对于k值的选取,经过稳定性计算可以得出以下条件:
    0 < μ < 1 λ m a x 0<μ<\frac{1}{\lambda_{max}} 0<μ<λmax1
    其中λ为输入信号自相关矩阵的最大特征值,感兴趣的同学可以自行查找资料,大概证明过程是保证代价函数会随着 ω \omega ω的迭代递降,根据递推公式,保证特征值小于1就会让滤波器的输出值收敛。μ越大收敛得越快,但也容易跑飞或者使得累积误差变得的不可接受。

    所以最终权重更新的公式为:
    ω t + 1 = ω t + 2 μ e ( n ) x ( n ) \omega_{t+1}=\omega_t+2μe(n)x(n) ωt+1=ωt+2μe(n)x(n)

    搜索关键词:自适应滤波、泰勒展开、特征分解、学习率。

    虽然已经找到了求解的方法,但它肯定还是有不足之处,比如收敛速度慢、震荡比较剧烈等。针对这些缺点人们又提出了NLMS、AP、RLS优化等,有些是针对梯度下降的(可以参考之前神经网络部分的adam和momentum);有些是针对噪声和误差统计特性的;感兴趣的同学可以自己搜索。

    几个参考资料:adaptic noise canceling

  • 控制理论

    待更新。笔者还需要进一步查找相关资料。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:自适应滤波器 的相关文章

  • 【RoboMaster】我是这样搞定第一次单目相机测距的

    之前在做一个单目测距的小项目 xff0c 大概需要就是用单目相机 xff0c 对一个特定的目标进行识别并测算相机与该目标的距离 所以便去网上找了一堆教程 xff0c 这里给大家总结一下 xff0c 希望给小白们一个参考 首先是基本需求了 x
  • robomaster视觉规则细谈

    目录 攻击与检测 弹丸参数 增益点增益 升级效果 击打检测 涂装要求 裁判系统 机器人端各模块 赛事引擎各部分 客户端 服务器 能量机关 小能量机关 大能量机关 算法归纳 攻击与检测 弹丸参数 如图所示 xff0c 赛场中我们使用的弹丸有两
  • RoboMaster视觉教程(0)绪论

    背景 大四毕业了 xff0c 想着大学四年也需要总结一下 就从RoboMaster这个比赛写起吧 我是大二参加的比赛 xff0c 做视觉识别部分 当时的想法很简单 xff0c 因为很喜欢Linux不想焊板子调电控就参加了视觉部分 xff08
  • ROBOMASTER机甲大师赛视觉组学习方案

    ROBOMASTER机甲大师赛视觉学习方案 视觉技能学习踩坑硬件平台环境配置个人修为坑 机甲大师 xff08 RoboMaster xff09 是由大疆创新 xff08 DJI xff09 的创始人汪滔发起并承办 由共青团中央 全国学联 深
  • RoboMaster机甲大师——视觉组——计算平台的选型与感想(主流几款)

    RoboMaster机甲大师 视觉组 计算平台 xff08 工控机 xff09 的选型与感想 xff08 主流几款 xff09 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介 xff1
  • RoboMaster视觉教程(1)摄像头

    观文有感 之 RoboMaster视觉教程 xff08 1 xff09 摄像头 闲来垂钓碧溪上 今天钓到一篇RM视觉摄像头的好文 xff0c 记录一下笔记 xff1a 文章目录 观文有感 之 RoboMaster视觉教程 xff08 1 x
  • 了解CV和RoboMaster视觉组(三)视觉组使用的软件

    NeoZng neozng1 64 hnu edu cn 3 视觉组接触的软件 进行视觉开发会用到各种各样的软件 开发环境 辅助工具等 xff0c 所以很有必要了解一些相关的快捷键 命令 使用技巧 选择一款适合自己的IDE能够提高开发效率
  • 了解CV和RoboMaster视觉组(四)视觉组使用的硬件

    NeoZng neozng1 64 hnu edu cn 4 视觉组接触的硬件 虽然别人总觉得视觉组就是整天对着屏幕臭敲代码的程序员 xff0c 实际上我们也会接触很多的底层硬件与传感器 xff0c 在使用硬件的同时很可能还需要综合运用其他
  • 了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法

    neozng1 64 hnu edu cn 5 3 滤波器 观测器 估计器和预测方法 这些装置之间的区别在于面对不同场景时候的不同解释 xff08 是否考虑信号的统计学特性 随机特点 参数是否变化等 xff09 滤波器在信号与系统中的定义为
  • 了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:自适应滤波器

    neozng1 64 hnu edu cn 自适应滤波 自适应滤波以前述的wiener filter为基础 xff0c 这里我们也从统计与优化和控制理论两个角度来介绍它 xff0c 顺着上一篇介绍维纳滤波器的文章的思路继续进行推导 统计与优
  • 了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:自适应滤波器的应用

    neozng1 64 hnu edu cn 应用举例 降噪 网络上能找到非常多自适应滤波器用于降噪的例子 xff0c 尤其是AEC xff08 自适应回声消除 xff09 常常被作为样例 xff0c 但是却存在大量的缺解 讹误和疏漏 xff
  • 了解CV和RoboMaster视觉组(五)运动建模与预测

    neozng1 64 hnu edu cn 5 3 2 预测方法 运动预测是自瞄击打装甲板的关键一步 xff0c 如果没能预测目标的移动 xff0c 那么我们的解算输出用于只会跟在目标的屁股后面 xff0c 使得打出的弹丸始终落后于目标 x
  • 【Robomaster-ICRA-AI挑战赛跳坑篇】(二、TX2刷机)

    TX2刷机与程序下载 TX2安装在步兵车上作为机载计算机使用 xff0c 跑上层代码 xff0c RoboRTS代码托管在github上 xff1a https github com RoboMaster RoboRTS xff0c 目前一
  • RoboMaster步兵机器人简介

    RoboMaster步兵机器人简介 湖北工业大学 蔡饶 如下图所示 xff0c 设计的是一个基于麦克纳姆轮的四轮全向越障平台 xff0c 纵臂式独立悬挂 xff0c 搭载两轴云台和弹丸发射机构 xff0c 是大疆承办的RoboMaster机
  • robomaster麦轮运动解算

    1 资源与代码 1 1 参考文章 本文主要参考的三篇文章如下 xff1a 麦轮运动特性分析 xff1a https mp weixin qq com s biz 61 MzI3MTIyMjQwNQ 61 61 amp mid 61 2247
  • 自适应滤波器

    1 LMS Filter模块仿真时 xff0c 输出会发散 xff0c 主要是mu值选取不合适 xff0c 选取比较小的值就可以了 2 可以把网上的m文件通过 matlab coder工具直接转为C文件 xff08 不能直接使用 xff0c
  • RoboMaster怎么设计新步兵悬挂

    流程 xff1a 明确需求 gt 提出可量化目标 gt 方案提出与评估 gt 细化方案 gt 任务分配 gt 画图设计 gt 图纸提交与验收 gt 加工 gt 装配 gt 机械调试 需求 xff1a 性能优越的悬挂 目标 xff1a 1 任
  • 【RoboMaster】舵机驱动&蓝牙模块教程

    本文是为参加2021赛季北京理工大学机器人队校内赛所写的简单教程 xff0c 意在帮助参赛选手快速了解校内赛所需模块的使用方法 xff0c 以及其与薪火培训知识的联系 舵机驱动 硬件接线 舵机是由直流电机 减速齿轮组 传感器和控制电路组成的
  • 了解CV和RoboMaster视觉组(四)视觉组使用的硬件

    NeoZng neozng1 64 hnu edu cn 4 视觉组接触的硬件 虽然别人总觉得视觉组就是整天对着屏幕臭敲代码的程序员 xff0c 实际上我们也会接触很多的底层硬件与传感器 xff0c 在使用硬件的同时很可能还需要综合运用其他
  • RoboMaster机器人运行教程(一)

    1 环境配置 系统 xff1a ubuntu16 04 xff0c 安装ROS 2 基础学习 需要C 43 43 和python基础 xff0c 和ROS的基础知识 xff0c 网上有很多教程 xff0c 推荐知乎大佬教程 xff1a 我的

随机推荐