基于LMS最小均方误差法的语音降噪北工大汇总_第1页
基于LMS最小均方误差法的语音降噪北工大汇总_第2页
基于LMS最小均方误差法的语音降噪北工大汇总_第3页
基于LMS最小均方误差法的语音降噪北工大汇总_第4页
基于LMS最小均方误差法的语音降噪北工大汇总_第5页
已阅读5页,还剩16页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信号处理与分析课程设计报告第1页共18页信号处理与分析课程设计报告项目名称:基于LMS最小均方误差法的 语音降噪姓名:07021102台斯瑶07021106 王金泊指导教师:李如玮信号处理与分析课程设计报告第2页共18页11七、从实验中分析 LMST法的缺点14目录 TOC o 1-5 h z HYPERLINK l bookmark10 o Current Document 一、课题背景和简介 3 HYPERLINK l bookmark12 o Current Document 二、训练目的 3 HYPERLINK l bookmark14 o Current Document 三、训练内

2、容 4 HYPERLINK l bookmark16 o Current Document 四、最小均方差LMS实现自适应滤波器的方法介绍 .4 HYPERLINK l bookmark18 o Current Document 五、实验设计及实施过程 61、滤波器结构设计 72、高斯白噪声的实现方法83、LMS算法的实现10 六、实验结果分析14八、实验完整程序九、参考文献 十、特别鸣谢 信号处理与分析课程设计报告第3页共18页课题背景和简介本课题是根据电子信息类本科生信号处理和分析课程的学习内容和语音信 号处理的实际应用相结合而设计的实践性训练。课程训练以数字信号处理为基 础,在掌握基本原

3、理的同时,理解语音信号的相关知识并结合实际应用实现对语 音信号的分析和处理。滤波是一种数字信号处理操作,其目的是为了处理某个信号,以便提取出输 入信号中所包含的期望信息。在数字信号处理课程中,我们基本掌握了一些线性 滤波器的设计方法,有固定的规范可遵循。 而在我们的实际生活中,充满了偶然 和随机,时不变滤波器已不能够满足更好效果的滤波。在这种情况下,我们就需要自适应滤波器。可以看到,随着数字超大规模集成技术的发展,自适应滤波技 术在很多领域得到了广泛应用。最小均方算法是一种搜索算法,他通过对目标函数进行适当的调整, 简化了 对梯度相量的计算。由于其计算简单性, LMS算法以及其它一些相关算法已

4、广 泛应用于自适应滤波的各种应用中。而 LMS算法是自适应滤波理论中应用最广 泛的算法。这主要归因于其地计算复杂度、在平稳环境中的收敛性、其均值无偏 地收敛到维纳解以及利用有限精度算法实现时的稳定特性等等。对LMS最小均方算法的学习,将加深我们对数字信号处理课程的理解,同 时对我们今后滤波技术的应用奠定了巩固的基础。:、训I练目的.通过利用c程序实现数字信号处理的相关功能,巩固对信号处理原理知 识的理解,提高实际编程和处理数据的综合能力,初步培养在解决信号处理实际 应用问题中所应具备的基本素质和要求。.培养研发能力,通过设计实现不同的信号处理问题,初步掌握在给定条件和功能的情况下,实现合理设计

5、算法结构的能力信号处理与分析课程设计报告第4页共18页.提高文献整理和资料查询的能力。通过课下对相关语音知识的学习和理 解,培养快速解决实际问题的能力,并在文献整理的过程中学会科技文献的写作, 提高语言表达能力。三、训练内容根据语音信号的特点,利用不同信噪比的高斯白噪声对语音进行加噪,利用 LMS最小均方误差法设计实现自适应滤波器,并讨论语音状态变化下的收敛情 况。四、最小均方差LMS现自适应滤波器的方法介绍自适应滤波器 是符合某种准则的最佳滤波器。它是通过对环境进行学习,逐 渐达到或逼近最优滤波器。由于学习过程中有“导师”存在,因此它是一种具有 监督学习功能的过程。当滤波器的应用环境发生缓慢

6、变化时, 相当于滤波器应用 于非平稳环境,但环境变化比学习速度更缓慢时,自适应滤波器能够自适应地跟 踪这种非平稳变化。国1 自逢良柢旃R原度圉开始时,给FIR滤波器赋予任意的初始权系数,在每个时刻,用当前权系数 对输入信号进行滤波运算,产生输出信号,输出信号与期望响应的差定义为误差 信号,由误差信号与输入信号矢量一起构造一个校正量,自适应地调整权矢量, 使误差信号趋于降低的趋势,从而使滤波器逐渐达到或接近最优。LMS最小均方误差的方法是由最速下降法推导而出。最速下降法需要求出信号处理与分析课程设计报告第5页共18页其梯度的精确值,要求输入信号和期望信号平稳,且巴=21亚2Q (Rak-抽头输入

7、向量u(n)与期望响应d(n)的互相关向量;Rxx=抽头输入向量u(n)的相关矩 阵;W=抽头权向量)要首先估计Rx和Rdx ,这给具体实现带来很大困难,因此 该算法还不是真正意义的自适应滤波算法,但讨论最陡下降法是有意义,由最陡下降法可以很直观地导出一类自适应滤波算法-LMS算法。LMS算法的基本思想:调整滤波器自身参数,使滤波器能够自适应地跟踪这种输入信号的变化,实现最优滤波。当横向滤波器运行在实数据的情况下,该算法大体上可描述为:抽头权向量更新值=老的抽头权向量值+学习速率参数*抽头输入向量*误差信号 其中误差信号定义为期望向量与抽头输入向量所产生的横向滤波器的实际向量 之差设输入信号为

8、u (n) ,LMSJT法理论推导过程如下:N-1滤波器输出 y(n)为:y(n) = wku(nk) n =0,1,2.(1)k=0由误差定义得:e(n) =d(n)-y(n)(2)使用最小均方误差法,得代价函数为均方误差为:(3)J =Ee2(n)式(3)中J是滤波器的系数k w (k = 0,1,2,)的函数。通过选择最优的系数,使J达到最小值。定义梯度向量为? J ,? J =-J- = fEe (n) =2EHe(n)e(n) = -2Eu(n -k)e(n) k = 0,1,2.(4).wkcwkcwk另外,最陡下降迭代方程为:wn +1) = wn) - n ? ? J (n)(

9、5)LMS是直接利用单次采样数据获得的e2 ( n)来代替均方误差J (n),从而进行梯度估计,每次迭代时计梯度估计为:信号处理与分析课程设计报告第6页共18页J(n) = -e2 =_:d2(n) wT(n)u(n)uT(n)w(n)-2d(n)uT(n)w(n) jw(n)jw(n)= 2u(n)uT(n)w(n) -2d(n)u(n)(6)=-2d(n) -uT(n)w(n)u(n) = 2,e(n)u(n)式(6)代入式(5),得到系数向量自适应迭代法:wn +1) = wn) - ? ? ? J (n) = wn) + 2 仙 e(n) u(n)式(7)称最小均方自适应算法LMS五、

10、实验设计及实施过程自适应滤波器的基本原理:所谓自适应滤波,就是利用前一时刻已经获得的 滤波器参数的结果,自动的调节显示课的滤波器的参数, 以适应信号和噪声未知 的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种 能调节器自身传输特性已达到最优的维纳滤波器。 自适应滤波器不需要关于输入 信号的先验知识,计算量小,特别是用于实时处理。由于无法预知信号和噪声的特性,必须设计自适应滤波器,以跟踪信号和噪 声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现 的。一般而言,自适应滤波器有两部分组成,已是滤波器的结构,二是调整滤波 器系数的自适应算法。本实验的滤波结构

11、采用FIR滤波器设计,自适应算法采用 LMS最小均方差算法。信号处理与分析课程设计报告第7页共18页总体结构图如图1图11、滤波器结构设计FIR滤波器原理FIR滤波器的数学表达式为Y-I= 帕)工(制一),巴:I(8) 式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(i)为FIR滤波 器第i级抽头系数。在本实验中,即为 w(n);其相应的z变换为:H(e) =1.(9)式中:z-i为N-1阶多项式信号处理与分析课程设计报告第8页共18页_刑图2 FIR滤波器直线型结构在本实验中,抽头系数会根据每一次的输出进行自适应修改。程序实现对输入信号xi和滤波系数wi进行时域的卷积和,求

