




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LMS自适应滤波器的DSP实现LMS自适应滤波器的DSP实现摘 要在传统的LMS(Least Mean Square)算法中,固定步长的选取影响收敛速度与稳态误差,而且两者不可兼得。因此,为在相应的领域内合理使用此类算法,针对这个问题在对多种自适应滤波LMS类算法进行原理分析后,得出此类算法在不同领域的特点,对今后不同人群的合理使用提供了良好条件。为了达到最佳的滤波效果,使自适应滤波器在工作环境变化时自动调节其单位脉冲响应特性,提出了一种自适应算法:最小均方算法(LMS算法) 。这种算法实现简单且对信号统计特性变化具有稳健性,所以获得了极为广泛的应用。针对用硬件实现LMS算法的自适应滤波器存在的诸多缺点,采用Matlab工具对基于LMS算法的自适应滤波器进行了仿真试验。仿真结果表明,应用LMS算法的自适应滤波器不仅可以实现对信号噪声的自适应滤除,还能用于系统识别。关键词:自适应滤波;LMS算法;Matlab;FIRLMS adaptive filter of the DSP to achieveAbstractThe convergent speed and steady state error are affected by the fixed step size and can not be improved simultaneously in classical LMS algorithm. Therefore, to use it correctly in relevant fields, for this contradiction, after analyzing a variety of LMS adaptive filtering algorithms on principle, the characteristic of these algorithms in different fields is presented, this also provides different peoples correct use with a better foundation.In order to achieve the optimum filtering effect, it makes the adaptive filter adjust its units impulse response characteristics automatically on the working environment changed. This paper present s a kind of adaptive algorithm: LeastMean Square (LMS algorithm).As the algorithm is realized simply and has stability with respect to the change of signal statistical characteristics, LMS algorithm is used widely. According to disadvantages of adaptive filter to realize LMS using hardware adaptive filter is simulated which is based on LMS algorithm with Matlab. Result s of simulation show that this kind of adaptive filter not only can filter the signal noise, but also recognize the system.Keywords:adaptive filtering;LMS algorithm;Matlab;FIR.目 录1 绪 论11.1 研究目的和意义11.2 研究背景及现状11.3 本文研究内容22 自适应滤波LMS 类算法种类32.1 传统LMS算法32.2 变步长的LMS算法32.3 变化域的LMS算法42.4 DSP52.5 MATLAB62.6 本章小结63 自适应滤波器的DSP实现73.1 DSP实现73.1.1 流程图73.1.2 设计思想83.2 程序实现结果93.3 本章小结114 自适应滤波器的算法实现124.1 自适应滤波器的MATLAB仿真124.2 C语言的实现134.3 汇编的实现144.4 LMS应用实例194.4 本章小结205 总结和展望225.1 总结225.2 工作展望22参 考 文 献23III1 绪 论1960 年Widrow 和Hoff 提出最小均方误差 (LMS) 算法。LMS 算法具有计算量小,结构简单,易于实现等诸多优点,尤其是这种算法是最先由统计分析法导出的一种实用算法,它是一类自适应滤波器的基础,因此在很多领域得到了广泛的应用【1】。1.1 研究目的和意义自适应滤波器属于现代滤波器的范畴,他是20 世纪40 年代发展起来的自适应信号处理领域的一个重要应用,其设计方法对滤波器的性能影响很大【2】。实际上自适应滤波器是一种能够自动调整本身参数的特殊维纳滤波器,在设计时不需要事先知道关于输入信号和噪声的统计特性的知识,他能够在自己的工作过程中逐渐“了解”或估计出所需的统计特性,并以此为依据自动调整自己的参数,以达到最佳滤波效果。一旦输入信号的统计特性发生变化,他又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳。因此,自适应滤波器具有“自我调节”和“跟踪”能力。1.2 研究背景及现状 FIR和IIR是两种具有固定系数的滤波器,它们的特性都是已知的。但是在许多DSP应用场合中,信号所处的系统是时变的,信号本身的特性也是时变的,或者无法预先知道信号和噪声的特性,此时使用固定参数的滤波器,无法实现最优的设计效果。因此设计能够满足系统或环境动态变化的滤波器成为研究热点。一方面,这种滤波器的性能要具有自学习或者训练能力,能随着时间作相应的变化或更新;更一方面,滤波器的参数调整能够自适应递推更新,避免大计算量的运算,符合实时处理的要求。这类滤波器可以统称为自适应滤波器【3】。自适应滤波器的研究包括滤波器的结构设计、滤波器的自适应算法、算法的统计性能分析以及在各种场合下的应用问题。自适应滤波器可以采用FIR和IIR结构。由于IIR滤波器存在稳定性问题,因此一般采用FIR滤波器作为自适应滤波器的结构。用FIR具体实现时,还可以分为横向结构、对称横向结构和格型结构等几种。自适应算法通过调整滤波器系数的方法实现自适应滤波器的特性变化,这是自适应滤波器性能好坏的基础。自适应算法的设计需要满足一定的最优设计准则,现在最常用的是均方误差最小准则,及时得估计的均方误差最小。这种理论称为最佳线性滤波理论,并得到一套完整的递推估计算法,即Kalman滤波理论。这两种理论是现在自适应滤波中研究最多的理论。1.3 本文研究内容本文重点介绍最小均方差(LMS)自适应算法。在传统的LMS(Least Mean Square) 算法中,固定步长的选取影响收敛速度与稳态误差,而且两者不可兼得。因此,为在相应的领域内合理使用此类算法,针对这个问题在对多种自适应滤波LMS 类算法进行原理分析后,得出此类算法在不同领域的特点,对今后不同人群的合理使用提供了良好条件。为了达到最佳的滤波效果,使自适应滤波器在工作环境变化时自动调节其单位脉冲响应特性,提出了一种自适应算法:最小均方算法(LMS算法)。这种算法实现简单且对信号统计特性变化具有稳健性,所以获得了极为广泛的应用。针对用硬件实现LMS 算法的自适应滤波器存在的诸多缺点,采用Matlab 工具对基于LMS 算法的自适应滤波器进行了仿真试验。仿真结果表明,应用LMS 算法的自适应滤波器不仅可以实现对信号噪声的自适应滤除,还能用于系统识别。2 自适应滤波LMS 类算法种类2.1 传统LMS算法20 世纪60 年代初由Widrow 和Hoff 提出的最小均方误差(LMS) 算法,因其具有计算量小、易于实现等优点而在实践中被广泛采用【4】。基于最速下降法的最小均方误差(LMS) 算法的迭代公式如下:yn=WTnXnen=dn-yn=dn-WTnXnWn+1=Wn+2enXn(2-1)式(2-1)中,W(n)为n时刻自适应滤波器的权矢量,W(n) = w0(n),w1(n) ,wN-1(n)T,N为自适应滤波器的阶数,X(n)为n时刻自适应滤波器的参考输入矢量,由最近N个信号采样值构成:Xn=xn,xn-1,xn-N+1T(2-2)式(2-2)中d(n)是期望的输出值;e(n)为自适应滤波器的输出误差调节信号(简称失调信号);是控制自适应速度与稳定性的增益常数,又叫收敛因子或步长因子。LMS 算法收敛的条件为:0 0 控制函数的形状,参数 0 控制函数的取值范围。该函数比Sigmoid 函数简单,且在误差e(n)接近零处具有缓慢变化的特性,克服了Sigmoid 函数在自适应稳态阶段步长调整过程中的不足。2.3 变化域的LMS算法当输入信号具有高度的相关性时,LMS算法的收敛性能降低,这是由于LMS算法的收敛性能依赖于输入信号自相关矩阵的特征值发散程度。输入信号自相关矩阵的特征值发散程度越小,LMS算法的收敛性能越好。采用变换域算法可以增加LMS算法的收敛速度。其基本思路是,对输入信号做某些正交变换以去其相关性或衰减其相关性,则输入信号自相关矩阵的特征值发散程度会变小,其收敛性能自然就得以改善【6】。变换域自适应滤波的基本思想是把时域信号转变为变换域信号,在变换域中采用自适应算法。变换域LMS 算法的一般步骤是:(1) 选择正交变换,把时域信号转变为变换域信号;(2) 变换后的信号用其能量的平方根归一化;(3) 采用某一自适应算法进行滤波。设输入信号为:xn=xn,xn-1,xn-N+1T(2-5)式(2-5)经过T变换后为:Xn=Txn(2-6)式(2-6)中T是NN正交变换矩阵,常用的正交变换有卡亨南洛厄维(KarhuenLoeve)、变换离散余弦变换(DCT)、离散傅里叶变换(DFT)、离散Hartly 变换及Walsh Hadamard变换等。自适应滤波器的权系数向量定义如式(2-7)所示:wnTwn(2-7)滤波器的输出信号如式(2-8)所示:yn=WTnXn(2-8)误差信号如式(2-9)所示:en=dn-yn(2-9)权系数向量的迭代方程为:wn+1=wn+2enp-lnXnpn=diagpn,0,pn,1,pn,N-1pn,l=pn-1,l+1-XT(n,l)X(n,l)l=0,1,N-1(2-10)式(2-10)中为控制估计精度和跟踪能力的平滑系数,01。若令2 = P(n),则权系数向量的迭代方程为:wn+1=wn+2e(n)-2X(n)(2-11)由上式(2-11)可知变换有很多方法,无论用何种正交变换,只要滤波器权系数的数目相同,即变换矩阵T的阶数一样,则TRLMS 算法的最小均方误差总是相同的。近年来小波变换也被引入自适应滤波器,用小波变换的方法对自适应滤波器的输入进行正交变换,将输入信号向量正交分解到多尺度空间,利用小波的时频局部特性,减小了自适应滤波器输入向量自相关阵特征值的分散程度,大大增加了算法的收敛步长,提高了LMS算法的收敛速度和稳定性。2.4 DSP DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号,再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色【7】。DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点: (1)在一个指令周期内可完成一次乘法和一次加法; (2)程序和数据空间分开,可以同时访问指令和数据; (3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问; (4)具有低开销或无开销循环及跳转的硬件支持; (5)快速的中断处理和硬件I/O支持; (6)具有在单周期内操作的多个硬件地址产生器; (7)可以并行执行多个操作; (8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。当然,与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。2.5 MATLABMATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用【8】。2.6 本章小结本章介绍了LMS的几种常见的算法包括传统的LMS算法、变步长的LMS算法和变化域的LMS算法。以及一些DSP和MATLAB的相关知识。DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。MATLAB 是用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。3 自适应滤波器的DSP实现3.1 DSP实现数字信号处理器以其运行速度快、运算精度高、硬件配置强等特点,在现代数字信号处理中得到了广泛应用。基于DSP 的自适应滤波器与用硬件实现的滤波器相比有很多优点,其功耗以及体积更小,更容易实现,修改程序使系统很容易升级,功能进一步完善【9】。一个自适应滤波器的实现的复杂程度通常是它所需的乘法次数和阶数来衡量的。大多数DSP 都有并行的硬件乘法器、流水线结构、快速的片内存储器以及特殊的运算指令,这些资源使自适应滤波器的实现更容易、更有效。C54x DSP的LMS、STMPY和RPTBD指令可以为自适应滤波器减少代码的执行时间。本文在通用DSP芯片TMS320C54X上编程调试实现了基于LMS 算法的64阶自适应滤波器。利用TMS320C54X实现LMS自适应算法时,存储器中数据的存放形式对DSP的有效运用有着特殊的意义,合理的存放形式,可以使算法实现起来更加快速和高效,为了实现算法中输入样值x(n)和滤波器系数W(n)的对应项相乘,他们在存储器中的存放形式如图3.1 所示。图3.1 TMS320C54X自适应滤波器存储器组织形式3.1.1 流程图图3.2为自适应滤波DSP 实现的程序流程图。整个实现过程主要分为3 步(1) 滤波运算前的相关运算单元、寄存器以及变量的初始化;(2) 根据输入的采样值计算滤波器的输出并求出误差;(3) 根据LMS 算法的迭代公式更新滤波器参数,有新的采样输入后转到第二步循环执行。开始初始化,开辟自适应滤波系数及输入样值的存放单元,初始化各地址指针采用误差舍入,确定收敛因子U = 0.01读入样值点进行滤波计算 N-1y(n) = x(n - 1)*u(i) i = 0计算误差并进行舍入处理改写权系数Wi(n + 1)=U*e(n)*x(n N + 1)*Wi(n),n = 1,2,n - 1存储滤波输出及误差信号一帧采样是否全部处理完毕?NY结束图3-2 自适应滤波DSP实现流程图3.1.2 设计思想在编写程序的初始阶段,首先应该进行自适应系数、缓冲区、变量的初始化,并设置循环缓冲区的地址以及数据和程序段在存储区内的分配。基于LMS自适应算法的输入信号应该同时从输入端口输入,或者利用指令把所需的数据调入指定的存储区间,这些信号既可以直接存储在数据区内(当运行归一化LMS时,直接从这些存储区内调用) ,也可以利用数据定义指令直接定义在指定的存储区内。值得注意的是,当利用调用指令调用上一程序运行的结果时,主程序一定要保证在数据区的分配上不再定义上一程序的输出数据空间,否则原来存入的数据可能会改变,进而导致程序运行结果不正确。在本程序中,采用直接把数据定义到所指定的存储空间的方法,例如输入信号x(n)被定义在片内RAM中0800H开始的一段字长为128的空间内,期望的响应数据d(n)被定义在以0880H开始的空间内,输出数据y(n)被分配在从0900H开始的128字长的数据区内。自适应滤波器的系数在每次迭代后都要重新修改赋值,所以也要存放在可读写的片内RAM中,而不能存放在ROM区中。此外,还有误差信号e(n),步长因子等。为了避免数据区的重叠,可以把各个数据区之间留一定的保留空间。3.2 程序实现结果按照上述设计思想,我们在通用DSP芯片TMS320C54X上具体实现了基于LMS算法的64 阶自适应滤波器,程序输入的测试信号是由数字正弦波振荡器(采用DSP和相应算法软件实现,只需简单改变参数即可产生不同频率的正弦波以满足自适应滤波器不同的输入要求)产生的500Hz正弦波,如图3.3所示。自适应滤波器采样频率为8000Hz,实现对128个采样点进行自适应滤波,自适应步长因子在取值范围内取0.01,程序运行后自适应滤波器的输出信号如图3.4所示。可以看出经过一段时间的自适应后滤波器的输出便能够“跟踪”输入信号的频率和幅度,与滤波器的期望输出信号相一致。图3-3 自适应滤波器的输入(0.5kHz正弦波)图3-4 自适应滤波器输出波形图3.5 给出了自适应过程中滤波器的系数变化波形。自适应滤波器之所以能够“聪明”地跟踪输入信号,就在于算法不断地根据实际输出和期望输出的误差调整滤波器的系数,从而使输出跟踪输入。程序调试过程中改变自适应滤波器输入正弦信号的频率或将输入改为阶跃信号等其他不同的信号,滤波器的输出同样能够跟踪输入(波形在此不再列出) ,这表明基于DSP 实现的自适应滤波器能有效地在未知环境中跟踪时变的输入信号,使输出信号达到最优。图3-5 输出为0.5kHz正弦波时自适应滤波器的系数变化波形3.3 本章小结本章研究了利用TMS320C5402定点DSP实现LMS算法的自适应滤波器的方法,并用DSP汇编语言编程实现了一个64阶的FIR横向结构的数字自适应滤波器。程序运行结果表明,只要选取合适的收敛因子,自适应滤波器对外界信号和噪声有实时跟踪和自我参数调整优化的能力,而采用高速可编程的DSP芯片可以实时地处理各种运算量大的自适应算法,这将使得自适应滤波器在实际中的应用越来越广泛。4 自适应滤波器的算法实现4.1 自适应滤波器的MATLAB仿真下面的函数是利用Matlab实现的LMS函数,为加快滤波器的收敛速度,采用归一化LMS算法。其中滤波器结构采用横向滤波器,输入信号为s,滤波器阶数为order,期望信号为d,输出的滤波器系数为w,滤波结果为y。Function y,w = nlms(s,order,d)w = zeros(order,1);s = s(:);N = size(s,1);alpha = 0.95; %beita = 0.001; %M = 5;For n = order:NU = s(n:-1:n order + 1);y(n) = w * u;e(n) = d(n) y(n);mu = alpha * 2/(M*(beita + u * u);%自适应步长计算w = w + mu * u * e(n);end同时Matlab软件提供了一个基本的自适应滤波程序,它的调用方法如下:y,e,S = adaptnlms(x,d,S);其中,x是输入信号,d是期望信号,y是滤波输出,e是滤波误差,S是一个包含自适应滤波器信息的结构体。S的构成包括S.coeffs:自适应滤波器的系数S.step:LMS的步长大小;S.states:自适应滤波器的状态;S.leakage:自适应滤波器的泄露参数;S.offset:归一化选项的可选偏移值;S.iter:自适应滤波器的迭代次数;采用同样的方法,还可以利用函数adaptlms,sdaptrls,adaptkalman等函数实现其他类型的自适应滤波器算法。由于通过这些函数无法直接理解计算过程,也不便于算法的改进,就不再详细介绍了。使用LMS算法的自适应滤波器进行信噪分离,也就是去噪。仿真过程为了确保噪声的相关性,首先让噪声通过一个11阶的低通FIR滤波器,然后将滤波后的噪声加到信号中去;最后再用LMS算法的自适应滤波器去噪。Matlab仿真程序运行结果如图4.1 所示。仿真结果分析:图4.1 的(a)为去噪前信号和噪声的合成时域图,(b)为际信号和去掉噪声后信号的时域图。比较(a)和(b)后可以看出,采用自适应滤波处理后信号得到明显的加强和改善。图4-1 自适应滤波器信噪分离仿真结果数据4.2 C语言的实现实现的归一化LMS算法如下所示,使用的各个参数说明为:信号输入长度n,滤波器的长度为l,输入数据矢量为x(0:n-1),同时也作为输出数据的缓存,期望信号矢量为d(0:n-1),一阶自适应滤波器的系数为b(0:1)。处理缓存px,用于保存x的延迟数据,长度为l。自适应滤波器的收敛因子为mu,在计算归一化的自适应步长时,使用的信号功率估计值为pow,同时设定功率估计的遗忘因子为al,利用下面的公式估计信号功率:pow(k) = al * (x(k)*x(k)+(l - al)*pow(k -1)void nlms(float *x,long *n,float *d,float *b,long *l,float *mu,float *pow,float *al,float *px)long k,ll;float e,tmp;if(*mu = 1.0)return;if(*sig = 0.0)return;if(*al =1.0)return;for(k = 0;k *n;+k)px0 = xk;xk = 0.0;for(ll = 0;ll = *l;+ll)xk += bll * pxll;e = dk xk;*pow = *al *(px0 * px0)+(1.0 - *al)* *pow;tmp = *mu * 2 /(1.0 + (float)*l)* *pow);for(ll = 0;ll =l;-ll)pxll = pxll 1;return;4.3 汇编的实现Function: ndlmsDescription: ndlms fir filter .mmregs 局部变量的定义.asg (0),mu_error ;2*mu*error(i) variable.asg (1),inv_abs_power ;inverse absolute power.asg (2),abs_power ;absolute power(long-aligned).asg (4),save_stl.asg (5),save_st0.asg (6),save_ar7.asg (7),save_ar6 ;stack description.asg (8),save_ar1.asg (9),ret_addr.asg (10),arg_h.asg (11),arg_y.asg (12),arg_d.asg (13),arg_des.asg (14),arg_nh.asg (15),arg_n.asg (16),arg_l_tau.asg (17),arg_cutoff.asg (18),arg_gain.asg (19),arg_norm_d 寻址寄存器的定义.asg ar1,ar_count.asg ar2,ar_d.asg ar3,ar_h.asg ar4,ar_norm_d.asg ar5,ar_x.asg ar6,ar_y.asg ar7,ar_des.global_ndlms_ndlms: 压栈,保护现场,设置环境pshm ar1pshm ar6pshm ar7PSHM ST0PSHM ST1RSBX 0VARSBX OVB Frame -4 ;保留4个字空间作为局部变量存储单元, ;保存误差更新值、功率的逆及绝对功率初始化 ssbx sxm st #0,*sp(mu_error)从调用参数中获得访问地址stlm a,ar_x ;设置信号x的指针ld #0,adst a,*sp(abs_power)mvdk *sp(arg_h),*(ar_h) ;设置滤波器系数指针mvdk *sp(arg_y),*(ar_y) ;设置输出信号指针mvdk *sp(arg_norm_d),*(ar_norm_d) ;设置归一化缓存器指针mvdk *sp(arg_d),*(ar_d)mvdk *sp(arg_des),*(ar_des) ;圆周寻址mvdk *s(arg_n),*(ar_count) ;样点计数器mar *ar_count- ;设置寻址计数器=nsamples-lld *sp(arg_nh),astlm a,bk ;圆周寻址的缓存区大小为nhsub #02,astl a,*sp(arg_nh)循环计算next_sample: ;更新功率估计值ld *ar_x,0,babs b ;输入信号的绝对值ld *sp(arg_l_tau),tld *sp(arg_l_tau),asmdld *sp(abs_power),asub *sp(abs_power),TS,a ;a=Power-power*2LTAUadd b,ASM,a ;a=a+abs(x)*2LTAUadd *ap(arg_cutoff),TS,A ;a=a+CUTOFF*2LTAUdst a,*sp(abs_power) ;利用衰减因子和下限值计算功率更新值ld #1,16,brpt #14subc *sp(abs_power),bstl b,*sp(inv_abs_power);inv_abs_power=1/abs_powerld #0,ASM ;清除ASM(在指令stllmpy中使用)ssbx frctstm #1,AR0 ;设置信号循环的更新步长mvdk *sp(arg_nh),brc ;设置循环次数 ld *sp(mu_error),t ;t=2*mu*error(i)sub b,b ;累加器b清零mvdd *ar_d+0% ;更新缓存单元,新样点输入到dbuffer中;下面是循环,在(nh-1)个抽头处循环rptbd nlms_end-1mpy *ar_norm_d+%,a ;a=muerror*n_x+i-N),更新信号缓存指针lms *ar_h,*ar_d+0% ;LMS指令,b= b+h(1)*x(i-N+1 ) ;a=a+h(1)nlms_begst a,*ar_h+0% ;更新滤波器系数,并更改滤波器系数指针mpy *ar_norm_d+0%,a ;a=mu_error*n_x(i-N+1),更新信号缓存指针lms *ar_h,*ar_d+ d+0% ;LMS指令,b=b+h(2)*x(i-N+2) ;a=a+h(2)nlms_end sth a,*ar_h+0% ;更新最后一个滤波器系数 sth b,*ar_y+ ;输出滤波结果 ;计算新的误差 sub *ar_des+,16,b,a neg a ;ah=error(i)=des(i)-y(i) mpya *sp(inv_abs_power) ;(Q0*Q15)1=Q16 sfta b,15 sat b ;将b设为Q13的精度表示 ld *sp(arg_gain),t norm b ;归一化,b=barg_gain sth b,*sp(mu_error) ;更新归一化的延时缓存 ld *ar_x+,16,a mpya *sp(inv_abs_power) ;(Q0*Q15)。根据上述的分析知道,对回波抵消器系数的估计需要在近端无话的条件下进行。因此完整的回波抵消算法必须考虑近端的话音检测,否则无法保证滤波器的误差信号最小。目前近端话音检测采用最多的方法是Geigel算法。Geigel算法要求,如果满足式(4-2),即检测到近端话音为|d(n)|12max(xn,xn-1,xn-N+1)(4-2)在回波抵消的计算中,还可以增加一些其他的控制算法来提高系统性能,例如截止检测和回波抑制等。为了保证回波抵消器在无远端话音时稳定工作,不至于由于没有远端话音激励而造成算法发散,因此需要判断远端信号的大小,当小于截止门限时,停止回波抵消器的抽头更新,此时截止检测中需要设置的参数为截止电平。4.4 本章小结本章详细介绍了LMS算法的几种实现包括利用Matlab实现的LMS函数,为加快滤波器的收敛速度,采用归一化LMS算法以及在实际生产生活种的应用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年关于电子产品销售的合同模板
- 会员制合同样本
- 众筹合作协议合同范例
- 二零二五外聘演员合同范例
- 供用热合同标准文本
- 做合同样本样本
- 顶账楼买卖合同范文
- 离职后保密协议离职保密协议书
- 泵车承包合同范例
- 聘用灶房大师傅合同书
- 当代世界经济与政治 李景治 第八版 课件 第1、2章 当代世界政治、当代世界经济
- 2023年复合型胶粘剂项目安全评价报告
- DZ∕T 0215-2020 矿产地质勘查规范 煤(正式版)
- 【初中+语文】中考语文一轮专题复习+《名著阅读+女性的力量》课件
- 2024年强基计划解读 课件-2024届高三下学期主题班会
- 城市道路桥梁工程施工质量验收规范 DG-TJ08-2152-2014
- 响应面分析软件DesignExpert使用教程
- 《新病历书写规范》课件
- 2024城镇燃气管道非开挖修复更新工程技术规范
- 肠胃消化健康的知识讲座
- 新概念英语第二册-Lesson-56-Faster-than-sound-课件
评论
0/150
提交评论