信息课设报告(共30页)_第1页
信息课设报告(共30页)_第2页
信息课设报告(共30页)_第3页
信息课设报告(共30页)_第4页
信息课设报告(共30页)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、武汉理工大学信息处理课群综合训练课程设计任务书课程设计任务书学生(xu sheng)姓名: 刘紫龙 专业(zhuny)班级: 信息(xnx)sy1201 指导教师: 江雪梅 工作单位: 信息工程学院 题 目: 基于LMS 算法的多麦克风降噪 初始条件: Matlab软件设计任务:给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。(1)阅读参考资料和文献,明晰算法的计算过程,理解LMS算法基本过程;(2)主麦克风录制的语音信号是LMSprimsp.wav,参考麦克风录制的参考噪声是LMSrefns.wav.用matlab指令读取;(3)根据算法

2、编写相应的MATLAB程序;(4)算法仿真收敛以后,得到增强的语音信号;(5)用matlab指令回放增强后的语音信号;(6)分别对增强前后的语音信号作频谱分析。时间安排:序号阶段内容所需时间1搜集学习资料2天2编写程序并仿真调试4天3撰写报告2天4答辩1天合 计9天指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录(ml) TOC o 1-3 h z u HYPERLINK l _Toc423941955 课程设计任务书 III 摘要(zhiyo)噪音污染(wrn)一直是困扰当今社会的一大难题,于是人们想出了各种方法对音频(ynpn)进行去噪,而运用数字信号处理的相关知识与算

3、法进行噪声处理的技术也是渐渐成为主流。Matlab功能强大,编程效率高,简单易学,深受广大程序工作人员的欢迎,特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。在过去的几十年中,基于多麦克风的噪声消除问题一直是人们关注的课题。而在众多算法中,基于LMS算法更新滤波器权值的广义旁瓣消除器结构应用最为广泛。此次课程设计要求采用LMS 算法在Matlab中实现了自适应滤波器的设计与实现。在Matlab中建立了数字降噪系统模型,并且针对该模型利用Matlab语言进行编程,仿真结果表明此设计实现了对信号中混有的环境噪声进行降噪,并且效果远远高于模拟降

4、噪技术。关键词:自适应滤波器,最小均方误差法则,语音增强,LMS算法AbstractAll kinds of noise pollution is becoming more and more serious,nowadays. And the application of relevant knowledge of digital signal processing and algorithm for noise processing technology is becoming a mainstream. Matlab powerful, programming with high eff

5、iciency, easy to learn, was welcomed by the majority of the program staff, in particular, also has the signal analysis toolbox in Matlab, does not need to have very strong programming ability, can easily signal analysis, processing and design. In the past few decades, based on the noise of the micro

6、phone get rid of the problem has been the subject of much attention. In many algorithms, based on LMS algorithm to update filter weight of generalized sidelobe canceller structure is most widely appliedThis design uses LMS algorithm in Matlab to realize the adaptive filter design and implementation.

7、 Digital noise reduction system model is established in Matlab, and according to the model using the Matlab language programming, the simulation results show that the design realized the mix some environmental noise in the signal to noise, and the effect is much higher than analog noise reduction te

8、chnology.Keywords: noise pollution, Matlab, LMS algorithm, the microphone 1概述(i sh)1.1降噪的方法(fngf)综述本次(bn c)课程设计是基于LMS算法的多麦克风降噪,多麦克风降噪是降噪技术的一个重要应用。我国的降噪技术采用的手段主要有三种,其中的动态降噪技术(DNR)又可以分为模拟动态降噪技术和数字动态降噪技术。目前国内外解决噪声问题最普遍的方法是采用模拟动态降噪技术,数字降噪技术的研究尚处于初期阶段。数字降噪技术比模拟降噪技术具有更大的优点。模拟降噪技术全采用硬件实施,修改和调试十分困难,对元器件参数的变

9、化也很敏感,技术指标受元器件的误差影响较大,降噪效果不稳定,不利于产品的批量生产。而数字降噪技术由于采用计算机技术实现自适应滤波,通过修改软件算法就可以达到不同的降噪效果,不用更改硬件结构,调试和维修都非常方便;数字降噪技术采用自适应滤波技术,可以实时跟踪噪声的变化进一步进行处理,因此降噪效果较好。另外,数字降噪技术抗干扰能力强,本身具有自恢复能力,并且在整个音频带内降噪比较均衡,而模拟降噪技术偏重于低频段,高频段效果较差。因此降噪技术未来的发展方向是数字降噪技术,以数字信号处理( HYPERLINK /tech/detail/DSP.html t _blank DSP)及其相关算法为技术支撑