12、出输出信号 y.for(i=0;iBUFLEN;i+)y=y+xi*wi;/实际输出信号的合成2、高斯白噪声的实现方法高斯白噪声的原理高斯白噪声:具有高斯分布的噪声就成为高斯噪声,而它的功率谱密 度又是均匀分布的,则称它为高斯白噪声。在本实验中,我组针对高斯白噪声的特点进行了程序的设计。首先确定的我们需要的白噪声的期望值、方差、和噪声数组的长度, 通过一个专门产生白噪声的种子文件进行设计,利用如下公式,最终得到 了所需要的白噪声信号。根据定理:设jG./e/)为n个相互独立的均匀分布的随机数,其期望为E(ri),方差为D(ri),有中心极限定理可知(如果n个独立随机变量的分布式相 同的,并且具

13、有有限的数学期望和方差, 当n无穷大时,它们之和的分布趋近于 高斯分布;即使n个独立随机变量不是相同分布的,当 n无穷大时,如果满足任 意一个随机变量都不占优或对和的影响足够小, 那么它们之和的分布仍然趋于高 斯分布),信号处理与分析课程设计报告第9页共18页当n充分大时,有乂 =程序实现方法for(k=0;k=n-1;k+)(10)for(i=1;i=12;i+)取 D(ri)=l/12 次t=0.0;(*r=(*r)*w+v;*r=*r-m*s;t=t+(*r)/s;ak=u+g*(t-6.0);/求 r,s=65536.0; w=2053.0;v=13849.0;/求整数后余下的数/累加

14、到t中放到ak中,产生高斯白噪声过程信噪比的改变为了测试噪声信号的改变对 LMS算法最终效果的影响,我组对噪声信号进 行了信号能量强度处理。处理方法即使通过给已产生的信号乘上一个系数,通过系数值的改变来调节信号的能量。系数值得计算方法为snrate = / es SNR(11) ns*10 10式中,SNR为信噪比,es为原始声音的均值,ns为噪声的均值。程序实现:snrate=sqrt(es/ns/pow(10,SNR/10); 开根号 pow 计算 10 的 SNR/10次方的值,求能量,为了达到信噪 比20DB而乘上的系数,SNR为信 噪比信号处理与分析课程设计报告第10页共18页3、L

15、MS算法的实现LMS最小均方差算法的原理已在前文给出。本实验就以该原理为基础进行设计。在此不多赘述。需要注意几点:LMS的收敛性LMS算法的收敛因子必须在如下范围内选取:10 :二:二max0p 2/(MSmax)其中Smax是抽头输入U(n)的功率谱密度的最大值,而滤在满足收敛条件下,才有l. inE| w 二 w波器长度M为中到大即,N值得合理选取确保了系数向量的平均值接近于最优系数向量Wo实际中,N通常选得很小,选NE_ x在实验中,选定N=10实验程序为:mu=mu+sn*sn;mu=1/(10*(mu);/sn为加噪信号,即为式(14)中抽头系数的自适应改变抽头系数的自适应改变是LM

16、S算法中的一个重要部分,没有他的改变,自适应也就无从谈起。我们设计的滤波器权系数控制电路如图3控制电路图3FIR 滤波器中第i个权系数的控制电路图信号处理与分析课程设计报告第11页共18页根据权系数的计算方法 wj4Li = Wji + 2kejxjii=i,2/H,N(15)我们得到程序设计:for(i=0;iBUFLEN;i+) ( wi=wi+e*xi*mu;/做下一信号的权值初始化抽头权向量为0六、实验结果分析图4原始声音信号频谱图信号处理与分析课程设计报告第12页共18页dL.JhE - Cvul Edh.e ZDOO匚|叵|反I ila 七出 Liruud4n 鼻y上下“F-mpi

17、 4:33 QtLi au lain HLj图5高斯白噪声频谱图趣工-dli! -H 皿t ZDDd日酉区I ila di L tb*r frtud4n 5上下P-mpi t:a3 QtLi au lain Blj犀w0园迎“鬲四修期|mianmmi|图6加噪声之后的频谱图信号处理与分析课程设计报告第13页共18页图7滤波后的语谱图x 102Map1-2 04024681012144Map20246x 1081012144x 10 x 102Map340-2246810012144x 10Map1Map2Map3图8 matlab仿真图原始声音加了噪声后的语音降噪后的语音信号处理与分析课程设计

18、报告第14页共18页七、从实验中分析LMST法的缺点LMS保证算法收敛并减少失调系数,通常把收敛因子取得比较小,这样使 它存在收敛慢的缺点;如果以值取的过大,可以快速达到收敛,但是很大程度上 影响系统稳定度。另外,在具体实现权系数调整时,运算精度非常重要,因为该算法对抽头输入相关矩阵条件数(矩阵的条件数定义为最大特征值与最小特征值之比)的变化比较敏感。要求所用的乘法器和加法器有很高的精度, 这样增加了成本,降低 了运算速度,针对这些问题,国内外提出了一些改进算法。如LMS2算法、LMSQ 算法、MLMS(修正的LMS)算法、TDO和LMF算法等。并且,LMS算法是对误差的一种跟踪,所以对于处理

19、比较嘈杂的语音信号 的时候,误差误差随时在变,所以并不是能做到很好的跟踪。 而对于误差变化不 大的信号,如正弦波等,就能做到很好的无差跟踪,几乎可以全部复原原信号。 因为作为自适应滤波器,对输出有一个学习以及追踪的功能, 但是条件是外部环 境变化要比学习速度缓慢。当处理连续变化的语音信号时,LMS算法并不能很好的应用,在于误差e2(n)在不断的变化。从MATLAB时域图中我们可以看到降 噪效果很好,但是用COOLEDITOR进行频谱分析的时候就可以看出,对于连续 变化的语音部分,LMS并不是能很好的降噪。八、实验完整程序LMS (主函数)部分:#include math.h#include s

20、tdio.h#define SNR 20/信噪比#define BUFLEN 50#define RNSLEN 50000信号处理与分析课程设计报告第15页共18页void grns(double,double,double *,int,double *);main()(FILE *fp, *fps,*fpx, *fpy, *fpe1,*fpe2,*fpes,*fpxs,*fpys;short s1=0;double s=0.0;double sn=0.0;double u=0;double g=1.0;double r=1.0;double ran=0;double es=0.0;doubl

21、e snrate=0.0;double ns=0.0;double xBUFLEN=0.0;double dBUFLEN=0.0;short xs=0;short ys=0;double wBUFLEN=0.0;double y=0.0;double mu=1e-8;/初始化double e=0.0; 初始化double rnsbuffRNSLEN=0.0;int i=0,j=0;int nump=0;fp=fopen(tone.dat,rb);/打开文件fpes=fopen(tone.dat,rb);fps=fopen(s.dat,wb);fpx=fopen(x.dat,wb);fpy=fo

22、pen(y.dat,wb);fpe1=fopen(e1.dat,wb);fpe2=fopen(e2.dat,wb);fpxs=fopen(xs.dat,wb);fpys=fopen(ys.dat,wb);nump=fread(&s1,sizeof(short),1,fpes);sizeof(short)长度运算符&s1取地址信号处理与分析课程设计报告第16页共18页fread从fpes所指向的文件的位置 读取长度为sizeof(short)的1个数据项,存到si所指向的内存单元,返回所读的数据项个数,文件结束或出错返回0es=0.0;i=0;while(nump=1)(es=es+s1*s1;

23、/平方后相加i=i+1;nump=fread(&s1,sizeof(short),1,fpes); 指针自动力口 1) es=es/i;grns(u,g,&r,RNSLEN,rnsbuff); ns=0.0;for(i=0;i0;i-)信号处理与分析课程设计报告第17页共18页/算一个数就往后挤一(xi=xi-1;di=di-1;mu=mu+xi*xi;个数再算)x0=sn;d0=s;mu=mu+sn*sn;/xi是合成信号,di是纯净语音信号。mu=1/(10*(mu);/求步长,通过ExA2来求,y=0.0;for(i=0;iBUFLEN;i+)(y=y+xi*wi;)e=d0-y;for(i=0;iBUFLEN;i+)(wi=wi+e*xi*mu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论