自适应滤波器更新算法-EP3

news2024/11/13 16:24:27

文章目录

    • 1、PNLMS和IPNLMS算法
      • 1.1 算法原理
      • 2.2 算法分析
    • 2、一种改进的时变参数的比例自适应滤波算法
      • 2.1 算法原理
      • 2.2 算法分析
      • 2.3 算法性能评价标准
        • 2.3.1 均方误差(Mean Square Error, MSE)
        • 2.3.2 失调(Misalignment, MIS)
        • 2.3.3 回声衰减系数(Echo Return Loss Enhancement, ERLE)
    • 3、基于多带结构的改进型自适应滤波切换算法
      • 3.1 算法原理
      • 3.2 算法分析
    • 4、 自适应算法的判断准则

续接上一篇博文,继续介绍博主阅读论文总结的几种优化后的自适应滤波器更新算法!

1、PNLMS和IPNLMS算法

  在介绍接下来的改进自适应滤波算法之前,需要先介绍一下PNLMS和IPNLMS算法,因为之后的算法是基于这两种算法之上进行改进的。

1.1 算法原理

  在回声消除的应用中,实际回声路径的脉冲响应与所处房间的大小、墙壁的材料、麦克风的位置、环境温度等息息相关。在回声路径具有长脉冲响应的情况下,则需要上千阶的自适应滤波器以用于逼近回声路径脉冲响应,而回声脉冲响应具有稀疏特性,其系数绝对值只在短时间内大于零,其余则无限趋近于零。上千阶的滤波器系数中实则只有几百个发挥实际作用,且决定着回声路径估计的准确性。基本的LMS和NLMS算法收敛速度一般不能达到要求,在此背景下,(Proportionate Normalized Least Mean Square, PNLMS)算法被提出。

  PNLMS 算法的基本思想是保证有用的滤波器系数具有较大的收敛因子,而其余不发挥作用和作用很小的滤波器系数仍保留小的收敛因子。滤波器权值更新公式可表示为:
w ( n + 1 ) = w ( n ) + μ G ( n + 1 ) δ + x T ( n ) G ( n + 1 ) x ( n ) e ( n ) x ( n ) w(n+1) = w(n)+\frac{\mu G(n+1)}{\delta + x^T(n)G(n+1)x(n)}e(n)x(n) w(n+1)=w(n)+δ+xT(n)G(n+1)x(n)μG(n+1)e(n)x(n)
式中 G ( n ) G(n) G(n) 为N维的对角增益矩阵,以对滤波器各权值系数分配步长权重,表示为:
G ( n + 1 ) = d i a g { g 1 ( n + 1 ) , g 2 ( n + 1 ) , . . . , g N ( n + 1 ) } G(n+1) = diag\{g_1(n+1),g_2(n+1),...,g_N(n+1)\} G(n+1)=diag{g1(n+1),g2(n+1),...,gN(n+1)}
其中,
g k ( n + 1 ) = γ k ( n + 1 ) 1 N ∑ i = 1 N γ i ( n + 1 ) g_k(n+1) = \frac{\gamma _k(n+1)}{\frac{1}{N}\sum_{i=1}^{N}{\gamma_i(n+1)}} gk(n+1)=N1i=1Nγi(n+1)γk(n+1)
1 ≤ k ≤ N 1\leq k\leq N 1kN,式中的
γ k ( n + 1 ) = m a x { ρ ∗ m a x [ δ p , ∣ w 1 ( n ) ∣ , ∣ w 2 ( n ) ∣ , . . . , ∣ w N ( n ) ∣ ] , ∣ w k ( n ) ∣ } \gamma_k(n+1) = max\{\rho *max[\delta_p,|w_1(n)|,|w_2(n)|,...,|w_N(n)|],|w_k(n)| \} γk(n+1)=max{ρmax[δp,w1(n),w2(n),...,wN(n)],wk(n)}
   δ p \delta_p δp 为在滤波器初始阶段调整更新参数的因子, ρ \rho ρ 的取值将影响算法的整体收敛速度,较大的 ρ \rho ρ 会使得收敛速度减缓,但也不宜取值过小,一般取 5 / M 5/M 5/M。当 ρ = 1 \rho=1 ρ=1 时,PNLMS算法将变为NLMS算法。

  PNLMS 算法的收敛速度提升是以回声路径脉冲响应具有高稀疏程度为前提条件的,因此在一些低稀疏度的场景下,其效果甚至没有 NLMS 算法表现好,且随着迭代的进一步进行,其收敛速度会发生显著减缓的情况。为了结合 PNLMS 和 NLMS 算法的优势, IPNLMS 算法在二者的基础上采取了可调整算法比重的参数 θ \theta θ
g k ( n + 1 ) = 1 − θ 2 + ( 1 + θ ) N ∣ w k ( n ) ∣ 2 ∣ ∣ w ( n ) ∣ ∣ + ε g_k(n+1) = \frac{1-\theta}{2}+(1+\theta)\frac{N|w_k(n)|}{2||w(n)||+\varepsilon} gk(n+1)=21θ+(1+θ)2w(n)+εNwk(n)
  其中 1 ≤ k ≤ N 1\leq k\leq N 1kN ε \varepsilon ε 为一个小的正常数,式中 ∣ ∣ w ( n ) ∣ ∣ = ∑ k = 1 N ∣ w k ( n ) ∣ ||w(n)|| = \sum_{k=1}^{N}{|w_k(n)|} w(n)=k=1Nwk(n)。则上式针对 g k ( n + 1 ) g_k(n+1) gk(n+1) 运算的右半部分第一项可以看成是 IPNLMS 算法的 NLMS 成分,而第二项可以是PNLMS的成分。当 θ = 1 \theta =1 θ=1 时 IPNLMS 算法退化为 PNLMS 算法,当 θ = − 1 \theta = -1 θ=1时 IPNLMS 算法退化为 NLMS 算法[26]。

2.2 算法分析

  • 上述的PNLMS算法解决了NLMS算法在回声脉冲响应具有稀疏特性情况下收敛速度过慢的问题,PNLMS 算法拥有初始收敛速度的优势,尤其在回声路径具有稀疏性条件下,其收敛速度则更加明显。
  • 但是不是所有场景下,回声路径脉冲响应都具有高稀疏程度,因此在一些低稀疏场景下,PNLMS算法的效果甚至没有NLMS算法表现好,且随着迭代的进一步进行,其收敛速度会发生显著减缓的情况。
  • IPNLMS算法就是结合了PNLMS和NLMS算法的优势,在二者的基础上采取了可调整算法比重的方式。由于调整算法比重参数的存在使得其内部两种算法的成分达到协调,因此使得其收敛速度保持在适中的状态。

2、一种改进的时变参数的比例自适应滤波算法

2.1 算法原理

  该算法由参考文献[1]提出,其是在IPNLMS算法的基础上进行进一步的优化。基本的 IPNLMS 算法,它是在 NLMS 算法和 PNLMS 算法之间采取了折中的处理思想,以规避各自的缺陷,但其内部可调整步长比重的参数 θ \theta θ 设置为固定值,且此参数的取值直接决定着 IPNLMS 算法的性能是偏向于 NLMS 还是PNLMS。在回声路径的稀疏特性为已知的情况下,可以根据对应的稀疏度而采取适当的参数值。但在一般情况下,近似为未知系统内的回声路径脉冲响应的数值是先验未知的,因此其参数值的选取就无从依据。另一方面,若大的参数取值使得滤波器权值系数被按比例分配到较大的权值增量,此时自适应滤波器趋于收敛状态时,滤波器权值仍沿用此权值增量会使得 IPNLMS 算法出现不可避免的稳态失调,这在回声消除的应用中应尽量避免的。

  因此在参考文献[1]中,引入了变参数的算法思想,即让参数 θ \theta θ 值能够随自适应滤波器工作状态而改变。在自适应滤波器开始工作时,采用大的 θ \theta θ 值,此时 IPNLMS 算法性能将趋PNLMS,以提高初始的收敛速度,而在自适应滤波器最终达到收敛状态时,应使参数 θ \theta θ 值不断调整变小并趋近于­1,使得 IPNLMS 算法此时的性能趋近于 NLMS 算法,以在最大程度上减少稳态失调的波动性。则针对 g k ( n + 1 ) g_k(n+1) gk(n+1) 运算变型为:
g k ( n + 1 ) = 1 − θ ( n ) 2 + ( 1 + θ ( n ) ) N ∣ w k ( n ) ∣ 2 ∣ ∣ w ( n ) ∣ ∣ + ε g_k(n+1) = \frac{1-\theta(n)}{2}+(1+\theta(n))\frac{N|w_k(n)|}{2||w(n)||+\varepsilon} gk(n+1)=21θ(n)+(1+θ(n))2w(n)+εNwk(n)
其中,时变参数 θ ( n ) \theta(n) θ(n) 的值域应被限制在 [ − 1 , 1 ] [-1,1] [1,1] 之间。而 θ ( n ) \theta(n) θ(n) 在文中计算为Sigmoid函数形式:
θ ( n ) = 2 φ + 2 1 + e − β ∗ x ( n ) − ( φ + 2 ) \theta (n) = \frac{2\varphi+2}{1+e^{-\beta*x(n)}} -(\varphi+2) θ(n)=1+eβx(n)2φ+2(φ+2)
对于 θ ( n ) \theta(n) θ(n) 的计算如何得出,可以去学习参考文献[1],这里不过多介绍。

2.2 算法分析

  该算法主要是针对IPNLMS算法不足的地方进行优化,将固定值 θ \theta θ 转换为函数,能够使其更具滤波器的工作状态进行动态调整,使得算法更具鲁棒性,能够应该更复杂的场景。但是 θ ( n ) \theta(n) θ(n) 如何计算则变得尤为关键。这一点也值得我们学习并验证。

2.3 算法性能评价标准

2.3.1 均方误差(Mean Square Error, MSE)

  MSE 作为自适应滤波算法的通用评价标准,其表示式为:
M S E = 10 l o g 10 E [ e 2 ( n ) ] MSE=10log_{10}E[e^2(n)] MSE=10log10E[e2(n)]
  由上式可以看出,MSE 与误差信号 e ( n ) e(n) e(n)相关,MSE 曲线能够刻画自适应滤波器的误差信号不断变小的过程,也是其从迭代开始到逐渐收敛的过程,且 MSE 越值小,自适应滤波算法的性能就越优秀。

2.3.2 失调(Misalignment, MIS)

  MIS 从公式上解释又叫做权误差向量范数,其表示式为:
M I S = 10 l o g 10 ∣ ∣ h − w ∣ ∣ 2 ∣ ∣ h ∣ ∣ 2 MIS = 10log_{10}\frac{||h-w||^2}{||h||^2} MIS=10log10h2hw2
  式中 h h h 即房间脉冲响应的真实值, w w w 为自适应滤波器权值向量, ∣ ∣ . ∣ ∣ ||.|| . 表示取 2­范数。在AEC 中,MIS 主要衡量的是使用的自适应滤波器不断调整权值,使其与目标值不断逼近而“学习”的过程。MIS 值越小,则自适应滤波器“学习”能力也越强,算法性能也就越好。

2.3.3 回声衰减系数(Echo Return Loss Enhancement, ERLE)

  ERLE 又叫回声返回损耗增益,是最为常用的一个指标,可以由下式计算:
E R L E = 10 l o g 10 E [ d 2 ( n ) ] E [ e 2 ( n ) ] ERLE = 10log_{10}\frac{E[d^2(n)]}{E[e^2(n)]} ERLE=10log10E[e2(n)]E[d2(n)]
  作为 AEC 主要评价标准,ERLE 能够反映所采用的自适应滤波算法消除回声的能力。与MSE 的表示式对比可知,当期望信号 d(n)一定时,二者是互为相反的概念。因此,ERLE 值越大,则算法对回声的抑制能力也就越突出。

3、基于多带结构的改进型自适应滤波切换算法

3.1 算法原理

  该算法由参考文献[2]提出,即NLMS-NSAF算法。该算法的原理为,首先远端语音信号利用包络法判别有无语音段,然后将信号状态输出到自适应多带结构算法模块当中。若语音区输入信号的短时能量较大,则使用收敛速度快的自适应滤波算法;反之,若语音区输入信号的短时能量较小,需考虑计算量低的算法,当然,语音在无语音区时算法迭代停止。对输入语音信号能量高低的判定是通过和阈值 T s T_s Ts 比较得到的,可以理解为VAD检测。

  算法的整体原理图为:

在这里插入图片描述

该算法的具体实现步骤为:

第一步: 快慢包络 VAD 法判断语音状态。

第二步: 快慢包络法能够从 VAD 中提取出语音包络特性来进一步提高算法性能,参考文献[2]中提出了基于此检测方法的切换算法,即利用 VAD 分析值来切换抽头权重更新公式,以达到提高算法性能、降低运算量的目的。

第三步: 提出的切换 NLMS-NSAF 算法更新公式被写成如下式,式中的两个表达式都表示了权重矢量相对于上一次迭代的增加量,只是增加的幅度不同,而这个不同由第二步中的阈值决定,根据阈值与输入信号的能量做对比,选择不同的更新公式。

在这里插入图片描述

3.2 算法分析

  • 在充分考虑语音特性的情况下,切换算法实现了算法在收敛速度的优势,同时完成了同算法复杂度的优化选择。最后达到了提高滤波算法性能、降低运算量的目的。
  • 可以看出该算法滤波器的更新很大程度上会依赖VAD的结果,因此VAD对语音判别的准确性将会影响整个算法的效果,所以该算法无形之中又增加了影响算法效果好坏的因素。

4、 自适应算法的判断准则

  如何判断自适应算法是否为一种好的自适应算法,主要从以下几个点来判断:

  • 收敛速度:它定义为算法在响应平稳输入时足够接近维纳最优解所需的迭代次数。快速收敛允许算法快速自适应于统计意义上未知的平稳环境。
  • 失调(misaajustment):这个参数提供了自适应滤波器集平均的最终均方误差与维纳滤波器所产生的最小均方误差之间偏离程度的—个定量测量。
  • 跟踪(tracking):当一个自适应滤波算法运行于非平稳环境时,该算法需要跟踪环境的统计量变化。然而算法跟踪性能受到两个相互矛盾的特性影响:收敛速度和由算法噪声引起的稳态波动。
  • 鲁棒性(robustness):对于—个鲁棒的自适应滤波器,小的扰动只会产生小的估计误差。
  • 计算要求:计算要求包括:完成算法的一次完整迭代所需要的运算量(乘法和加法的次数);存储数据和程序所需要的存储器位置的大小;在计算机上对算法编程所需要的投资。

参考文献

[1]严涛. 声学回声消除的自适应滤波方法研究[D].南京信息工程大学.

[2]魏丹丹. 声学回声消除中子带和块稀疏自适应算法研究[D]. 重庆邮电大学.

作者:王小二_Leon
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
本文章不做任何商业用途,仅作为自学所用,文章后面会有参考链接,我可能会复制原作者的话,如果介意,我会修改或者删除。

说明:对自适应滤波器算法的研究到此告一段落,由于博主能力有限,因此该篇中涉及到的算法代码都未复现,希望博主对各种算法的总结能够对自己和同学们有帮助,也欢迎各位指正!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/68099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【音视频开发】为什么无损音频会有44.1Khz这样的奇葩采样率?

文章目录一、 问题:为什么无损音频会有44.1Khz这样的奇葩采样率?二 、PCM流程2.1 PCM流程2.2 PCM量化方式2.2 量化位数2.3 比特率三、答疑解惑3.1 使用采样定理来解释3.2 以影片磁带录音?硬件限制而来的 44.1kHz3.3 关于44100和质数的关系四、…

【关于检查请求参数的基本有效性】

目录 检查请求参数的基本有效性 检查请求参数的基本有效性 在服务器端项目中,可以通过spring-boot-starter-validation对请求参数进行检查。 在客户端项目中,Element UI的示例表单中都有对各控件(例如输入框、选择框等)的检查。…

[附源码]Python计算机毕业设计Django校园生活服务平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

DBCO的PEG连接剂1480516-75-3,DBCO-PEG4-Maleimide(MAL)

DBCO-PEG4-Maleimide试剂反应原理: DBCO-PEG4-Maleimide是包含马来酰亚胺基团和DBCO部分的PEG连接剂。亲水性PEG间隔臂提高了在水缓冲液中的溶解度。马来酰亚胺基团与硫醇特异有效地反应,形成稳定的硫醚键。低质量将为改性分子添加间隔物,并…

任务(task)