10、的数字降噪技术代表着当今降噪技术的发展。目前市场上的麦克风降噪产品主要是模拟降噪,因此数字降噪的设计在国内属于领先技术。多麦克风数字降噪的系统原理是通过麦克风装置直接检测出噪声信号和音频信号的混合信号,然后将混合信号通过DSP 数字降噪 HYPERLINK /tech/dlbdt/200010170004/116005.html t _blank 模块进行噪声分离并产生降噪信号来抵消噪声,因此人耳就可以只听到较纯净的音频信号而不受环境噪声的干扰。本文采用最小均方误差(LMS)算法,实现了数字降噪DSP 中消除噪声的模块自适应滤波器的设计,介绍了其在MATLAB 中编程及仿真输出,并通过程序实现

11、了设计。现阶段已有许多语音增强的方法,且应用的非常广泛,最常见的有线性滤波法、梳状滤波法、自相关法、卡尔曼滤波法以及自适应噪声抵消法。本次设计使用的将是自适应噪声低消法,自适应噪声抵消法比其它方法多用了一个参考噪声作为辅助输入,从而获得了比较全面的关于噪声的信息,因而能得到更好的降噪效果。特别是在辅助输入噪声与语音中的噪声完全相关的情况下,自适应噪声抵消法能完全排除噪声的随机性,彻底地抵消语音中的噪声成分,从而无论在信噪比(SNR,Signal to Noise Ratio)方面还是在语音可懂度方面都能获得较大的提高。其工作原理实质上以均方误差或方差为最小准则,对噪声进行最优估计,然后从含噪声

12、的语音中减去噪声达到降噪,提高信噪比,增强语音。本文主要采用自适应噪声抵消法对含噪语音信号去噪。1.2自适应噪声抵消法的原理一个最简单的自适应噪声抵消原理示意图如图6-1所示:图1 自适应(shyng)噪声抵消原理图1中抵消(dxio)器的“原始(yunsh)输入为,其中s为沿信道传递到传感器的信号,为一个与信号不相关的噪声,抵消器的“参考输入为噪声,与信号s不相关,却以某种未知的方式与噪声相关,由图可以看出噪声经自适应滤波器输出,再从原始输入中减去该输出,产生了系统的输出。如果可以知道噪声传输到原始输入端和参考输入端的通道特性,则一般而言,就可以设计出能够将变成的固定滤波器。然后,从原始输入

13、减去滤波器的输出y,则系统的输出就应当只有信号,然而,一般地,传输通道均是未知的,则使用固定参数滤波器就行不通。在图6-1的系统中,参考输入经过了一个自适应滤波器的处理,此自适应滤波器通过某种由与输出有关的误差e所控制的最小均方算法自动调节自身的冲激响应,当采用了适应的算法,滤波器可以在变化的条件下进行工作,并且不断的调节自身,使误差信号e达到最小。在这个系统中,我们的目的是在最小均方意义下,产生对信号最佳拟合的输出信号。我们将系统输出反馈回自适应滤波器,并按照某种自适应算法调节此滤波器,使系统输出的功率达到极小,即可实现这一目标。在这个自适应噪声抵消(ACN)系统中,系统输出被用做自适应过程

14、的误差信号。1.3自适应噪声抵消法的应用自适应噪声抵消技术是通信、雷达、声纳、生物医学工程等研究领域受到重视的问题之一,如在语音通信系统中,必须抑制由于传输误差所引入的接收语音波形的冲激式失真干扰。利用由自适应滤波器所构成的自适应噪声干扰抵消系统,可以获得自动跟踪捕捉噪声干扰源和高信噪比的优异性能。在航空战斗环境中使用自适应噪声抵消器,可以大大改善航空通信质量。在标准计量信号发生器中使用自适应滤波器,可以将电源频率的干扰降低到100dB以下。利用自适应滤波器还可以有效地降低酒会宴会厅内的噪声。2自适应(shyng)滤波2.1自适应(shyng)滤波概念(ginin)从连续的(或离散的)输入信号

