




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信号处理与分析课程设计报告项目名称:基于LMS最小均方误差法的语音降噪姓名:07021102台斯瑶07021106 王金泊指导教师:李如玮目录一、课题背景和简介 4二、训练目的 5三、训练内容 6四、 最小均方差LMS实现自适应滤波器的方法介绍 61、滤波器结构设计 2、高斯白噪声的实现方法 113、LMS算法的实现六、实验结果分析14七、从实验中分析LMS算法的缺点 19八、实验完整程序20九、参考文献 27十、特别鸣谢一、课题背景和简介本课题是根据电子信息类本科生信号处理和分析课程的学习内容和语音信 号处理的实际应用相结合而设计的实践性训练。课程训练以数字信号处理为基 础,在掌握基本原理的
2、同时,理解语音信号的相关知识并结合实际应用实现对语 音信号的分析和处理。滤波是一种数字信号处理操作,其目的是为了处理某个信号,以便提取出输 入信号中所包含的期望信息。在数字信号处理课程中,我们基本掌握了一些线性 滤波器的设计方法,有固定的规范可遵循。 而在我们的实际生活中,充满了偶然 和随机,时不变滤波器已不能够满足更好效果的滤波。在这种情况下, 我们就需 要自适应滤波器。可以看到,随着数字超大规模集成技术的发展,自适应滤波技术在很多领域得到了广泛应用最小均方算法是一种搜索算法,他通过对目标函数进行适当的调整, 简化了 对梯度相量的计算。由于其计算简单性,LMS算法以及其它一些相关算法已广泛应
3、用于自适应滤波的各种应用中。而 LMS算法是自适应滤波理论中应用最广 泛的算法。这主要归因于其地计算复杂度、在平稳环境中的收敛性、其均值无偏地收敛到维纳解以及利用有限精度算法实现时的稳定特性等等。对LMS最小均方算法的学习,将加深我们对数字信号处理课程的理解,同时对我们今后滤波技术的应用奠定了巩固的基础。二、训练目的1. 通过利用c程序实现数字信号处理的相关功能,巩固对信号处理原理知 识的理解,提高实际编程和处理数据的综合能力,初步培养在解决信号处理实际 应用问题中所应具备的基本素质和要求。2. 培养研发能力,通过设计实现不同的信号处理问题,初步掌握在给定条 件和功能的情况下,实现合理设计算法
4、结构的能力。3. 提高文献整理和资料查询的能力。通过课下对相关语音知识的学习和理 解,培养快速解决实际问题的能力,并在文献整理的过程中学会科技文献的写作, 提咼语言表达能力三、训练内容根据语音信号的特点,利用不同信噪比的高斯白噪声对语音进行加噪,利用 LMS最小均方误差法设计实现自适应滤波器,并讨论语音状态变化下的收敛情 况。四、最小均方差LMS实现自适应滤波器的方法介绍自适应滤波器 是符合某种准则的最佳滤波器。它是通过对环境进行学习,逐 渐达到或逼近最优滤波器。由于学习过程中有“导师”存在,因此它是一种具有 监督学习功能的过程。当滤波器的应用环境发生缓慢变化时, 相当于滤波器应用 于非平稳环
5、境,但环境变化比学习速度更缓慢时,自适应滤波器能够自适应地跟踪这种非平稳变化用1自谨直牡渭*原理图开始时,给FIR滤波器赋予任意的初始权系数,在每个时刻,用当前权系数对输入信号进行滤波运算,产生输出信号,输出信号与期望响应的差定义为误差信号,由误差信号与输入信号矢量一起构造一个校正量,自适应地调整权矢量, 使误差信号趋于降低的趋势,从而使滤波器逐渐达到或接近最优LMS最小均方误差的方法是由最速下降法推导而出。最速下降法需要求出其梯度的精确值,要求输入信号和期望信号平稳,且2RxxW 2 Rdx (Rak=抽头输入向量u(n)与期望响应d(n)的互相关向量;Rxx=抽头输入向量u(n)的相关 矩
6、阵;W=抽头权向量)要首先估计Rxx和Rdx,这给具体实现带来很大困难,因 此该算法还不是真正意义的自适应滤波算法,但讨论最陡下降法是有意义,由最陡下降法可以很直观地导出一类自适应滤波算法-LMS算法。LMS算法的基本思想:调整滤波器自身参数,使滤波器能够自适应地跟踪这种输入信号的变化,实现最优滤波。当横向滤波器运行在实数据的情况下,该算法大体上可描述为:抽头权向量更新值=老的抽头权向量值+学习速率参数*抽头输入向量*误差信号其中误差信号定义为期望向量与抽头输入向量所产生的横向滤波器的实际向量 之差设输入信号为u( n) ,LMS算法理论推导过程如下:N 1滤波器输出 y(n)为:y(n)Wk
7、U(n k) n 0,1,2(1)k 0由误差定义得:e(n) d(n )-y( n)使用最小均方误差法,得代价函数为均方误差为:2J Ee (n)( 3) 式中J是滤波器的系数k w (k = 0,1,2,)的函数。通过选择最优的系数,使J达 到最小值定义梯度向量为? J,血 2E型e(n)2Eu(n k)e(n) k 0,1,2(4)另外,最陡下降迭代方程为:w(n +1) = w(n) - ii? ? J(n)LMS是直接利用单次采样数据获得的e2 (n)来代替均方误差J (n),从而进行梯 度估计,J(n)逊2w( n)每次迭代时计梯度估计为:2TTTd (n) w (n)u(n)u
8、(n)w(n) 2d(n)u (n)w(n) w( n)2u( n)uT (n) w( n) 2d (n)u( n)2d(n) uT(n)w(n)u(n)2 e(n)u(n)式(6)代入式(5),得到系数向量自适应迭代法: w(n +1) = w(n) - i? ? J (n) = w(n) + 2 pe(n)u(n)式(7 )称最小均方自适应算法LMS五、实验设计及实施过程自适应滤波器的基本原理:所谓自适应滤波,就是利用前一时刻已经获得的 滤波器参数的结果,自动的调节显示课的滤波器的参数, 以适应信号和噪声未知 的或随时间变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种 能调节器
9、自身传输特性已达到最优的维纳滤波器。 自适应滤波器不需要关于输入 信号的先验知识,计算量小,特别是用于实时处理。由于无法预知信号和噪声的特性,必须设计自适应滤波器,以跟踪信号和噪 声的变化。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器有两部分组成,已是滤波器的结构,二是调整滤波器系数的自适应算法。本实验的滤波结构采用FIR滤波器设计,自适应算法采用LMS最小均方差算法。总体结构图如图11、滤波器结构设计 FIR滤波器原理FIR滤波器的数学表达式为y(ff) =祸(8)式中:N为FIR滤波器的抽头数;x(n)为第n时刻的输入样本;h(i)为FIR滤波 器
10、第i级抽头系数。在本实验中,即为 w(n);其相应的z变换为:n- 1(9) 式中:z-i为N-1阶多项式。普通的直接型FIR滤波器结构如图2所示两 r1 r1图2FIR滤波器直线型结构在本实验中,抽头系数会根据每一次的输出进行自适应修改。 程序实现对输入信号xi和滤波系数wi进行时域的卷积和,求出输出信号 y.for(i=0;i<BUFLEN;i+)y=y+xi*wi;/实际输出信号的合成2、高斯白噪声的实现方法高斯白噪声的原理高斯白噪声:具有高斯分布的噪声就成为高斯噪声,而它的功率谱密度又是均匀分布的,则称它为高斯白噪声。在本实验中,我组针对高斯白噪声的特点进行了程序的设计。首先确定
11、的我们需要的白噪声的期望值、方差、和噪声数组的长度,通过一个专门产生白噪声的种子文件进行设计,利用如下公式,最终得到 了所需要的白噪声信号。根据定理:设口, °.片(0,1)为n个相互独立的均匀分布的随机数,其期望为E(rJ,方差为D(rJ,有中心极限定理可知(如果 n个独立随机变量的分布式相 同的,并且具有有限的数学期望和方差,当n无穷大时,它们之和的分布趋近于 高斯分布;即使n个独立随机变量不是相同分布的,当 n无穷大时,如果满足 任意一个随机变量都不占优或对和的影响足够小, 那么它们之和的分布仍然趋于 高斯分布),当n充分大时,有xD(rJni irinE(rJ(10)程序实现
12、方法for(k=0;k<=n-1;k+)t=0.0;for(i=1;i<=12;i+)*r=(*r)*w+v;/ 取 D(ri)=1/ 12 次/ 求 r,s=65536.0;w=2053.0;v=13849.0;*r=*r-m*s; t=t+(*r)/s;ak=u+g*(t-6.0);/求整数后余下的数/累加到t中/放到ak中,产生高斯白噪声过程 信噪比的改变为了测试噪声信号的改变对LMS算法最终效果的影响,我组对噪声信号进行了信号能量强度处理。处理方法即使通过给已产生的信号乘上一个系数,通过系数值的改变来调节信号的能量。系数值得计算方法为snrate |esSNR( 11)Yn
13、 s*10_10式中,SNR为信噪比,es为原始声音的均值,ns为噪声的均值。程序实现:snrate=sqrt(es/ns/pow(10,SNR/10);/ 开根号 pow 计算 10 的SNR/10次方的值,求能量,为了达到信噪比 20DB而乘上的系数,SNR为信噪比3、LMS算法的实现LMS最小均方差算法的原理已在前文给出。本实验就以该原理为基础进行设 计。在此不多赘述。需要注意几点:LMS的收敛性LMS算法的收敛因子必须在如下范围内选取:max(12)0严2/(MS max)其中Smax是抽头输入U(n)的功率谱密度的最大值,而滤波器长度M为中到大(13)W。在满足收敛条件下,才有即,值
14、得合理选取确保了系数向量的平均值接近于最优系数向量实际中,通常选得很小,选1NE x2在实验中,选定N=10实验程序为:mu=mu+s n*sn;mu=1/(10*(mu);sn为加噪信号,即为式(14 )中x抽头系数的自适应改变抽头系数的自适应改变是LMS算法中的一个重要部分,没有他的改变,自适应也就无从谈起。我们设计的滤波器权系数控制电路如图3图3 FIR 滤波器中第i个权系数的控制电路图根据权系数的计算方法 Wj Li Wji 2 ejXjii 1,2,川小(15) 我们得到程序设计:for(i=0;i<BUFLEN;i+)/做下一信号的权值wi=wi+e*xi*mu;初始化抽头权
15、向量为0六、实验结果分析图4原始声音信号频谱图图5 高斯白噪声频谱图图6加噪声之后的频谱图0图7滤波后的语谱图4x 10500Map1Map2Map3图8 matlab 仿真图Map1原始声音Map2加了噪声后的语音Map3降噪后的语音七、从实验中分析LMS算法的缺点LMS保证算法收敛并减少失调系数,通常把收敛因子取得比较小,这样使 它存在收敛慢的缺点;如果卩值取的过大,可以快速达到收敛,但是很大程度上 影响系统稳定度。另外,在具体实现权系数调整时,运算精度非常重要,因为该算法对抽头输入相关矩阵条件数(矩阵的条件数定义为最大特征值与最小特征值之比)的变化比较敏感。要求所用的乘法器和加法器有很高
16、的精度, 这样增加了成本,降低 了运算速度,针对这些问题,国内外提出了一些改进算法。如LMS2算法、LMSQ 算法、MLMS(修正的LMS)算法、TDO和LMF算法等。并且,LMS算法是对误差的一种跟踪,所以对于处理比较嘈杂的语音信号 的时候,误差误差随时在变,所以并不是能做到很好的跟踪。 而对于误差变化不 大的信号,如正弦波等,就能做到很好的无差跟踪,几乎可以全部复原原信号。 因为作为自适应滤波器,对输出有一个学习以及追踪的功能, 但是条件是外部环 境变化要比学习速度缓慢。当处理连续变化的语音信号时,LMS算法并不能很好的应用,在于误差e2(n)在不断的变化。从MATLAB时域图中我们可以看
17、到降 噪效果很好,但是用COOLEDITOR进行频谱分析的时候就可以看出,对于连续 变化的语音部分,LMS并不是能很好的降噪八、实验完整程序LMS (主函数)部分:#in elude "math.h"#i nclude "stdio.h"#define SNR 20/ 信噪比#defi ne BUFLEN 50#defi ne RNSLEN 50000void grn s(double,double,double *,i nt,double *);mai n()FILE *fp, *fps,*fpx, *fpy, *fpe1,*fpe2,*fpes,*f
18、pxs,*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;double sn rate=0.0;double n s=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
19、;int i=0,j=0;int nu mp=0;/打开文件fp=fope n("ton e.dat","rb");fpes=fope n("t on e.dat","rb");fps=fope n( "s.dat","wb");fpx=fope n("x.dat","wb");fpy=fope n( "y.dat","wb"); fpe仁fope n( "e1.dat",&q
20、uot;wb"); fpe2=fope n("e2.dat","wb"); fpxs=fope n( "xs.dat","wb"); fpys=fope n( "ys.dat","wb");nu mp=fread(&s1,sizeof(short),1,fpes);/sizeof(short)长度运算符&s1取地址fread从fpes所指向的文件的位 置读取长度为sizeof(short)的1个数据项,存到s1所指向的内存单兀,返回所读的数据项个数,
21、文件结束或出错返回0es=0.0;i=0;while( nu mp=1)es=es+s1*s1;/平方后相加es=es/i;grns(u,g,&r,RNSLEN,rnsbuff); ns=O.O;for(i=0;i<RNSLEN;i+)ns=ns+rn sbuffi*r nsbuffi;ns=ns/RNSLEN;/平方和的平均值/调的外部的函数高斯白噪声/高斯白噪声的平方和/平方求和的平均数sn rate=sqrt(es/ns/pow(10,SNR/10); /开根号pow 计算10的SNR/10次方的值, 求能量,为了达到信噪比20DB而乘上的系数, SNR为信噪比/*/nu
22、mp=fread(&s1,sizeof(short),1,fp);/把fp所指的数据读入si中while( nu mp=1)s=(double)s1;/si转为双精放到s中,就是纯净语音信号fwrite(&s,sizeof(double),1,fps);/ 把 s 中的文件写到fps中grns(u,g,&r,1,&ran);/ran就是刚才的那个ak,即高斯噪声信号ran=ran *s nrate;/重新计算后的噪声sn=s+ran;mu=O;/步长先设定为0,为了能让信号对齐,sn为合成信号fwrite(&sn ,sizeof(double),1,fpx);fwrite(&ran, sizeof(double),1,fpe1);for(i=BUFLEN-1;i>0;i-)xi=xi-1;di=di-1;mu=mu+xi*xi;/ 算一个数就往后挤一个数再算 d0=s;x0=s n;mu=mu+s n*sn;mu=1/(10*(mu);xi是合成信号,di是纯净语音信号/求步长,通过ExA2来求,y=0.0;for(i=0;i<BUFLEN;i+)y=y+xi*wi;e=d0-y;/实际输出信号的合成/真实信号和实际输出信号的差for(i=0;i<BUFLEN;i+)wi=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中金汇通信技术有限公司甘肃分公司招聘60人笔试参考题库附带答案详解
- 计划你的2024年纺织品检验员考试试题及答案
- 纺织品质量控制方法试题及答案
- 耳鼻喉科英文试题及答案
- 环保科技示范园建设项目可行性研究报告分析
- 解除《租赁合同》协议书
- 瓷粉施工合同协议书
- 建筑施工合同合同协议书
- 礼品供货合同协议书范本
- 拟定合同协议书
- GB/T 40998-2021变性淀粉中羟丙基含量的测定分光光度法
- GB/T 25840-2010规定电气设备部件(特别是接线端子)允许温升的导则
- GB/T 12008.7-2010塑料聚醚多元醇第7部分:黏度的测定
- 军标类型整理文档
- FZ/T 52019-2011莱赛尔短纤维
- 止血包扎(课件)
- 2022年湖南高二学业水平合格考试政治试卷真题及答案详解
- 投行业务二o一五年度经营绩效考核办法
- 心内科实习生规培手册
- 2021年苏州资产管理有限公司招聘笔试试题及答案解析
- 北票市沙金沟金矿地质调查总结
评论
0/150
提交评论