任务(task) 一、 任务概述 线程(Thread)是创建并发的底层工具,因此有一定的局限性(不易得到返回值(必须通过创建共享域);异常的捕获和处理也麻烦;同时线程执…

Linux软件包管理

Linux软件包管理实验目的及要求1.了解RPM特点与YUM工作机制。2.熟悉RPM软件包的密钥管理。3.掌握RPM、YUM或DNF包管理方法及其命令。实验原理实验步骤1.查询当前已安装的RPM包,在安装光盘上查找尚未安装的RPM包,通过命令和图形界面的多种方式进行安装、升…

年龄到了一定程度才能体会到世界杯的真正意义

前言 聊起来世界杯,想必读者们都有说不完的世界杯话题,四年一届的全球盛会,把全世界的目光都牢牢的拿捏在手里,世界杯不仅仅是关于足球的比赛活动,而且更是团队协作精神、永不言弃等精神的体现和传承。年轻的时候可能是…

在线点餐系统毕业设计,外卖点餐系统设计与实现,毕业设计论文源码需求分析

项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于java的外卖点菜系统,管理员通过后台添加菜品,用户浏览器登录,查看菜品、购买、下单等。根据需求,本系统采用的是BS(Browser Server简称浏览器服…

[论文分享] IR2Vec: LLVM IR Based Scalable Program Embeddings

IR2Vec: LLVM IR Based Scalable Program Embeddings [TACO 2020] S. VENKATAKEERTHY, ROHIT AGGARWAL, Indian Institute of Technology Hyderabad 我们提出了IR2Vec,一种简洁且可扩展的编码框架,将程序表示为连续空间中的分布式嵌入。这种分布式嵌入…

java反射所需要了解的基本知识点

反射概述 反射:通过运行时操作元数据或对象,Java 可以灵活地操作运行时才能确定的信息,指程序可以访问、检测和修改它本身状态或行为的一种能力。 其相关类在下面这个包里面:java.lang.reflect.*; 反射机制相关的重要的类&#…

图解系统:

1.硬件结构 1.1.存储器的层次关系 每个存储器只和相邻的一层存储器设备打交道,并且存储设备为了追求更快的速度,所需的材料成本必然也是更高,也正因为成本太高,所以 CPU 内部的寄存器、L1\L2\L3 Cache 只好用较小的容量&#xff…

node中文件的上传

node基于Express项目实现文件的上传 1、FormData对象:以对象的方式来表示页面中的表单,又称为表单对象。以key-value的方式来保存数据,XMLHttpRequest对象可以轻松的表单对象发送的服务器端; (1)使用构造…

图解LeetCode——1775. 通过最少操作次数使数组的和相等(难度:中等)

一、题目 给你两个长度可能不等的整数数组 nums1 和 nums2 。两个数组中的所有值都在 1 到 6 之间(包含 1 和 6)。 每次操作中,你可以选择 任意 数组中的任意一个整数,将它变成 1 到 6 之间 任意 的值(包含 1 和 6&a…

【vim】Darcula 配色设置

因为本人一直习惯了用 Jetbrains 家的产品,而且一直独钟 Dracula 配色,因此想要在 Git Bash 中为 vim 配一款 Dracula 配色。本博客将详细介绍如何为 vim 配置暗系主题 Dracula。 一、安装 Dracula 在 Dracula 的官网其实已经给出了关于如何在 vim 中配…

夯实算法-课程表

题目:LeetCode 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课程。 先修课程按数组 prerequisites 给出,其中 prerequisites[i] [ai, bi] ,表示如果要学习课程 ai 则 必…

Linux系统编程5——Socket编程(网络通信)

文章目录前言一、套接字二、基础知识三、网络套接字函数3.1、struct sockaddr3.2、socket函数3.3、bind函数3.4、listen函数3.5、accept函数3.6、connect函数3.7、读取/发送数据函数3.8 客户端服务器通信demo四、select函数1、TCP状态简介2、端口复用2.1、setsockopt函数3、半关…

云之道知识付费v1.5.4小程序+前端(含pc付费插件)

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示三、学习资料下载一、详细介绍 云之道知识付费v1.5.4小程序前端(含pc付费插件) 版本号:1.5.4 – 商用无限开 无需重新上传小程序 【修复】上一版本公众号版本打开白屏问题 版本号&a…

【C语言】函数三要素,变量作用域、生存周期、存储类型

目录 写在前面 一、函数的用法 1、声明 2、调用 3、定义 形参与实参类型不一致 形参与实参类型一致 函数值类型与返回值类型不一致 函数值类型与返回值类型一致 二、变量的作用域与生存周期 三、变量的储存类型(auto,extern,static,register)…

AI虚拟人千亿级市场来袭,景联文科技提供全方面数据采集标注服务

“AI虚拟人通过语音、文字、视觉的理解和生成,结合动作识别、环境感知等多种方式可与人进行互动。AI虚拟人中运用到的强大算法需要高质量标注数据不断对其进行优化训练,景联文科技提供全方面数据采集标注服务。” 11月18日,科大讯飞在第五届世…

行为型模式 - 访问者模式Visitor

学习而来,代码是自己敲的。也有些自己的理解在里边,有问题希望大家指出。 行为型模式,我之所以把他放到第一个,是因为它号称是GoF中最难的一个。 模式的定义与特点 在访问者模式中(Visitor Pattern)中&…