15、中滤除噪声和干扰以提取有用信号的过程称为滤波。相应的装置称为滤波器。当滤波器的输出为输入的线性函数时,该滤波器称为线性滤波器,否则就称为非线性滤波器。根据滤波器的参数是随时间变化的,又可以将滤波器分为时变和非时变滤波器两种。滤波器研究的一个基本课题就是:如何设计和制造最佳的或者是最优的滤波器。所谓最佳滤波器是指能够根据某一最佳准则进行滤波的滤波器。假定线性滤波器的输入为有用信号和噪声之和,两者均为广义平稳随机过程。维纳根据最小均方误差准则(滤波器的输出信号与需要信号之差的均方值最小),求得了最佳线性滤波器的参数,这种滤波器被成为维纳滤波器。要实现维纳滤波,就要求:1、输入过程是广义平稳的;2、

16、输入过程的统计特性是已知的。然而,由于输入过程取决于外界的信号、干扰环境,这种环境的统计特性常常是未知的、变化的,因而不能满足上述两个要求。这就促使人们研究自适应滤波器。自适应滤波器在输入过程的统计特性位置时,或输入过程的统计特性变化时,能够调整自己的参数,以满足某种最佳准则的要求。当输入过程的统计特性未知时,自适应滤波器调整自己参数的过程称为“学习过程”。而当输入过程的统计特性变化时,自适应滤波器调整自己参数的过程为“跟踪过程”。自适应滤波器包括自适应时域滤波器和自适应空域滤波器,它和信息论、检测与估计理论等密切相关,是近二十多年来发展起来的信息科学的一个重要分支。2.2自适应滤波器的组成自

17、适应滤波器的组成如图3-1所示。它可分为可编程滤波器(滤波部分)及自适应算法(控制部分)两部分。可编程滤波器即参数可变的滤波器,自适应算法对其参数进行控制以实现最佳工作。(a)开环算法(sun f) (b)闭环算法(sun f)图2-1 自适应(shyng)滤波器的组成自适应算法主要根据滤波器输入统计特性进行处理。它可能还与滤波器输出和其他参数有关。根据自适应算法是否与滤波器输出有关,可以将其分为开环算法和闭环算法两类。开环算法的控制输出仅取决于滤波器的输入和某些其他数据,但是不取决于滤波器的输出,如图2-1(a)所示。闭环算法的控制输出则是滤波器输入、滤波器输出以及某些其他输入的函数,如图2

18、-1(b)所示。闭环算法利用了输出反馈,它不但能在滤波器输入变化时保持最佳的输出,而且还能在某种程度上补偿滤波器元件参数的变化和误差以及运算误差。它的缺点是存在稳定性问题以及收敛速度不高。开环算法的优点是调整速度快,一般不存在稳定性问题。但是通常要求的计算量大且不能补偿元件参数误差及运算误差。因此,多数采用闭环算法。2.3基本自适应滤波器设计原则自适应滤波器通常由两部分构成,其一是滤波子系统,根据它所要处理的功能而往往有不同的结构形式。另一是自适应算法部分,用来调整滤波子系统结构的参数,或滤波系数。在自适应调整滤波系数的过程中,有不同的准则和算法。自适应滤波器含有两个过程,即自适应过程和滤波过

19、程。前一过程的基本目标是调节滤波系数,使得有意义的目标函数或代价函数最小化,滤波器输出信号逐步逼近所期望的参考信号,由两者之间的误差信号驱动某种算法对滤波系数进行调整,使得滤波器处于最佳工作状态以实现滤波过程。所以自适应过程是一个闭合的反馈环,算法决定了这个闭合环路的自适应过程所需要的时间。但是,由于目标函数是输入信号,参考信号及输出信号的函数,即 (2-1)因此目标函数必须具有以下两个性质:非负性 (2-2)最佳(zu ji)性 (2-3)在自适应过程(guchng)中,自适应算法逐步使目标函数最小化,最终(zu zhn)使逼近于,滤波参数或权系数收敛于,这里是自适应滤波系数的最优解即维纳解

