武汉理工大学《信息群课程设计》报告
3.3 基本LMS算法的性能
3.3.1 LMS算法的特点
LMS算法是一种随机优化方法,LMS算法的两个优点是实现起来简单,不依赖模型(model-independent),因此具有稳健的性能。对其进行了深入的研究,主要有以下三点结论。
(1)LMS 算法是最速下降法的近似,它利用估计的梯度进行调整。因为梯度是函数的局部性质,从局部看在一点附近下降得快,但从总体上来看可能走许多弯路,只有当权矢量坐标位于性能表面的主轴上时,梯度的负方向才指向最小点。因此一般情况下,权向量改变的方向不一定在指向最小值的方向上。由于最速下降并非对整体而言,所以其收敛速度较慢。
(2)为保证 LMS 算法的稳定收敛,步长因子?应满足
10?????max (3-3-1)
这样当迭代次数n趋于无穷大时,权矢量w(n)的期望值将逼近最优解(维纳解)wopt。?值越大,算法收敛越快,但稳态误差也越大;?值越小,算法收敛越慢,但稳态误差也越小。失调与步长因子?成正比;相反地,平均时间常数?mse却与步长因子?成反比。因此,如果减小步长因子?,则失调将减小,但是收敛时间将有所增加,反之亦然。
(3)LMS算法收敛速度受控于特征值的分布范围。自相关阵R的特征值分布范围越大,LMS 算法收敛的越慢;反之,R 的特征值分布范围越小,LMS算法收敛得越快。在极端情况下,当输入信号是白噪声时,自相关阵 R 的所有特征值均相同,这时 LMS 算法收敛速度最快。如果输入是语音信号,而语音信号又恰恰具有较大的特征值的分布范围,从而导致收敛速度会显著地减慢。
(4)失调直接与抽头输入向量成正比,当输入较大时,LMS滤波器遇到梯度噪声放大问题,而输入较小时算法收敛速度较慢。将输入信号按照自身的平均能量进行归一化处理,就得到了归一化LMS算法,也称NLMS算法,可以消除梯度噪声放大问题。
12
武汉理工大学《信息群课程设计》报告
3.3.2 LMS算法的改进
LMS 算法的主要缺点是收敛速度慢,如何加快其收敛速度一直是研究的热点,一般可以从以下三个方面入手。
(1)对步长因子?选用合适的控制方法。步长因子?决定着算法的收敛速度和达到稳态时失调量的大小。对于设定为常数的?来说,收敛速度和失调量是一对矛盾。要想得到较快的收敛速度,可选用大的调整步长,这就导致大的失调量;如果要满足失调量的要求,则收敛速度将受到制约。变步长的方法可以克服这一矛盾。自适应过程开始时,采用较大的步长以保证快的收敛速度,然后步长逐渐减小,以保证稳态时可以得到较小的失调量。
(2)改善梯度估值
如LMS/Newton算法,它在估计梯度后又利用了输入矢量相关函数的估值,使得在每个迭代周期权矢量的改变总是在指向性能表面最小点的方向上。由于其在迭代过程中采用了更多的有关输入信号矢量的信息,其收敛速度比典型的LMS算法相比有显著的提高。
(3)降低输入信号的相关性
从上面对LMS算法的分析结果可知,LMS算法的收敛速度受输入信号特征值分布的影响,因此可以考虑通过对输入信号进行白化处理来提高收敛速度。这方面的算法主要有:
变换域算法的思想是将信号经过某种变换(一般是正交变换)分解为一系列近似不相关的各个分量。很显然,变换域LMS算法的收敛性与变换核函数有关。K-L变换是理论上最佳的,但是计算量太大,在一定条件下,DCT、DST、FFT是K-L变换的良好近似,同时也因为这些变换存在快速算法,因而获得较广泛的应用。
预滤波白化算法是将原始输入信号和目标信号分别通过相同的白化滤波器,将滤波结果再作为输入信号和目标信号进行自适应。
13
武汉理工大学《信息群课程设计》报告
3.4 基于最小均方误差准则的自适应噪声抵消
如果没有关于参考信号向量和输入自相关矩阵R的先验信息,要实现最优滤波器加权是不可能的。因此,Widrow和Hoff提出了另一种可迭代的维纳FIR滤波实现方法。在这种方法中,??(W(n))梯度代替,滤波器的权重可被更新为:
W(n?1)?W(n)?2?e(n)r(n) (3-4-1)
?W项用丢弃期望算子的瞬时
综上所述,基于最小均方误差准则(LMS)的自适应噪声抵消算法可按以下步骤实现:
第一步:设一个初值Wm(0)
第二步:计算自适应FIR滤波器的输出V(n);
V(n)??Wm(n)r(n?m) (3-4-2)
m?0?M?其中,M表示滤波器的阶。
第三步:估计当前时刻n的误差e(n),
e(n)?x(n)?V(n)?S(n) (3-4-3)
??第四步:用最速下降LMS算法更新滤波器权重Wm(n)
Wm(n?1)?Wm(n)?2?e(n)r(n?m) 0?m?M (3-4-4)
第五步:校验误差是否满足标准。若满足标准,则停止迭代。若不满足,则进行下一步;
第六步:,到下一个时刻,重复以上步骤,直至满足要求为止。n?n?1 收敛参数μ必须是正数,并且满足:
10?????max (3-4-5)
1其中,在实际应用中,??max的具体值是不知道的,参数μ的值也需要试探
性地选择。若μ取值小,能保证收敛,但需要注意的是,如果取得过小,收敛速度将非常慢;相反,若μ取值大,可以提高收敛速度,却是以噪声收敛为代价的。
如果参考输入信号是频率为w0的正弦信号,自适应滤波器将从主信号中滤除所有的频率为w0的正弦成分。在这种情况下,自适应滤波器相当于一个槽形滤波器。
14
武汉理工大学《信息群课程设计》报告
4 LMS多麦克风降噪主程序
前面分析研究了自适应噪声消除原理,下面在MATLAB平台上进行模拟与仿真,在MATLAB平台上进行处理。
MATLAB (MATrix LABoratory矩阵实验室)是由美国MathWorks公司推出的用于数值计算和图形处理的科学计算系统环境。它集中了日常数学处理中的各种功能,包括高效的数值计算、矩阵运算、信号处理和图形生成等功能。在MATLAB环境下,可以集成地进行程序设计、数值计算、图形绘制、输入输出等各项操作。
4.1程序流程图
用wavread读取主麦克风录制的受噪声干扰的语音信号,并进行采样,建立数据文件,并用plot画出数据文件时域波形图和频谱图 开始 用wavread读取参考麦克风录制的噪声信号,并用plot画出时域波形图和频谱图 运用LMS算法设计自适应滤波器, 并对被噪声污染的语音信号进行滤波,分析滤波后信号的时域和频域特征 回放语音信号得出所设计滤波器在语音处理中的优劣 结束 图 4-1程序流程图
15
武汉理工大学《信息群课程设计》报告
4.2 LMS多麦克风降噪主程序
用自己设计的滤波器对加噪的主麦克风语音信号进行滤波,主麦克风录制的带噪声的语音信号为LMSprimsp.wav,参考麦克风录制的噪声语音信号为LMSrefns.wav。消噪所采用的方法是:编写自适应滤波器的.m文件,进行噪声消除的仿真分析。在MATLAB中编写M文件,LMS多麦克风降噪主程序如下: fs=20000; bits=16;
[primary,fs,bits]=wavread('LMSprimsp.wav'); sound(primary,fs,bits);
[fref,fs,bits]=wavread('LMSrefns.wav'); sound(fref,fs,bits); % 初始化
primary = primary'; fref = fref';
Worder=35; u=0.001; w=zeros(1,Worder);
output=primary; loopsize=max(size(primary));
for i=1+Worder:loopsize z=primary(i)-w*(fref(i-Worder+1:i))'; n2=fref(i-Worder+1:i); w = w + 2*u*n2*z; output(i-Worder)=z; end;
figure(1); plot(output); title('output');
16
%读入主麦克风语音信号 %读入参考语音信号 %滤波器阶数 %主语音输出 %写LMS算法公式 %作图 %画降噪后的语音波形
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库多麦克风降噪(4)在线全文阅读。
相关推荐: