NLMS算法相关
- 格式:doc
- 大小:229.50 KB
- 文档页数:10
数字信号处理中的自适应滤波算法自适应滤波算法在数字信号处理领域中扮演着重要的角色。
它们能够自动地根据输入信号的特性调整滤波器参数,以达到最佳的滤波效果。
本文将介绍几种常见的自适应滤波算法及其应用。
一、最小均方(LMS)算法最小均方(Least Mean Square, LMS)算法是最简单、常用的自适应滤波算法之一。
它的基本思想是通过最小化预测误差的均方差来更新滤波器参数。
LMS算法的原理如下:1. 初始化滤波器系数向量w和适当的步长参数μ。
2. 对于每个输入信号样本x(n),计算滤波器输出y(n)。
3. 计算预测误差e(n) = d(n) - y(n),其中d(n)是期望输出。
4. 更新滤波器系数向量w(n+1) = w(n) + 2μe(n)x(n)。
5. 重复步骤2至4,直到达到收敛条件。
LMS算法的优点是实现简单,适用于多种信号处理问题。
然而,它对信号的统计特性敏感,收敛速度较慢。
二、最小均方归一化(NLMS)算法最小均方归一化(Normalized Least Mean Square, NLMS)算法是对LMS算法的改进,可以有效地解决LMS算法中的收敛速度慢的问题。
NLMS算法的主要改变是利用输入信号的能量对步长参数进行归一化。
其具体步骤如下:1. 初始化滤波器系数向量w和适当的步长参数μ。
2. 对于每个输入信号样本x(n),计算滤波器输出y(n)。
3. 计算预测误差e(n) = d(n) - y(n)。
4. 计算输入信号能量ρ(n) = x(n)·x(n)。
5. 更新滤波器系数向量w(n+1) = w(n) + (2μ/ρ(n))e(n)x(n)。
6. 重复步骤2至5,直到达到收敛条件。
NLMS算法通过对步长参数进行归一化,使其与输入信号能量相关联。
这样一来,相对于LMS算法,它能够更快地收敛。
三、迫零(RLS)算法迫零(Recursive Least Squares, RLS)算法是一种递归算法,也是自适应滤波算法中最常用的一种。
NLMSLMS算法介绍参考NLMS(Normalized Least Mean Squares)算法是一种自适应滤波算法,是LMS(Least Mean Squares)算法的一种改进版本。
可以应用于许多信号处理应用领域,例如声音增强、自适应滤波、自适应降噪等。
LMS算法是一种采用最小均方误差准则的自适应滤波算法。
它通过最小化输入信号与期望输出信号之间的均方误差来调整滤波器的系数,实现自适应滤波。
然而,LMS算法存在一个缺陷,就是它对输入信号的动态范围非常敏感,需要较小的步长参数才能保证算法的收敛性。
为了解决LMS算法的不足,NLMS算法在每次迭代中对步长参数进行了归一化处理。
具体来说,在更新滤波器系数时,NLMS算法除以输入信号的功率来归一化步长。
这样可以有效地改善算法的收敛速度和稳定性,提高算法的适应性。
NLMS算法的更新公式如下:w(k+1)=w(k)+μ/(α+x(k)*x(k)')*e(k)*x(k)其中,w(k)表示第k个迭代步骤时的滤波器系数向量,μ是步长参数,α是一个小的正常数,x(k)表示第k个迭代步骤时的输入信号向量,e(k)表示第k个迭代步骤时的误差信号。
NLMS算法的优点是可以自动调节步长参数,能够快速适应信号的变化。
此外,由于步长参数的归一化处理,算法对输入信号的幅度变化不敏感,能够更好地处理动态范围大的信号。
然而,NLMS算法也存在一些问题。
首先,算法的收敛速度可能会受到输入信号的动态范围变化的影响。
当信号的动态范围较大时,步长参数的归一化处理会导致算法的收敛速度变慢,甚至可能导致算法无法收敛。
其次,算法对输入信号的变化有一定的延迟响应,可能导致一些误差信号被忽略。
总而言之,NLMS算法是一种改进的自适应滤波算法,通过归一化步长参数来提高算法的收敛速度和稳定性。
它在许多信号处理应用领域都有广泛应用,同时也存在一些局限性。
基于NLMS回声消除算法的研究与改进的开题报告一、选题背景及意义在电话会议、网络电话和远程监控等应用中,由于信号传输路径的不同,常常会产生回声和噪声干扰,在语音通信中会导致对话的质量下降。
回声消除就是一种旨在减少或消除此类干扰的技术,目的是提高通信质量。
自上个世纪六十年代中期提出以来,回声消除技术得到了广泛的发展和应用。
目前,比较成熟的算法有基于快速傅里叶变换(FFT)的逐行回声抵消算法(AEC)和基于自适应滤波的NLMS算法。
NLMS(Normalized Least Mean Square)算法是一种自适应滤波算法,该算法能够及时调整滤波器的系数,以适应干扰信号的动态变化,具有响应速度快、实现简单等特点。
目前已有很多研究对该算法进行了改进和优化。
本研究旨在通过分析NLMS算法的原理和性能,提出一种基于NLMS算法的回声消除模型,并对该模型进行改进,以提升回声消除的效果与可靠性。
二、研究方法本研究将以NLMS算法为基础,构建回声消除模型,并在模型中引入合适的前向滤波器和后向滤波器,实现波形的预测和补偿。
同时,本研究将分析NLMS算法的性能问题,并提出改进方案。
研究过程中将通过MATLAB软件进行算法实现和分析,最终得出实验结果和相应结论。
三、预期研究成果及创新点通过本研究,预期能够得到一种基于NLMS算法的回声消除模型,并对其进行改进,以提升消除效果和可靠性。
同时,本研究还将探讨如何提高回声消除的实时性和稳定性。
此外,本研究还将分析NLMS算法的应用前景和发展方向,并探索其在其他应用领域的应用价值。
本研究的创新点有:1. 基于NLMS的回声消除模型,提高消除效果和可靠性。
2. 揭示NLMS算法存在的问题,并提出相应的改进方案。
3. 探索NLMS算法在其他应用领域的潜在价值。
四、可行性分析本研究的主要研究方法是基于MATLAB软件实现和分析,该软件具有较强的算法模拟和数值分析功能。
同时,本研究对NLMS算法的原理和性能进行详细的分析和探讨,具有一定的理论指导和借鉴性。
依据迭代系数状态因子分段的变步长nlms算法变步长最小均方算法(NLMS)是一种经典的自适应滤波算法,可以用于信号处理和通信系统中的自适应滤波和系统辨识。
在NLMS算法中,我们需要通过调整迭代步长(或称为步长因子)来控制算法的收敛速度和稳定性。
传统的NLMS算法中,步长因子是一个固定常数。
但是,在某些情况下,固定的步长因子可能无法达到最佳性能。
为了克服这个问题,可以使用基于迭代系数状态因子分段的变步长NLMS算法。
该算法的关键思想是根据当前迭代系数的状态来选择不同的步长因子。
具体步骤如下:1. 初始化自适应滤波器的系数向量w和步长因子mu。
2. 输入一个长度为N的输入信号x(n)。
3. 通过自适应滤波器的系数向量w对输入信号进行滤波,得到输出信号y(n)。
4. 计算输出信号y(n)与期望输出信号d(n)之间的误差e(n)。
5. 根据当前的迭代系数状态选择相应的步长因子mu进行更新:如果e(n)与之前的误差符号相同(即e(n)*e(n-1)>0),则步长因子mu不变。
如果e(n)与之前的误差符号相反(即e(n)*e(n-1)<0),则更新步长因子mu为一个更小的值(例如mu=mu/2)。
6. 更新自适应滤波器的系数向量w,使其逼近最佳的系统函数。
7. 重复步骤2-6,直到达到收敛条件或者迭代次数达到设定的最大值。
需要注意的是,步骤5中的迭代系数状态可以根据实际应用中的需求来定义。
一种常见的方式是通过比较当前误差e(n)和之前误差的绝对值(即|e(n)|和|e(n-1)|)来判断迭代系数的状态。
通过以上步骤,基于迭代系数状态因子分段的变步长NLMS算法可以根据当前的迭代系数状态来自适应地调整步长因子,从而提高算法的性能和稳定性。
常见的AD滤波算法总结AD滤波算法(也称为自适应数字滤波算法)是一种用于减少随机噪声的数字信号处理技术。
通过监测信号的特性并根据这些特性调整滤波器的参数,AD滤波算法能够实时适应信号的变化,提供更好的滤波效果。
以下是一些常见的AD滤波算法的总结:1.LMS算法(最小均方算法):LMS算法通过不断调整滤波器的权值,使得滤波器的输出误差的均方值最小。
该算法具有简单、实时性好的特点,但对信号的自相关性和信噪比要求较高。
2.RLS算法(递推最小二乘算法):RLS算法通过递归地调整滤波器的权值,实时地估计滤波器的最佳权值。
相比于LMS算法,RLS算法具有更好的收敛性和稳定性,但计算复杂度较高。
3.NLMS算法(归一化最小均方算法):NLMS算法是LMS算法的一种改进,通过将更新步长归一化,能够降低对信号动态范围的要求,提高算法的稳定性。
4.APA算法(自适应谐波消除算法):APA算法是一种用于去除电力系统谐波干扰的AD滤波算法。
该算法通过估计谐波的频率和幅值,实时地调整滤波器的权值,以减少谐波信号的影响。
5.ANC算法(主动噪声控制算法):ANC算法是一种用于减少环境噪声的AD滤波算法。
该算法通过实时监测噪声信号并生成与噪声相位和幅度相反的抗噪声,以减少噪声在目标信号中的影响。
6.MMSE算法(最小均方误差算法):MMSE算法通过估计信号的统计特性,实时调整滤波器的参数以最小化滤波器输出与目标信号之间的均方误差。
该算法在低噪声环境下具有较好的滤波效果。
7.EMD算法(经验模态分解算法):EMD算法是一种自适应的滤波方法,能够将非线性非平稳信号分解为一系列固定的本征模态函数。
通过去除不同模态函数的高频部分,EMD算法能够滤除信号的噪声成分。
在实际应用中,不同的AD滤波算法具有不同的特点和适用范围。
选择合适的算法需要考虑信号的特性、实时性要求、计算复杂度等因素。
同时,通常还需要结合滤波器设计和参数调整等技术手段,综合考虑滤波效果和实现复杂度,以达到最佳的滤波效果。
控制系统中的自适应滤波算法研究自适应滤波算法是控制系统中一种常用的信号处理技术,用于减小噪声干扰并提高系统的性能。
本文将着重研究控制系统中的自适应滤波算法,并探讨其在实际应用中的优势和挑战。
首先,我们将介绍自适应滤波算法的基本原理和主要功能。
自适应滤波算法通过对输入信号进行实时分析和处理,自动调整滤波器的参数,以适应不同的环境和信号特征。
这种算法能够降低噪声干扰的影响,提高系统的稳定性和鲁棒性。
常见的自适应滤波算法包括最小均方误差(LMS)算法、最小均值误差(NLMS)算法和递归最小二乘(RLS)算法等。
接下来,我们将重点讨论自适应滤波算法在控制系统中的应用。
首先是在自适应控制方面的应用。
自适应滤波算法可以用于根据系统的实时反馈信息,实时调整滤波器的参数,以优化控制系统的性能。
例如,在自适应PID控制中,可以利用自适应滤波算法对输入和输出信号进行滤波处理,以减小噪声干扰和提高控制系统的响应速度和稳定性。
其次,自适应滤波算法在信号处理方面也有广泛的应用。
在传感器信号处理中,由于环境的变化和传感器本身的噪声等因素,采集到的信号经常受到噪声的干扰。
自适应滤波算法可以根据实际采集到的信号动态调整滤波器的参数,以滤除噪声并提取有效信号,从而提高信号处理的准确性。
另外,自适应滤波算法在通信系统中也有重要的应用。
在数字通信中,接收到的信号常常受到信道中的多径效应、干扰和噪声等的影响。
自适应滤波算法可以通过实时估计信号的通道特性,自适应地调整滤波器的参数,以减小信号畸变和噪声干扰,提高通信系统的性能和传输质量。
自适应滤波算法的应用具有很多优势,但也存在一些挑战和限制。
首先,自适应滤波算法的计算复杂度较高,对硬件和软件的要求较高。
其次,自适应滤波算法需要大量的实时数据进行训练和参数调整,因此对于实时性要求较高的系统,存在一定的滞后性。
此外,自适应滤波算法对信号的统计特性和环境的先验信息要求较高,如果这些信息无法准确获取,可能导致滤波器参数调整不准确,影响滤波效果。
采用变步长NLMS算法的回声消除系统作者:谢鹏来源:《数字技术与应用》2011年第09期摘要:本文提出了一种采用变步长NLMS算法的自适应回声消除系统,系统表现出了良好的性能,不但结构简单,计算量也小。
模拟双端通信实验表明该自适应滤波器工作正常,回声消除性能好,采用基于信号间相关性的双端检测方法也大大提高了减少了回声消除不干净的状况。
关键词:自适应滤波器回声消除步长控制中图分类号: TP911.72 文献标识码:A 文章编号:1007-9416(2011)09-0122-02回声消除技术主要用于消除在声音的播放和采集系统中产生的影响话音质量的电路回声和声学回声。
电路回声是由于在固定电话系统中的2-4线转换过程中,由于阻抗不匹配而泄露产生的声音,由于电路回声延时比较固定,已经有了比较成熟的解决方案。
而声学回声是由于扬声器和麦克风之间产生了声耦合,扬声器播放出来的声音被麦克风拾取后发回远端,这就使得远端谈话者能听到自己的声音。
随着消回声消除技术的发展,当前回声消除研究的重点,已由电路回声的消除,转向了声学回声。
在这篇文章中,主要解决的是声学回声消除的问题。
1、系统组成及原理图(1)表示了一个典型的自适应滤波回声消除系统。
其中是远端语音信号,为近端语音信号,为麦克风采集到的语音信号,为传往远端的语音信号或残差语音信号,是回声信道的脉冲响应,是自适应滤波器的抽头系数,它被用来建模回声信道。
如果建模得比较精确的话,和将会匹配得比较好,则从麦克风采集进来的回声将会得到完美的消除。
的系数使用自适应算法进行实时更新,用于跟踪房间脉冲响应。
本文主要采用NLMS算法对滤波器的参数进行更新。
最小均方算法NLMS是自适应滤波算法的最初也是最根本的形式。
自适应FIR滤波器的输入和输出之间的关系表示如下:即表示输入与冲激响应的卷积,展开后为:我们以作为第次迭代后得到的第阶滤波器系数,那么下一时刻的滤波器输出为: (3)输出估计和实际输出的差值为: (4)LMS算法基本思想就是最小化估计误差的平方值。
NLMS算法相关非线性最小均方(NLMS)算法是一种常用于自适应滤波的算法。
它在信号处理、通信系统、机器学习等领域中广泛应用。
本文将从算法原理、性能优势以及应用场景等方面来详细介绍NLMS算法。
一、算法原理NLMS算法是通过不断调整滤波器权值来逼近系统的理想响应。
它的主要思想是利用回归滤波器的输出与期望响应之间的残差来更新权值。
具体而言,设期望响应为d(n),滤波器的权值为w(n),回归滤波器的输出为y(n),则NLMS算法的更新公式如下:w(n+1)=w(n)+μ*e(n)*x(n)其中,w(n+1)代表第n+1个采样时刻的权值,μ为步长参数,e(n)为残差,x(n)为输入信号。
残差通过以下公式计算:e(n)=d(n)-y(n)NLMS算法的核心思想是,通过不断更新权值,使残差最小化。
步长参数μ的选择会直接影响算法的收敛速度和稳定性。
较小的μ会使算法收敛速度变慢,但稳定性较好;较大的μ会使算法收敛速度加快,但可能导致震荡或不稳定性。
二、性能优势1.自适应性:NLMS算法能够根据环境的变化自动调整权值,适应不同输入信号和噪声环境。
2.实时性:由于算法简单,实时性较高,适用于实时信号处理应用。
3.良好的收敛速度:相较于传统的LMS算法,在均方误差相同的情况下,NLMS算法的收敛速度更快,能够更快地逼近系统的理想响应。
4.较低的稳态误差:NLMS算法在稳态时的均方误差较小,能够更好地抑制噪声干扰。
5.适应性增强:NLMS算法可以通过调整步长参数μ来平衡算法的收敛速度和稳定性,增强了算法的适应性。
三、应用场景1.自适应滤波:NLMS算法常用于自适应滤波器设计,能够根据环境的变化自动调整滤波器权值,对信号去噪、信号增强等起到良好的效果。
2.通信系统:在通信系统中,NLMS算法可以用于自适应均衡、自适应预编码等,从而提高系统对不同传输信道的适应能力。
3.机器学习:NLMS算法在支持向量机(SVM)等机器学习方法中也有应用,能够优化模型的拟合效果和预测准确性。
一种改进的变步长NLMS算法刘志骋;杨博【摘要】针对传统NLMS使用固定步长而出现的收敛速度和稳态误差的矛盾,提出一种改进的变步长NLMS算法.该算法建立了步长与误差的函数关系,使步长随着输出误差和噪声误差的变化而动态更新,从而降低稳态误差.理论分析和仿真结果表明,与现有NLMS算法相比,改进的算法具有更快的收敛速度和更低的稳态误差.%Aiming at the contradiction between convergence speed and steady state error of the traditional NLMS,an im-proved variable-step NLMS algorithm is proposed,in which the functional relationship between step-length and error is estab-lished,which makes dynamic update of step length changed with variation of output error and noise error to reduce steady-state error. The theoretical analysis and simulation results show that,compared with the existing NLMS algorithm,the improved algo-rithm has faster convergence speed and lower steady-state error.【期刊名称】《现代电子技术》【年(卷),期】2015(038)022【总页数】3页(P12-13,16)【关键词】自适应滤波;归一化最小均方误差算法;变步长;稳态误差【作者】刘志骋;杨博【作者单位】武警工程大学信息工程系,陕西西安 710086;武警工程大学信息工程系,陕西西安 710086【正文语种】中文【中图分类】TN710-34;TN911.7自适应算法是信号处理领域研究的重点,常应用于噪声消除,回声消除,系统辨识,信道均衡等领域。
CO N T E N T改进的LMS算法——NLMS算法LMS算法原理两种算法性能分析总结LMS(最小均方误差)算法是基于梯度的算法,应用准则是均方误差函数(MSE )最小化原则,它在迭代运算中不断地调整滤波器权系数,直到MSE 达到最小值为止。
设计自适应滤波器的最常用的结构就是横向滤波器结构,输出信号y n 为:y n =w T n ∗x n = i=0N−1w i n x(n −i)N 为滤波器阶数,w T n 为权系数的转置。
FIR 自适应滤波器输出的形式可以看做是x n 与w n 两个矩阵的卷积,误差信号为参考输入信号与实际输出信号的差值e n =d n −y n =d n −w T n ∗x(n)1LMS算法的基本思想是利用e n与x(n)的某种关系,来不断更新自适应滤波器的权系数,从而使均方误差达到最小值,达到最优滤波效果。
均方误差J n为:J n=E e2n=E[d2n−2d n w T n∗x n+w T n∗x n2]通过对J n求导来得到使取得最小值的滤波器权系数,得到使代价函数最小的滤波器系数值:w=R−1∗P其中P=E d n∗x n为输入信号和参考信号的互相关矩阵R=E[x n∗x T n]为输入信号的自相关矩阵将均方误差E e2n对各w i矢量求导,获得均方误差梯度∇n为:∇n=ðE[e2(n)]ðw i⋮ðE[e2(n)]ðw n1设w n +1表示n +1时刻的滤波器系数权矢量,根据最陡下降法,滤波器权系数递归迭代公式表示为:w n +1=w n +μx n ∗e(n)其中μ为自适应步长,用来控制滤波器算法收敛性和稳定性。
对于LMS 算法为了保证收敛,μ的取值范围为:0<μ<2λmax输入信号为加了高斯噪声后的随机信号,取μ=1,α=0.001,μ= 0.2得到两种算法的误差曲线如下图所示:下降曲线的斜率反应了算法的收敛速度,稳定后的误差反映了算法的精度。
LMSAPANLMSFRLS算法分析
LMS算法是最常用的自适应滤波算法之一,它是基于最小均方差(MSE)原则的一种加权最小二乘算法。
它的基本思想是以期望和观察误差之间的均方差作为一个指标,试图最小化误差,从而获得一个最优滤波器设计。
LMS算法可以快速而高效地调整滤波器系数,以最大化信号的抑制噪声的能力,是一种逐步增加信号的方法。
APA算法是另一种常用的自适应滤波器算法。
它基于最大似然准则,试图估计出使得观测值合理和自相关系数最大的滤波器。
APA算法不仅考虑了噪声的强度,而且考虑了噪声的自相关性,从而更有效地抑制噪声。
在大多数情况下,APA算法比LMS算法更有效,更稳定,滤波器系数的更新也更平滑。
NLMS算法是一种非线性自适应滤波算法,其基本思想是受到距离准
则的启发,以希尔伯特误差函数作为最小化准则,从而来寻求最优的滤波器设计。
NLMS算法的主要优势在于它的精确度高,收敛速度快,在噪声
多的情况下也有良好的表现。
它也比其他算法更容易实现,因为它只需要计算一个最小二乘系数来计算中间变量,而不需要逆矩阵的计算。
FRLS算法是一种近似最小二乘的自适应滤波算法,它基于利用逆维
费雪滤波器的思想,可以有效地处理一些求逆复杂的情况。
基于DSP 的回波抵消器设计与实现要求:–掌握回波抵消原理–掌握NLMS 算法– 完成信号源的MATLAB 仿真– 用汇编编程实现– 用CCS 图形功能观察各信号波形– 讨论:步长因子、滤波器阶数N 对收敛速度的影响基于LMS 算法及其变体算法在各种各样的自适应算法里,应用最广的自适应算法形式为“下降算法”。
即:ˆ(1)nh k +=ˆ()n h k +(1)(1)k v k μ++ (3.2) 式中ˆ(1)nh k +为第k+1次迭代的权向量,(1)k μ+为第k+1次迭代的更新步长,而(1)v k +为第k+1次迭代的更新方向(向量);“下降算法”有两种实现方法。
一种是“自适应梯度算法”,另一种是“自适应高斯—牛顿算法”。
自适应梯度算法包括LMS (Least Mean Square )算法及其各种变型和改进算法(统称LMS 类自适应算法),自适应高斯-牛顿算法则包括RLS (Recursive Least Square )算法及其变型和改进算法。
下面首先介绍的是LMS 类算法。
1、 LMS 算法最常用的下降算法为“梯度下降法”,常称“最陡下降法”。
在这类算法里,更新方向向量(1)v k +取作第k 次迭代的代价函数J[ˆ()nh k ][1]的负梯度,用“ˆ()[()]nn J h k -∇=-∇”表示。
有名的LMS 自适应算法正是以最陡下降法为原则的,它是一种很有用且很简单的估计梯度方法,其最核心的思想是用平方误差来代替均方误差。
即使e(n)平方值的期望值最小,并且根据此判据来修改权系数ˆ()nh k 。
现在最常用的Widrow-Hoff LMS 自适应算法是采用“随机梯度法”来求解最佳权系数的。
该算法用瞬时的“-2e(n)*x(n)”来代替对“-2E{e(n)*x(n)}”的估计运算。
其权系数更新表达式为(3.3)式。
ˆ(1)nh k +=ˆ()n h k +2()()e k x k n μ- (3.3) 其中e(k)意义同公式(3.1),定义为期望输出和滤波器实际输出之间的误差。
μ是一个控制稳定性和收敛速度的待定常数参量,称之为环路增益参量(loop gain parameter )或步长因子(Step-size factor )。
过去三四十年中,人们一直致力于LMS 算法的研究。
其中最引人注目的是优化理论。
迄今已有各种改进型算法被提出来,而这些改进型算法一般都可以归结为步长因子μ的某种取法。
事实上公式(3.2)中只有μ是待定的。
许多研究已证明,μ值与学习曲线的时间常数成反比,与失调量成正比。
即μ的优化只能在收敛速度和失调量两个指标之间取折衷,折衷思想是以后各种改进算法,例如NLMS 的主要依据。
单纯LMS 算法的最大优点是算法简单,但其不足之处也是很明显的。
对非平稳强相关的语音信号激励和冲激响应持续期很长的回波通道,LMS 算法在时域直接实现时,辨识计算负担重,收敛速度慢。
2、 NLMS(Normalized_LMS)算法由于输入信号的大小对LMS 算法存在影响,即同样情况下,能量高的信号会引起梯度放大,而能量低的信号算法收敛速度较慢。
将输入信号按照自身的平均能量进行归一化处理,就得到了归一化LMS 算法,也称NLMS 算法。
NLMS 算法的原理是使预测信号的均方误差最小。
即使22ˆ[()]{[()()]}E e k E r k rk =-最小。
采用迭代算法的NLMS 算法表示为公式(3.4)。
2()()ˆˆ(1)()ˆ()n n x e k x k n h k h k N k μσ-+=+ (3.4) 其中,12201ˆ()()N xk k x k n N σ-==-∑[2];N 是噪声消除器和回波抵消器的长度,(常取为256,512,或1024阶);μ是可变的收敛步长因子。
NLMS 算法仍保留了算法简单,运算量小,易于实现的优点并且从20世纪70年代后期,就成为商业化回波抵消器常采用的算法。
但它的最大缺点仍是对冲击响应通道比较长的应用,收敛速度较慢;而且在强相关语音信号输入的情况下,误差信号的收敛性能会急剧恶化,为使其更适合网络回波抵消器的要求,必须对其进行进一步的改进。
基于LMS 算法的NLMS 算法LMS 方法应用的是瞬时数据,只有在统计平均意义下才与最陡梯度法等效,它的解所反映的过程是随机的由上面介绍的内容可知:2[()]{()}2()()W N N n E e n E e n e n W W ⎧⎫∂∂∀ε==⎨⎬∂∂⎩⎭又因为:e(n)=r(n)-r(n)_text10()_()()()N N T i N i r n test w x n i W n X n -==-=∑()()N Ne n X n W ∂=-∂ 代入上式后可得到[()]2{()()}W N n E e n X n ∀ε=-这样可以得到N W 的另一种迭代方式(1)()()()}N N N W n W n e n X n +=+αE{ (2)这里需要知道交相互项()()}N e n X n E{由于它是未知的,所以我们只能使用它的估值,一种直观的估计式为:11{().()}()()K N N iE e n X n e n i X n i K -=--∑ (3)其中的K 是我们使用的数据的长度,或称为使用的窗宽.将(3)式代入(2)式可以得到用估计算法的最陡梯度算法.而LMS 算法则在这个基础上更进一步,直接使用瞬时值来代替估计值.即令:{().()}()()N N E e n X n e n X n =这样就可以得到LMS 的算法迭代式:(1)()().()N N N W n W n e n X n +=+α这就是LMS 算法的迭代式.它虽然是一个近似式,却能够在一定程度反映输入数据的统计特性随着时间的变化(非平稳性). 且波动瞬间时值随输入信号的不同而异.由于LMS 算法采用瞬时值代替期望值,因而带来了解的随机波动,这种方法可以看作最陡梯度法的一种近似.由于它迭代的计算量小,所需的存储器也小,因而在实践中被大量应用. 由于输入信号的大小对LMS 算法存在影响,即同样情况下,能量高的信号会引起梯度放大,而能量低的信号算法收敛速度较慢.将输入信号按照自身的平均能量进行归一化处理,就得到了归一化LMS 算法,也称NLMS 算法.NLMS 算法的原理是使预测信号的均方误差最小.即使22[()]{[()_()]}E e k E r k r est k =-最小.采用迭代算法的NLMS 算法表示为下式2()()(1)()()e k x k n h k h k Np k μ-+=+ 其中12201()()N n p k x k n N -==-∑;N 是回声抵消器的长度, 是可变的收敛步长因子.NLMS 算法仍保留了算法简单,运算量小,易于实现的优点并且从20世纪80年代后期,就成为商业化回声抵消器常采用的算法.但它的最大缺点仍是对冲击响应通道比较长的应用,收敛速度较慢;而且在强相关语音信号输入的情况下,误差信号的收敛性能会急剧恶化,为使其更适合网络回声抵消器的要求,必须对其进行一步的改进.1 回波抵消器基本原理一般来说,在数字信号处理方法中,均采用了适当的自适应辨识方案来对消回波。
它的基本原理是用一个自适应滤波器,通过自适应滤波器算法的调整,使其冲击响应与实际回波相逼近,从而得到回波预测信号,再将预测信号从接收到的信号中减去,即可实现回波抵消。
基本原理图如图5-1所示。
图 5-1 回波抵消器原理图其中:远端输入信号为x(n),回波抵消器产生的回波抵消预测信号为y(n),实际回波信号为d(n),预测误差信号为e(n).则用公式表达回波抵消的过程为:e(k)=d(k)-ˆ()r k (5.1) 10ˆˆ()()()N n rk h k x k n -==-∑ (5.2) 由图5-1可知,噪声消除器和回波抵消器的核心是一个自适应滤波器。
而自适应滤波器使用中要考虑的重要问题是优化调整滤波器的参数的准则,该准则不仅要对滤波器性能提供有意义的度量,而且必须导出可实现的算法。
对自适应算法的要求是收敛速度快,计算复杂度低,稳定性好和失调误差小等。
2 自适应算法说明回波抵消器中的自适应滤波器有一个典型的特点,就是要求有冲激响应持续期很长的回波通道(64ms ≥)。
这也同时要求所采用的自适应算法具有比较快的收敛速度。
理论上许多自适应算法都可以应用于回波抵消器中,但在实际设计时,考虑到现实的复杂度、硬件成本以及稳定性等问题,一般都倾向于选择结构简单、顽健性更强的算法。
LMS 算法虽然有较高的计算速率,但是设计时必须小心地选择迭代步长,同时还可能遇到梯度噪声放大问题。
由于它是采用粗糙的梯度估计得到的,它的残差(失调)与收敛速度间是相互制约的,这主要是因为LMS 算法的步长在收敛过程中保持不变。
作为最小均方误差算法的一种改进,NLMS (Normalized Least Mean Square )算法从20世纪70年代以来就为商业化的回波抵消器所常常采用。
它的优点是算法简单,运算量小,易于实现。
所以本设计采用NLMS 算法。
NLMS 算法与LMS 算法不同的是在它的滤波器权系数表达式(,1)(,)()()k n k n n x n k ωωα+=+-中,2()/()n x n αμ= 01μ≤≤;(5.3) ()n α为变步长的收敛参数;μ为新的归一化自适应常数;2()x n [7]为参考信号的功率估计。
表面上看来它和LMS 算法的唯一区别只是用()n α取代了LMS 算法中的常数因子μ,但两者有着本质的区别:LMS 算法中控制收敛的参数μ是固定常数,收敛速度很慢,而NLMS 算法把它改为()n α,()n α是可变的,它根据n 时刻采样的参考信号的功率大小,来实时调整步长大小,从而保证快速收敛。
4. 信号源的MATLAB 仿真本文所讨论的是在没有近端语音的情况下,即s(n)= r(n)。
因此,输入信号有两组:远端语音信号d(n)作为参考信号,另一组是参考信号d(n)的回波x(n)。
我们将人的话音预先从麦克风中输入,存成wav 文件。
然后用Matlab 对该wav 文件进行采样处理。
首先用fopen 函数打开wav 文件,然后用fread 将该音频以16bit 位的方式读取850个点,最后将这850个点输出,这样参考信号d(n)就产生了。
回波信号在信道中有一定的衰减,一般来说在电话通信系统中至少要有6dB 的回波损耗,我们这里选择了10dB 的回波损耗。
这里给出Matlab 实现的关键程序如下:产生输入信号x(n):fid=fopen('echo.wav','r'); %打开声音文件echo.wav[a,count]=fread(fid,850,'bit16'); %以16bit 方式读取该文件中1000个采样点c=rand(850,1);%产生850个随机数c=a(1:850); %将a的850个采样点给c产生回波信号d(n):d=rand(850,1);%产生850个随机数d=floor(c/sqrt(10)+0.5);%将输入信号做10dB的衰减,并取整Save x.dat c –ascii; %将输入信号保存为dat文件Save y.dat d -ascii; %将回波信号保存为dat文件上述保存后的两个数据文件即为回波抵消的输入信号以及回波信号的数据。