20、。因此,自适应过程也是自适应滤波器的最佳线性估计的过程,既要估计滤波器能实现期望信号的整个过程,又要估计滤波权系数以进行有利于主要目标方向的调整。这些估计过程是以连续的时变形式进行的,这就是自适应滤波器需要有的自适应收敛过程。如何缩短自适应收敛过程所需要的收敛时间,这个与算法和结构有关的问题是人们一直重视研究的问题之一。2.4 自适应(shyng)滤波器结构自适应(shyng)滤波器利用前一时刻的结果,自动(zdng)调节当前时刻的滤波器参数,以适应信号和噪声未知或随机变化的特性,得到有效的输出,主要由参数可调的数字滤波器和自适应算法两部分组成,如图2-2所示图2-2 自适应滤波器原理图x(n

21、)称为输入信号,y(n)称为输出信号,d(n)称为期望信号或者训练信号,e(n)为误差僖号,其中,e(n)=d(n)-y(n).自适应滤波器的系数(权值)根据误差信号e(n),通过一定的自适应算法不断的进行改变,以达到使输出信号y(n)最接近期望信号图中参数可调的数字滤波器和自适应算法组成自适应滤波器。自适应滤波算法是滤波器系数权值更新的控制算法,根据输入信号与期望信号以及它们之间的误差信号,自适应滤波算法依据算法准则对滤波器的系数权值进行更新,使其能够使滤波器的输出趋向于期望信号。3 LMS自适应滤波(lb)设计3.1 LMS算法(sun f)为了采取最陡下降法,需要知道均方误差性能函数(h

22、nsh)的梯度的精度值,这就要求输入信号和需要信号平稳且其二阶统计特性为已知。这时可以根据输入信号和需要信号的采样值估计和,从而采用最陡下降法寻求。但当上述条件不具备时,我们只能把随机的平方误差当成是均方误差。对前者进行求梯度的运算,所得到的结果就取为关于后者的真实梯度的估计。这就是由Widrow等人提出的最小均方算法,即LMS算法。下面推导一下它的公式。在最陡下降法的式中,用梯度的估计代替梯度即得: (3-1) LMS算法采用如下的梯度估计值: (3-2) 即它用瞬时输出误差功率的梯度作为均方误差梯度的估计值。换句话说,它用瞬时平方误差性能函数代替了均方误差性能函数)。得: (3-3) (4

23、-15)可得: (3-4) 将式(4-16)代入式(4-14)得: (3-5) LMS算法的递推式的最大优点是它没有交叉项,因而可以方便地写成纯量方程组: ,i=1,2,M (3-6) (3-7)下面(xi mian),我们对LMS算法(sun f)加权矢量的平均值的变化规律和加权矢量的随机起伏所形成的影响进行(jnxng)讨论。1算法加权矢量平均值的收敛条件为当且仅当 时 (3-8) 因为实用时很少能够知道的各个特征值,实际上,我们有 (3-9) 其中为的迹,且 (3-10) 式中为输入信号的功率。这样,我们可以写出下列的收敛充分条件 (3-11) 2LMS算法加权矢量平均值的过渡过程为 (

24、3-12) 其中 (3-13) 为)的第分量。 即LMS算法的加权矢量分量的平均值按M个指数函数之和的规律,由初始值收敛到最佳值,而指数函数的时间常数与特征值成反比。取决于最慢的一个指数过程。值对的收敛过程有很大影响。必须选得满足收敛条件。3.LMS算法计算步骤为:初始化调整步长;初始化滤波器抽头系数矩阵 (3-14) 计算n-1时刻的误差: (3-15) 求出当前时刻(shk)的抽头系数 (3-16) 该步计算需要(xyo)乘法N+1次,加法(jif)N次,当滤波器阶数为时,完成一次迭代计算,共需要次乘法,次加法。大多数信号处理器都适宜进行乘法累加的算术操作,这就使LMS算法更具吸引力。4

25、LMS原理记数字滤波器脉冲响应为: h(k)=h0(k) h1(k) hn-1(k)T (3-17) 输入采样信号为: x(k)=x(k) x(k-1) x(k-n-1) (3-18)误差信号为: (3-19) (3-20)优化过程就是最小化性能指标J(k),它是误差的平方和: (3-21)求使J(k)最小的系数向量h(k),即使J(k)对h(k)的导数为零,也就是: (3-22)把J(k)的表达式代入,得: (3-23) 和 (3-24) 由此得出滤波器系数的最优向量: (3-25) 这个表达式由输入(shr)信号自相关矩阵和输入(shr)信号与参考信号的相关矩阵组成(z chn),如下所示

