基于LMS最小均方误差法的语音降噪 北工大.doc

上传人:灯火****19 文档编号:136887705 上传时间:2020-07-03 格式:DOC 页数:15 大小:2.30MB
返回 下载 相关 举报
基于LMS最小均方误差法的语音降噪 北工大.doc_第1页
第1页 / 共15页
基于LMS最小均方误差法的语音降噪 北工大.doc_第2页
第2页 / 共15页
基于LMS最小均方误差法的语音降噪 北工大.doc_第3页
第3页 / 共15页
基于LMS最小均方误差法的语音降噪 北工大.doc_第4页
第4页 / 共15页
基于LMS最小均方误差法的语音降噪 北工大.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《基于LMS最小均方误差法的语音降噪 北工大.doc》由会员分享,可在线阅读,更多相关《基于LMS最小均方误差法的语音降噪 北工大.doc(15页珍藏版)》请在金锄头文库上搜索。

1、代码调试通过 摘 要信号的传输过程中会夹杂很多噪音,为了消除这些噪音而引入滤波器。传统滤波器只能针对具有某种特性的噪音进行滤波,有一定的限制性。而自适应滤波可以在一定程度上解决这种问题,自适应滤波器的特点是依靠递归算法使输出信号收敛于理想信号。本课题采用的是基于LMS算法的最小均方误差法对带噪语音信号进行滤波,通过用梯度的估计值代替梯度的精确值实现最速下降,自适应地寻找最佳权系数,使得输出信号贴近于理想信号,完成滤波。关键词:自适应滤波 LMS算法 最速下降 目 录摘 要1一、课题背景和简介2二、训练目的及内容3三、LMS最小均方误差法实现自适应滤波器的方法3四、实验设计及实施过程5(一)滤波

2、器结构设计5(二)LMS算法的实现6(三)逐帧音频处理7(四)整体程序流程图8五、遇到问题及实验结果分析8(一)遇到问题及解决方法8(二)实验结果分析9六、实验总结11七、参考文献12附 录13一、 课题背景和简介语音信号往往携带很多噪音,为了获得理想的语音信号需要对原始信号进行滤波。传统滤波器只能针对某类噪声进行定性滤除,没有普适性,而自适应滤波器是符合某种准则的最佳滤波器。它是通过对环境进行学习,逐渐达到或逼近最优滤波器。由于学习过程中有“导师”存在,因此它是一种具有监督学习功能的过程。本课题是基于LMS最小均方误差法的语音降噪,是自适应滤波的一种。LMS算法通过用梯度的估计值代替梯度的精

3、确值,自适应地调整权矢量,使误差信号区域降低趋势,从而使滤波器逐渐达到或接近最优。二、 训练目的及内容1.通过利用c程序实现数字信号处理的相关功能,巩固对信号处理原理知识的理解,提高实际编程和处理数据的综合能力,初步培养在解决信号处理实际应用问题中所应具备的基本素质和要求。2.培养研发能力,通过设计实现不同的信号处理问题,初步掌握在给定条件和功能的情况下,实现合理设计算法结构的能力。3.提高文献整理和资料查询的能力。通过课下对相关语音知识的学习和理解,培养快速解决实际问题的能力,并在文献整理的过程中学会科技文献的写作,提高语言表达能力。4.根据语音信号的特点,利用不同信噪比的高斯白噪声对语音进

4、行加噪,利用LMS最小均方误差法设计实现自适应滤波器,并讨论语音状态变化下的收敛情况。三、 LMS最小均方误差法实现自适应滤波器的方法图 1描述的是一个通用的自适应滤波估计问题图 1自适应滤波原理图中表示FIR滤波器,为输入信号,为期望信号,为自适应滤波器的输出信号(其中为滤波器的加权系数),首先给FIR滤波器赋予任意的初始权系数,每得到一个输出,即可得到误差信号,将其作为校正量,自适应地调整权矢量,使误差信号趋于降低的趋势,从而使滤波器逐渐达到或接近最优。调整权矢量的过程,是用最速下降法寻找最佳权系数和最小均方差的过程。均方误差为:的梯度估计值用一条样本曲线进行计算。通过最速下降法用迭代算法

5、求解最佳权系数:,为调整步长的常数,它控制着系统的稳定性和自适应的收敛速度,负梯度的方向即为性能函数减小最快的方向。因为,可得到 故FIR滤波器中第个权系数的计算公式为LMS自适应滤波器的总框图如下图 2 LMS自适应滤波器总计算框图 LMS算法加权矢量的统计平均值的过渡过程和最陡下降法加权矢量的过渡过程是一样的。换句话说,LMS算法加权矢量是在最陡下降法加权矢量附近随机变化的,其统计平均值等于最陡下降法加权矢量,那么,其收敛条件同样为在满足收敛条件下,才有实际中,通常选得很小,选四、 实验设计及实施过程自适应滤波器需要由自适应算法通过调整滤波器系数实现滤波,因而在设计上需要分为FIR滤波器的

6、设计和自适应调整滤波器的LMS算法。(一) 滤波器结构设计1. FIR滤波器原理FIR滤波器是有限长单位冲激响应滤波器,它可以在保证任意幅频特性的同时具有严格的线性相频特性,同时其单位抽样响应是有限长的,因而滤波器是稳定的系统。在自适应处理中要求信号在传输过程中不能有明显相位失真,FIR滤波器可以做到线性相位满足此要求。FIR滤波器的数学表达式为:其中N为FIR滤波器的抽头数,x(n)为第n时刻的输入样本,h(i)为FIR滤波器的第i级抽头系数,简言之就是将每节的输出加权累加,其相应的z变换为:本课题用如图所示的直接型FIR滤波器实现即可图 3 直接型FIR滤波器2. 程序实现程序实现时和理论