26、,维数都为(n,n): (3-26) (3-27)系数最优向量也可以写成如下形式: (3-28) 自相关和互相关矩阵的递归表达式如下: (3-29) (3-30)把的递归表达式代入系数向量表达式,得: (3-31)即 (3-32)考虑到 (3-33)可以记 (3-34)用前面得到的表达式求出,并代入上式: (3-35)或 (3-36)则滤波器系数的递归关系式可以记作: (3-37)其中 (3-38)e(k)表示先验误差。只因为它是由前一个采样时刻的系数算出的,在实际(shj)中,很多时候由于h(k)计算(j sun)的复杂度而不能应用于实时控制。用,I代换(di hun),其中:为自适应梯度,

27、I为辨识矩阵(n,n)。这时 (3-39)这时就是一个最小均方准则问题。3.2 LMS算法设计LMS算法是自适应滤波器中常用的一种算法,与维纳算法不同的是,其系统的系数随输入序列而改变。维纳算法中截取输入序列自相关函数的一段构造系统的最佳系数。而LMS算法则是对初始化的滤波器系数依据最小均方误差准则进行不断修正来实现的。因此,理论上讲LMS算法的性能在同等条件下要优于维纳算法,但是LMS算法是在一个初始化值得基础上进行逐步调整得到的,因此,在系统进入稳定之前有一个调整的时间,这个时间受到算法步长因子u的控制,在一定值范围内,增大u会减小调整时间,但超过这个值范围时系统不再收敛,u的最大取值为R

28、的迹。权系数更新公式为:Wi+1=Wi+2ueiXi依据上述算式,制定LMS滤波器设计实现方法为:(1)设计滤波器的初始化权系数W(0)=0,收敛因子u;(2)计算输入序列经过滤波器后的实际输出值:out(n)=WT(n)*X(n);(3)计算估计误差e(n)=xd(n)-out(n);(4)计算n+1阶的滤波器系数Wn+1=Wn+2*u*e(n)*X(n);(4)重复(2)-(4)过程;4程序设计(chn x sh j)4.1程序(chngx)流程图图 4-4程序(chngx)流程图4.2语音信号的采集在进行(jnxng)模拟/数字信号的转换过程(guchng)中,当采样频率fsmax大于等

29、于信号(xnho)最高频率fmax的2倍时,即:fsmax=2fmax,则采样之后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍,采样定理又称奈奎斯特定理。1924年奈奎斯特(Nyquist)就推导出:在理想低通信道的最大码元传输速率=2W*log2 N (其中W是理想低通信道的带宽,N是电平强度)。语音信号的采集可以利用PC机上的声卡,WINDOWS操作系统可以进行数字信号的采集。本次设计下载了一段.wav格式的录音当做语音输入信号。并命名为”OriSound” 在MATLAB软件平台下,利用wavread函数对语音信号进行采样,记住采样频率和采样

30、点数,Wavread函数调用格式:clear all close all; primary,Fs,nbits = wavread(login.wav); %加噪声前信号对语音信号OriSound.wav进行采样其程序如下:y,fs,nbits=wavread (OriSound); %语音信号加载入MATLAB仿真软件平台中4.3噪声的加入在MATLAB中产生高斯白噪声非常方便,我们可以直接应用两个函数:一个是WGN,另一个是AWGN。WGN用于产生高斯白噪声,AWGN则用于在某一信号中加入高斯白噪声。也可直接用randn函数产生高斯分布序列。在本次设计中,我们是利用MATLAB中的随机函数(

31、rand或randn)产生噪声加入到语音信号中,模仿语音信号被污染,并对其频谱分析。Randn函数有两种基本调用格式:Randn(n)和Randn(m,n),前者产生nn服从标准高斯分布的随机数矩阵,后者产生mn的随机数矩阵。在这里,我们选用Randn(m,n)函数。Noise=0.05*randn(length(primary),1); %生成高斯白噪声 primary=primary(:,1);s=primary+Noise; %把噪声添加进原信号4.4 LMS算法程序worder = 20; %滤波器级数 w = zeros(1,worder); %初始化抽头系数序列 frefpad =