7、的卷积略有区别,加权系数w是由LMS算法计算得到的,具有自适应性,和其后序号无关,用wi表示当前加权系数即可。for(i=n-9;in+1;i+)wi=wi+2*mu*en*xi;/更新加权数组yn=yn+wi*xi;/计算当前y(二) LMS算法的实现1. 自适应滤波步长选择根据前面LMS的介绍可知,步长的收敛条件为:在编程实现时,的选择尤为重要。若选择过大,虽然在一开始寻找最优解时会很迅速,但在不断接近最优解时却变得很慢;若选择过小,虽然很精确,但寻找的速度也很慢。在程序的开始,先选定N=10,根据计算的误差值e判断当前距离最优解的距离后再改变值。2. 抽头系数的自适应改变抽头系数即为加权

8、系数,每计算出一个新误差e后,需要更新一遍,以便在下次计算输出时使用,其控制原理如图所示图 4 FIR滤波器中第i个权系数的控制电路图3. 程序实现for(n=9;nONCE+9;n+)for(i=n-9;i0.0001)for(i=n-9;in+1;i+)wi=wi+2*mu*en-9*xi;/更新加权数组t=t+wi*xi;/计算当前yyn-9=t;en-9=sn-9-t;/计算当前误差max=en-9*en-9;t=0;if(max=1)temp=temp;elseif(max=0.1)temp=temp*2;else temp=temp*4;for(i=n-9;in+1;i+)wi=0

9、.01;mu=0;(三) 逐帧音频处理1. 实现原理语音信号在处理中普遍为逐帧处理,为了实现这一功能,每次需读入一帧数据。由于LMS算法在实现过程中是用前N个带噪音频信号数据去估计第N点的输出数据(这里设N=10),因此第一次读入的数据(第一帧)无法估计前9点的输出数据。根据语音信号的传输特点(重要的信息不会在最开始出现)我们可以假设前9点的数据为无效数据,故可在第一帧带噪信号前先加9个0值的数据,以便完成每帧信号的处理。而在以后每帧数据处理前,先将上一帧最后9点的数据补到这帧的起始处。2. 程序实现for(m=0;m9;m+)x2m=xONCE+m-1;/ONCE=160for(m=0;mO

10、NCE;m+)x2m+9=xm;for(m=0;mONCE+9;m+)xm=x2m;/把前一组数的后9点移到最开始(四) 整体程序流程图是否处理所有信号及完当前帧结束更新当前加权数组计算当前输出误差足够小更新误差与步长开始定义文件指针,并打开待处理文件读入一帧数据补接前一数组后九点计算u的取值NYN五、 遇到问题及实验结果分析(一) 遇到问题及解决方法1. mu的取值程序实现过程中虽然是对每帧数据进行处理,但一次只对10个数据进行操作,因此mu的取值需要在操作前定义,根据其公式可知,若分母为0(即此次读入的10个数据均为0),计算机运算时会出现无穷大值。为了解决这一问题,在计算时需加入判断语句

11、,当其为0时直接令输出yn=xn。2. 数组的定义在读入语音信号时,每次读入一帧(160个数据),数据类型为short类型。但在后面数据处理时计算涉及到double类型,故在读入数据时需将数据存入short类型的数组中,在数据处理前转换成double类型,输出前再转换为short。3. 每帧数据的处理虽然读入时是160个数据,但实际处理时有169个数据(每帧前补上次末尾的9个数据),因此循环应为for(n=9;n160+9;n+),起初编程时循环到160就结束了,结果输出音频仍含有杂音,观察后发现第一帧的后10个点的值不正确,导致后面的输出值也有问题,改正后输出正常。4. 权值的更新在循环计算

12、yn时,权值的更新需要用到与对应xi的上次计算得到的wi以及上次循环得到的en,对于此次的wi用的en是相同的。当wi的变化足够小后可计算下一个y,这里的判断语句可以求wi的均方差,但其计算量较大,这里可以用yn与理想信号dn间的误差en代替,其作用是等同的。当en足够小时,可进入下一次yn的计算,注意误差有可能出现负值,故在判断时将其平方后再判断。为了方便后续计算以及防止出现不理想的wi,在进入下次计算前需将wi重置为0.01。(二) 实验结果分析本课题分别对信噪比为6、10和20的白噪声加噪噪音进行滤波。其滤波原理相同,在结果分析中仅以信噪比为6的噪音信号进行分析,其他信噪比情况不再赘述。

13、图5 原始信号波形图与频谱分析图.图6 信噪比为6的白噪音加噪后信号及其频谱分析图从上图可看出加入白噪声后的信号能量在频谱图上均匀分布,这是因为白噪声的功率谱密度为一常数。从听觉上可以听到来自各个频段的一种非常嘈杂的噪声。通过滤波器后可以得到如下滤出信号:图7 信噪比为6的滤出信号及其频谱分析图无论是从波形还是频谱图上均可看出滤波器已将噪音滤除,且降噪效果显著,这是因为在对误差做约束时取值为0.0001,若改成其他值滤波效果也会有所改变。图8 信噪比为10的白噪音加噪后信号图9 信噪比为10的滤出信号图10 信噪比为20的白噪音加噪后信号图11 信噪比为20的滤出信号从对各个信噪比的滤波可以看出,基于LMS最小均方误差的语音降噪对于各个信噪比均适用,而且滤波效果显著。六、 实验总结本次课题与语音信号处理课程的知识有密切联系,我由于未选修过这门课,在入门阶段对其了解比较吃力,但在贾老师的帮助下,我不但理解了这个复杂的数学模型,也通过编程实现了LMS算法,在此非常感谢贾老师的帮助!在编程过程中我没有借鉴过其他程序,然而一直按照自己的思路走很容易遇到问题,既有

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号