32、 zeros(1,worder -1) s; n3=min(n2,N); %取两序列长度的最小值作为迭代长度 u = 0.05; %初始化学习算法的收敛因子 output=zeros(1,n3); %初始化输出序列 e=zeros(1,n3); %初始化误差(wch)序列 for n = 1:n3; %offset n so we can reference the correct value in zero-padded fref m = n + worder -1; frefblock = frefpad(m-worder+1:1:m); output(n) = w*(frefblock)

33、; e(n) = primary(n) - output(n); %调整(tiozhng)滤波器系数的LMS算法(sun f) w = w + u*e(n).*frefblock; if (mod(n,100) = 0) | (n = n3) per = floor(100*n/n3); fprintf(%d percent completed n,per); %迭代一次显示运行百分比 end end;4.5时域波形显示subplot(411);plot(primary); title(加噪前信号);subplot(412); plot(s);title(加噪后信号); %绘制含噪信号 sub

34、plot(413); plot(Noise); title(噪声信号); %绘制噪声信号4.6频域波形显示figure %画频谱图 n4=length(primary)xlabel(数字角频率); ylabel(幅度); grid on; Y=fft(primary); w=2/N*(0:N-1); %设置角频率 subplot(411) plot(w,abs(Y); %画频谱图 title(加噪前信号信号频谱);xlabel(数字(shz)角频率); ylabel(幅度(fd); grid on; Y2=fft(s); w2=2/N*(0:N-1); %设置(shzh)角频率 subplot

35、(412) plot(w2,abs(Y2); %画频谱图 title(加噪信号信号频谱);xlabel(数字角频率); ylabel(幅度); grid on;Y1=fft(output); w1=2/n1*(0:n1-1);%设置角频率subplot(413) plot(w1,abs(Y1); title(输出信号信号频谱);xlabel(数字角频率); ylabel(幅度); grid on; Y3=fft(Noise); w3=2/n2*(0:n2-1); %设置角频率 subplot(414) plot(w3,abs(Y3); %画频谱图 title(噪声信号信号频谱); xlabel

36、(数字角频率); ylabel(幅度); grid on;figure; subplot(311); plot(primary); %绘制期望信号 title(声音期望); xlabel(数字角频率); ylabel(幅度); Y4=fft(primary); subplot(312) plot(w2,abs(Y4); %画期望信号频谱图 title(期望信号频谱); xlabel(数字角频率); ylabel(幅度); grid on; sound(output,Fs,nbits); %播放输出信号5实验(shyn)仿真(fn zhn)结果(ji gu)收敛因子对程序的运行结果至关重要,滤波

37、器阶数也有一定的影响。针对不同的信号需要用到不同的收敛因子。在程序经过不断调试后,确定滤波器阶数为20,收敛因子为0.05。Matlab信号波形图、频谱分析图,期望信号与频谱分别如图6-1,6-2和6-3所示。图6-1 信号波形图图6-2 频谱分析(fnx)图总的来说在程序运行的开始播放了加噪的语音信号,噪音的声音很大,在程序结束的时候,播放滤波后的输出信号,虽然依旧(yji)有噪音,淡水可以清楚的听到人声,噪音减小了好多。达到了预期的目的从图6-2的频谱分析图上来看,输出信号的频谱轮廓与原始信号的频谱轮廓相似,只是幅度平均值不一样(yyng),从图上来看,噪声信号的幅度值变化不大,主要集中在

38、100左右,原始信号的幅度平均值大概等于噪声信号的平均幅度加上输出信号的平均幅度。通过输出信号的试听和频谱的分析,可以发现利用LMS 算法的多麦克风降噪的目的达到了。从调试过程中获得了改善LMS滤波器性能的方法:在满足收敛速度要求的条件下,适当的降低收敛因子,提高滤波器的阶数可以改善滤波器输出波的平滑型,但减小收敛因子可能会在很长一段时间产生一个较大的均方误差,所以收敛速度和滤波效果有一个矛盾,二者必须折衷选择。提高滤波器的阶数也可以改善滤波效果,但需要提高存储空间。7 实验(shyn)总结在课程设计的过程中,通过(tnggu)查阅我明白了基于LSM多麦克风语音信号(xnho)降噪的过程以及L

39、SM的原理及实现方法,通过MATLAB编程及仿真,实现了语音信号的降噪,并且从不清楚的语音信号中通过LSM降噪得到了清晰的语音信号,充分体会了基于LSM多麦克风语音信号降噪这一技术的作用。同时,也学会了对语音信号进行频谱分析,以及进一步熟悉了MATLAB的使用过程,加深了 对这一软件的了解,提高了自己动手的能力。在弄懂了的LMS算法的基本原理后,我尝试自己写程序,但写出的程序错误百出,逻辑不够严密,于是参考学习了其他的资料,对程序错误的调试耗费了我很长时间,通过网络资料和书本搜罗了不少细节的资料,使我对Matlab编程的了解提高了一个新的层次。全部程序编完后,我已对算法掌握的非常熟练,甚至觉得

40、曾经认为很难的原理现在已经变得很简单,这便是掌握知识的很高的境界了吧。有辛酸,有开心,这次课设我真的受益匪浅。不足之处是输出的信号时域图和频域图和期望的仍有差别,即少部分噪声仍存在,原因是录音文件长度较短,采样序列长度较短导致迭代次数较少,没有真正得到最佳的迭代结果。但是基本的轮廓还是拟合的很一致,录音长度再增加的话,结果会更好。感谢老师的指导和同学们的帮助,我会在学习的道路上走得更远。8课程设计参考资料 1 刘泉,信号(xnho)与系统, 高等教育出版社, 2006年。2 刘泉,数字(shz)信号处理,电子(dinz)工业出版社,2008年。3 Edward W. Kamen, Bonnie

41、 S.Heck 编,信号与系统基础应用Web 和MATLAB(第二版),科学出版社,2002 年。4葛良、陶智,基于自适应滤波的语音增强算法江苏:苏州大学学报,2006 5袁俊泉,MATLAB信号处理.清华大学出版社,2002.5.6赵力,语音信号处理,北京机械工业出版社,20037韩利竹,王华MATLAB电子仿真与应用北京国防工业出版社,2003 8 徐明远,刘增力.MATLAB仿真在信号处理中的应用M.西安:电子科技大学出版社,2007 附录(fl)Matlab程序(chngx)clear all close all; primary,Fs,nbits = wavread(login.wa

42、v); %加噪声(zoshng)前信号sound(primary,Fs,nbits); Noise=0.05*randn(length(primary),1); %生成高斯白噪声 primary=primary(:,1);s=primary+Noise; %把噪声添加进原信号 wavwrite(s,Fs,noiseadded.wav) %向磁盘中写入加噪后音频文件 wavwrite(Noise,Fs,noise.wav) %写入噪声音频文件 y1,Fs1,bits1=wavread(noiseadded.wav);sound(y1,Fs1,bits1); %播放加噪信号y2,Fs2,bits2

43、=wavread(noise.wav);sound(y2,Fs2,bits2); %播放噪声信号Noise = Noise; s = s; a1,N = size(s); %使用的两音频文件不完全等长时需要分别知道长度 a2,n2=size(Noise);subplot(411);plot(primary); title(加噪前信号);subplot(412); plot(s);title(加噪后信号); %绘制含噪信号 subplot(413); plot(Noise); title(噪声信号); %绘制噪声信号 %initilize the output %Zero pad so we c

44、an start filter at 0 and not throw of the index worder = 20; %滤波器级数(j sh) w = zeros(1,worder); %初始化抽头系数(xsh)序列 frefpad = zeros(1,worder -1) s; n3=min(n2,N); %取两序列长度(chngd)的最小值作为迭代长度 u = 0.05; %初始化学习算法的收敛因子 output=zeros(1,n3); %初始化输出序列 e=zeros(1,n3); %初始化误差序列 for n = 1:n3; %offset n so we can reference the correct value in zero-padded fref m = n + worder -1; frefblock = frefpad(m-worder+1:1:m); output(n) = w*(frefblock); e(n) = primary(n) - output(n); %调整滤波器系数的LMS算法 w = w + u*e(n).*frefblock; if (mod(n,100) = 0) | (n = n3) per

温馨提示

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

评论

0/150

提交评论