《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc

上传人:laozhun 文档编号:2393177 上传时间:2023-02-17 格式:DOC 页数:31 大小:1.17MB
返回 下载 相关 举报
《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc_第1页
第1页 / 共31页
《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc_第2页
第2页 / 共31页
《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc_第3页
第3页 / 共31页
《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc_第4页
第4页 / 共31页
《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc》由会员分享,可在线阅读,更多相关《《信息处理课群综合训练与设计》课程设计基于RLS算法的多麦克风降噪.doc(31页珍藏版)》请在三一办公上搜索。

1、信息处理课群综合训练与设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题 目: 基于RLS 算法的多麦克风降噪初始条件:Matlab软件、信号与系统、通信处理等要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)设计任务:给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。设计的要求:(1)阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过程;(2)主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;(3)根据算法编

2、写相应的MATLAB程序;(4)算法仿真收敛以后,得到增强的语音信号;(5)用matlab指令回放增强后的语音信号;(6)分别对增强前后的语音信号作频谱分析。时间安排:序号设计内容所用时间1根据设计任务,分析电路原理,确定实验方案2天2根据实验条件进行电路的测试,并对结果进行分析7天3撰写课程设计报告1天合计2周指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录摘要IAbstractII1 绪论12 自适应信号处理基本原理22.1自适应滤波器组成22.2自适应滤波原理22.3 自适应滤波器的体系结构32.3.1 横向结构42.3.2 对称横向结构52.3.3格型结构52.4

3、自适应干扰抵消原理73 RLS算法方案设计93.1 RLS算法基本原理93.2 RLS算法程序程序设计124 RLS算法自适应滤波方案实现与仿真134.1信号的获取134.2读取语音文件134.3算法实现134.4提取语音信号144.5仿真结果分析164.5.1增强前后语音信号波形分析164.5.2增强前后语音信号频谱分析184.5.3 用不同的噪声去进行滤波的仿真分析205总结216参考文献22附录23摘要本次课程设计要求使用具有强大运算能力的MATLAB软件,运用自适应滤波中的RLS算法实现麦克风降噪。旨在培养我们使用计算机处理庞大的数据的能力和熟悉MATLAB在信息技术中的应用。自适应滤

4、波器是统计信号处理的一个重要组成部分。在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。本文着重介绍RLS算法原理以及它的编程实现,最后利用RLS算法实现了单通道的自适应噪声消除。经调试编译,得到降噪后的语音信号以及增强前后语音信号波形及频谱,最终成功实现基于RLS的语音降噪。关键词:MATL

5、AB,自适应滤波,RLS算法,麦克风降噪AbstractThis course design is to use the powerful computing power of MATLAB software, the use of the RLS adaptive filtering algorithm microphone noise reduction. Aims to develop the way we use computers to handle large data, familiarity with MATLAB count information.The adaptive

6、filter is an important part of statistical signal processing. In practical applications, does not have sufficient information to design a fixed-coefficient digital filter design rules in the normal operation of the filter change, so we need to study the adaptive filter. Those who need to deal with t

7、he signals generated by the result of the operation environment of unknown statistics or need to deal with non-stationary signals, the adaptive filter can provide an attractive solution, and its performance is usually far superior to the fixed filter design using the regular method . In addition, th

8、e adaptive filter can also provide non-adaptive methods can not provide a new signal processing capabilities.This paper introduces the principle of RLS algorithm and its programming, finally using RLS algorithm has realized the single channel adaptive noise cancellation.After debuggingthe compiler,w

9、e getthe speech signalafter denoising and speech signalwaveform and spectrum before and after speech enhancement. Finally the speechdenoisingbased on RLS was finished successfully.Keywords: MATLAB, adaptive filter, RLS algorithm, adaptive noise cancellation1 绪论在信号处理领域中噪声消除是一个非常重要的问题,对噪声环境中系统的正常工作有着很

10、大的影响。隐藏在有用信号中的背景噪声往往是非平稳且随时间变化的,信号和噪声的统计特性往往无法知晓,而且背景噪声中的有用信号往往微弱而不稳定,此时采用传统方法很难解决噪声环境中的信号提取问题。近年来自适应噪声消除系统成为消除噪声的研究热点,利用自适应滤波器具有在未知环境下良好运行并跟踪输入统计量随时间变化的能力,通过不断调整抽头权系数来适应发生变化的信号和噪声的统计特性,达到消除噪声干扰的目的。对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一,自适应滤波算法广泛应用于系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域中。总之,寻求收敛速度快

11、,计算复杂性低,数值稳定性好的自适应滤波算法是研究人员不断努力追求的目标。自适应噪声抵消技术是基于自适应滤波原理的一种扩展,因此,在研究自适应噪声抵消技术前先要掌握一般自适应滤波器的设计原理。通过本次课程设计,我们可以加强对信号处理的理解,学会查寻资料方案比较,以及设计算法等。灵活运用所学信号与系统、数字信号处理等信息处理知识,分析和解决工程技术问题,将理论知识与应用实际结合起来。本次课程设计的题目为基于RLS的多麦克风语音降噪,主要是对给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。2 自适应信号处理基本原理2.1自适应滤波器组成自适应滤

12、波器通常由两部分组成,其一是滤波子系统,根据它所要处理的功能而往往有不同的结构形式。另一是自适应算法部分,用来调整滤波子系统结构的参数,或滤波系数。在自适应调整滤波系数的过程中,有不同的准则和算法。算法是指调节自适应滤波系数的步骤,以达到在所描述准则下的误差最小化。自适应滤波器含有两个过程,即自适应过程与滤波过程。前一过程的基本目标是调节滤波系数(k),使有意义的目标函数或代价函数F()最小化,滤波器输出信号y(n)逐步逼近所期望的参考信号d(n),由两者之间的估计误差e(n)驱动某种算法对滤波(权)系数进行调整,使滤波器处于最佳工作状态以实现滤波过程。但是,由于目标函数F()是输入信号x(k

13、)、参考信号d(k)及输出信号y(k)的函数,即F()=Fx(k),d(k),y(k),因此目标函数必须具有以下两个性质:(1)非负性(2)最佳性2.2自适应滤波原理自适应滤波器与普通滤波器有两个重要区别:(1)自适应滤波器的滤波参数是可变的,它能够随着外界信号特性的变化而动态地改变参数,保持最佳滤波状态。自适应滤波器除了普通滤波器的硬件设备以外还有软件部分,即自适应算法。(2)自适应算法决定了自适应滤波器如何根据外界信号的变化来调整参数。自适应算法的好坏直接影响滤波的效果。所谓的自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动的调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间

14、变化的统计特性,从而实现最优滤波。自适应滤波器实质上就是一种能调节其自身传输特性以达到最优的维纳滤波器。自适应滤波器不需要关于输入信号的先验知识,计算量小,特别适用于实时处理。自适应滤波器的特性变化是由自适应算法通过调整滤波器系数来实现的。一般而言,自适应滤波器由两部分组成,一是滤波器结构,二是调整滤波器系数的自适应算法。图 2.1 给出了自适应滤波器的一般结构,图中为期望响应,为自适应滤波器的输入,为自适应滤波器的输出,为估计误差。自适应滤波器的滤波器系数受误差信号控制,根据的值和自适应算法自动调整。图2.1 自适应滤波器的一般格式由于自适应滤波器在未知或时变系统中的明显优势,它在众多领域得

15、到广泛应用。自适应滤波器根据可编程滤波器结构的不同可以分为许多类型:从可编程滤波器的传输函数来分有 FIR 滤波器和 IIR 滤波器;以 FIR 滤波器为例,从滤波器结构来分又可以分为横向型结构,对称型结构和格型结构等;从自适应算法的不同可分为 LMS 和RLS 等类型。2.3 自适应滤波器的体系结构自适应滤波器的结构可以是 IIR 型结构和 FIR 型结构。但在实际应用中,一般都采用 FIR 型,其主要原因是,FIR 结构的自适应技术实现容易,其权系数的修正就调节了滤波器的性能,同时还可以保证其稳定性。对于 IIR 滤波器,当自适应处理过程中,极点移出单位圆之外时,就会使滤波器产生不稳定。用

16、 FIR 型结构作为自适应滤波器的结构,并不会影响它的应用范围,因为一个稳定的 IIR 滤波器总是可以用足够多阶的 FIR 滤波器来近似代替。 一个自适应的 FIR 滤波器的结构,可以是横向结构(transversal structure),对称结构(symmetric transversal structure)以及格形结构(lattice structure)。下面分别分析其特点。2.3.1 横向结构由抽头延迟线(TDL)组成横向滤波器结构的自适应滤波器称为自适应横向滤波器。该结构是所有自适应滤波算法的基础结构,是自适应滤波器中选用最多的一种结构。其结构图如图 2.2 所示。图 2.2 自

17、适应横向滤波器结构框图自适应横向滤波器主要包括延迟单元、加法器和乘法器。延迟单元的数量被称为滤波器的阶数,决定了冲激响应的宽度,其中是各阶滤波器的权重系数。滤波器的输入为:(2-1)滤波器的权系数为: (2-2)自适应横向滤波器输出为:(2-3)2.3.2 对称横向结构若N阶FIR滤波器的单位脉冲响应是实数,并且满足对称性的条件(奇对称或者偶对称),即 (2-4)则可看出滤波器的相位特性是严格线性的,这种滤波器结构称为对称横向结构,如图 2.3 所示。这种结构在语音处理、图像处理、波形传输系统等方面有广泛应用。该自适应滤波器是关于中心点对称的,它的输出由式(2-5)表示。(2-5)其中,N 为

18、阶数,它一定为偶数。图 2.3 自适应对称横向滤波器结构框图(偶对称)2.3.3格型结构自适应格型滤波器是在求解自适应滤波器最佳权系数时,使用 Durbin 算法所导出的。图 2.4 为格型结构自适应滤波器结构图。图 2.4 自适应格型结构滤波器结构框图格型结构滤波器的基本单元如图 2.5 所示。图 2.5 格型结构滤波器的基本单元基于 Durbin 算法的格型结构迭代算法如下:初始值为:(2-6)前向和后向预测误差为:(2-7) (2-8)其中,表示前向预测误差,表示后向预测误差,表示反射系数,m 表示阶数序列值,M 表示串联总级数。如果需要使用格型滤波器来处理数据,我们需要知道,该系数可以

19、利用 Durbin 算法根据自相关系数来算出,但是运算量很大。因此,可使用下面基于LMS 准则的梯度格型递推算法提供的直接递推公式(2-9)来估计。(2-9)2.4自适应干扰抵消原理自适应干扰抵消器是对自适应滤波器的应用,使用的是自适应干扰对消技术。自适应干扰抵消系统的原理图如图 2.6所示。图2.6自适应干扰抵消系统原理图图 2.6中,表示有用信号,信号中混入了干扰信号,为原始输入信号,它的作用是用作期望响应,并通过其他途径得到与相关的另一个干扰信号,该干扰信号用作自适应滤波器的输入,也称为参考输入,以调整滤波器系数,使自适应滤波器的输出非常精确地逼近,原始输入信号减去滤波器输出信号,得到基

20、本上抵消了干扰信号的。表示误差信号。干扰抵消的基本原理就是为了消除被干扰信号中的干扰信号,利用参考信号对被干扰信号进行抵消。自适应干扰抵消器包括主通道和参考通道两个通道。主通道接收从信号源发来的有用信号,同时收到了干扰源的干扰信号。参考通道信号通过自适应滤波器后输出,是的最佳估计,在均方误差意义下,最为接近主通道上的干扰信号。最后通过减法器将主通道的干扰信号分量抵消掉。假设各信号都是平稳的,,与、都是不相关的,与是相关的,干扰抵消系统的输出为 (2-10)两边取平方得(2-11)等式两边取期望值,并由于)与、的不相关性,可得结果为=(2-12)由于不受自适应滤波器权系数的影响,是确定量,因此,

21、使最小和使是等价的。当滤波器收敛到最优滤波器系数时,是的最优估计。由式(2-1)得(2-13)所以,当最小时,自适应干扰抵消系统的输出信号和有用信号的均方误差也为最小。也就是说,是有用信号的最佳估计。此时,输出即为期望信号。3 RLS算法方案设计3.1RLS算法基本原理所谓自适应实现是指利用前一时刻获得的滤波器参数,根据估计误差自动调节现时刻的参数,使得某个代价函数达到最小,从而实现最优滤波。(3-1)下降算法:最广泛使用的自适应算法包括自适应梯度算法(LMS)、自适应高斯-牛顿算法(RLS)。RLS算法:(Recursive Least-Squares),递归最小二乘算法。它是利用在已知n-

22、1时滤波器抽头权系数的情况下,通过简单的更新,求出n时刻的滤波器抽头权系数。代价函数:使用指数加权的误差平方和(3-2)其中(01,称为遗忘因子)引入遗忘因子作用是离n时刻近的误差附较大权重,离n时刻远的误差赋较小权重,确保在过去某一段时间的观测数据被“遗忘”,从而使滤波器可以工作在非平稳状态下。估计误差定义:(3-3)(3-4)可取滤波器的实际输入作为期望响应。将误差代入代价函数得到加权误差平方和的完整表达式:(3-5)抽头权向量取的是n时刻的w(n)而不是i时刻的w(i)。时刻(3-6)(3-7)故代价函数比更合理。为了使代价函数取得最小值,可通过对权向量求导:(3-8)解得其中 (3-9

23、) (3-10)由此可见指数加权最小二乘法的解转化为Wiener滤波器的形式:下面研究它的自适应更新过程:由公式9可得令、原式可化为由矩阵求逆引理得令,则,其中(3-11)又由式中自适应递归最小二乘算法的信号流程图如图3.2:图3.2 RLS算法信号流程图RLS算法的流程图如图3.3:图3.3 RLS算法步序3.2 RLS算法程序程序设计在理解RLS算法的基本原理后,我决定自行编写RLS算法程序块,RLS算法可以理解为将输出反馈给滤波器来调整相关参数,达到校正误差的目的。算法实现模块代码如下所示:Worder=32; %滤波器阶数lambda=1 ; % 设置遗忘因子Delta=0.001 ;

24、 p=(1/Delta) * eye ( Worder,Worder ) ;w=zeros(Worder,1);output=primary; %主语音输出loopsize=max(size(primary); for i=1+Worder:loopsize %RLS算法设计 u=fref(i-Worder+1:i); y= w*u e=primary(i)-y;k=(p*u)/(lambda+u*p*u); w = w + k*e; p= (p-k*u*p)/lambda;output(i-Worder)=e;disp(i);end;4 RLS算法自适应滤波方案实现与仿真4.1信号的获取本次

25、课程设计对我们自行处理和灵活运用的能力提出了很高的要求。首先,老师没有给我们提供设计中所需要用到的语音信号;其次,怎样录制噪声和被噪声污染的语音信号也是一个很现实的问题。最开始我选择自己录制语音信号以及噪音信号,我打算选用的噪声信号是风扇转动时所发出的声音信号,而语音信号怎是自己用windows自带的录音设备录下的声音信号。由于这些信号特别容易受到外界环境的影响,最后可能影响主语音信号的去噪提取,最后在老师的指导下,我决定使用英语六级开头的语音“college Englishtest band six”的人的语音作为主语音,然后用randn(length(source),1)函数将其打乱作为噪

26、声,记做RLSrefns.wav。将这两段语音信号叠加并保存下来记做RLSprimsp.wav。4.2读取语音文件主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,都是.wav格式,用waveread指令读取音频信号;指令写为如下:primary = wavread(RLSprimsp.wav); primary = primary;fref = wavread(RLSrefns.wav); fref = fref;4.3算法实现RLS算法的收敛特性较LMS算法优越,但相应的复杂度也要高许多,考虑到收敛时间的影响,从起始时间到收敛时间经滤波

27、器处理得到到输出误差依然很大,故直接将前32项去掉,先通过两输入作差得到预期值,再将所有预期值与对应时刻的实际输出值作差求平方,将这些平方值相加可以得到一个变量为W的函数,取W是函数的值最小。另外,显然距离n最近的量与Y(n)最接近,引入遗忘因子使得从n-1到0,相关程度逐渐减小。最后求得相关偏差,反馈给滤波器以矫正输出,达到减小误差的目的。% 初始化Worder=32; %滤波器阶数lambda=1 ; % 设置遗忘因子Delta=0.001 ; p=(1/Delta) * eye ( Worder,Worder ) ;w=zeros(Worder,1);output=primary; %主

28、语音输出loopsize=max(size(primary); for i=1+Worder:loopsize %RLS算法设计 u=fref(i-Worder+1:i); y= w*u e=primary(i)-y;k=(p*u)/(lambda+u*p*u); w = w + k*e; p= (p-k*u*p)/lambda;output(i-Worder)=e;disp(i);end;4.4提取语音信号用MATLAB中的wavread指令分别读取被噪声污染后的语音文件RLSprimsp.wav和噪声文件RLSrefns.wav后,进行RLS算法处理,滤除噪声后,得到语音文件,先由plot

29、指令绘出语音文件波形,再用Y=fft()函数求出频谱,由plot指令绘出语音文件频谱图,然后通过MATLAB中的sound命令播放语音文件。代码如下所示:figure;source,fs,bits=wavread(原声.wav);subplot(2,4,1) plot(source); %画出原音波形title(原音波形)source1=fft(source,length(source);subplot(2,4,5); plot(abs(source1); %画出原音频谱title(原音频谱)y1,Fs1,bits1=wavread(原声+白噪声.wav);subplot(2,4,2) plo

30、t(y1) %画出麦克风主语音波形title(麦克风主语音波形);Y1=fft(y1,length(y1);subplot(2,4,6);plot(abs(Y1); %画出麦克风主语音频谱title(麦克风主语音输入频谱);subplot(2,4,3); plot(fref); %画出噪声语音波形title(噪声语音波形);y2,Fs2,bits2=wavread(白噪声(截断).wav);Y2=fft(y2,length(y2);subplot(2,4,7); plot(abs(Y2); %画出噪声语音频谱title(噪声语音频谱);subplot(2,4,4); plot(output);

31、 %画降噪后的语音波形title(降噪后的语音波形);wavwrite(output,fs,asd) %生成降噪后的语音y,Fs3,bits3=wavread(asd.wav);Y=fft(y,length(y);subplot(2,4,8); plot(abs(Y); %画出降噪后语音频谱title(降噪后语音输出频谱);4.5仿真结果分析4.5.1增强前后语音信号波形分析(1)原音信号波形图图4.1 原音波形图(2)麦克风主语音信号波形图图4.2麦克风主语音波形图(3)噪声信号波形图4.3噪声波形图(4)增强的语音信号波形图4.4 增强的语音信号波形图在程序运行的开始播放了加噪的语音信号,

32、噪音的声音很大,在程序结束的时候,播放滤波后的输出信号,可以清楚的听到人声,噪音减小了好多。达到了预期的目的。在波形方面,在前面的安静区域观察比较明显,加入噪声以后前面的无声区域出现杂乱无章的波形,经过滤波以后,前面又重新回归安静。前后时域波形的均方误差算出来为0.0163。4.5.2增强前后语音信号频谱分析为了更好地分析语音信号增强的效果,我调用MATLAB中的指令fft()将时域信号经快速傅里叶变换得到对应频域信号,然后通过plot命令画出频谱图像。(1) 原音信号频谱图4.5 原音信号频谱(2)麦克风主语音信号输入频谱图4.6麦克风主语音输入频谱(3)麦克风噪声语音输入频谱图4.7麦克风

33、噪声语音输入频谱(3)降噪后语音输出频谱图4.8降噪后语音输出频谱频谱分析:观察降噪前后语音的频谱图以及噪声语音频谱可得,降噪后频谱的形状不变,由于噪声信号的滤除,频谱图变得更加清晰,说明经过RLS降噪后,主语音信号得到增强。4.5.3用不同的噪声去进行滤波的仿真分析图4.9 用不同的噪声滤波的波形 如图4.9所示,麦克风信号选用了“原声+粉红噪声.wav“,而参考信号选用了“高斯白噪声.wav”。首先看左边一列的时域波形,原始声音在开始是安静的没有波形,叠加噪声后通过自适应滤波器,最后得到的时域波形的前端依然有噪声,这个去噪是失败的。再看右边一列的频域波形,第二个图是第一个图叠加了噪声以后的

34、频谱,频域波形中间出现起伏,经过去噪算法以后,第四个图的中间依然有噪声起伏,幅度基本一致,噪声几乎没有被滤除。实验表明,期望信号与标准信号要成对使用,不能用一种噪声去滤除另一种噪声。前后时域波形的均方误差为0.194,比较前面0.0163,有着10倍以上的不同。听声音文件可以听到“雪花音”。5总结在课程设计的过程中,通过查阅我明白了基于RLS多麦克风语音信号降噪的过程以及RLS的原理及实现方法,通过MATLAB编程及仿真,实现了语音信号的降噪,并且从不清楚的语音信号中通过RLS降噪得到了清晰的语音信号,充分体会了基于RLS多麦克风语音信号降噪这一技术的作用。同时,也学会了对语音信号进行频谱分析

35、,以及进一步熟悉了MATLAB的使用过程,加深了对这一软件的了解,提高了自己动手的能力。之前在一些专业课程的实验课中我已经对MATLAB软件编程有了一定的了解,也编写过一些简单的程序,所以我理所当然地认为这次课程设计应该很轻松,等到我开始动手做的时候才发现我对它的了解还仅限于皮毛,对它的很多功能以及函数还不是很了解,所以在设计一开始就遇到很大的问题。后来我静下心来,从最开始的原理开始学习,由于对于理论知识学习不够扎实,便重拾教材与实验手册,对知识系统而全面进行了梳理,找到设计方向,参考课程上的代码,最后在同学的帮助下完成了程序的编写。这个过程也让我明白了学无止尽的道理,而且理论只有与实际联系起

36、来才能更好地去学习与理解。在弄懂了的RLS算法的基本原理后,我尝试自己写程序,但写出的程序错误百出,逻辑不够严密,于是参考学习了其他的资料,对程序错误的调试耗费了我很长时间,通过网络资料和书本搜罗了不少细节的资料,使我对Matlab编程的了解提高了一个新的层次。全部程序编完后,我已对算法掌握的非常熟练,甚至觉得曾经认为很难的原理现在已经变得很简单,这便是掌握知识的很高的境界了吧。有辛酸,有开心,这次课设我真的受益匪浅。感谢老师的指导和同学们的帮助,我会在学习的道路上走得更远。6参考文献1程燕.自适应抵消系统的关键技术研究. 西安电子科技大学,20142曹斌芳.自适应抵消技术的研究.湖南大学,2

37、0073胡广书.数字信号处理理论、算法与实现. 清华大学出版社,20034安颖、侯国强.自适应滤波算法研究与DSP实现.现代电子技术出版社,20075刘泉江雪梅信号与系统北京高等教育出版社 2006附录primary=wavread(原声+白噪声.wav); %读入主麦克风语音信号primary=primary;fref=wavread(白噪声(截断).wav); %读入参考语音信号fref= fref;% 初始化Worder=32; %滤波器阶数lambda=1 ; % 设置遗忘因子Delta=0.001 ;p=(1/Delta) * eye ( Worder,Worder ) ; w=ze

38、ros(Worder,1);output=primary; %主语音输出loopsize=max(size(primary); for i=1+Worder:loopsize %写RLS算法公式 u=fref(i-Worder+1:i); e=primary(i)-w*u; k=(p*u)/(lambda+u*p*u); w = w + k*e; p= (p-k*u*p)/lambda;output(i-Worder)=e;end;figure;source,fs,bits=wavread(原声.wav);subplot(2,4,1)plot(source); %画出原音波形title(原音波

39、形)source1=fft(source,length(source);subplot(2,4,5);plot(abs(source1); %画出原音频谱title(原音频谱)y1,Fs1,bits1=wavread(原声+白噪声.wav);subplot(2,4,2)plot(y1) %画出麦克风主语音波形title(麦克风主语音波形);Y1=fft(y1,length(y1);subplot(2,4,6);plot(abs(Y1); %画出麦克风主语音频谱title(麦克风主语音输入频谱);subplot(2,4,3);plot(fref); %画出噪声语音波形title(噪声语音波形);

40、y2,Fs2,bits2=wavread(白噪声(截断).wav);Y2=fft(y2,length(y2);subplot(2,4,7); plot(abs(Y2); %画出噪声语音频谱title(噪声语音频谱);subplot(2,4,4);plot(output); %画降噪后的语音波形title(降噪后的语音波形);wavwrite(output,fs,asd) %生成降噪后的语音y,Fs3,bits3=wavread(asd.wav);Y=fft(y,length(y);subplot(2,4,8);plot(abs(Y); %画出降噪后语音频谱title(降噪后语音输出频谱);f=

41、1;while f=1flag=input(请选择输出语音;1:原式语音 2:加噪主语音 3:噪声语音 4:降噪后语音(1?2?3?4);switch flagcase 1sound(source,fs,bits);case 2sound(y1,Fs1,bits1);case 3sound(y2,Fs2,bits2);case 4sound(output,Fs3,bits3);endf=input(是否重新选择?是输入1 否输入0);end本科生课程设计成绩评定表姓名性别专业、班级课程设计题目:基于RLS 算法的多麦克风降噪课程设计答辩或质疑记录:1、什么是最小二乘法?答:最小二乘法也叫最小平

42、方法,是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。2、你是怎么选择声音文件?答:题目要求由麦克风录制而成,我想到了英语听力都是在录音棚里完成,而且主要是人的声音集中在低频,于是截取一部分听力文件作为这次课设的目标文件。3、这个算法对于不同的噪声,它的滤波效果有什么不同?答:我选取两个噪声对这个算法进行仿真,一个是高斯白噪声,一个是粉红噪声,对于相匹配的噪声来进行算法仿真,效果很好。当用高斯白噪声对“原声+粉红噪声”去噪时,噪声几乎没有被滤除,声音中夹杂着“雪花音”,所以要用特定的噪声对特定的被污染文件滤波。成绩评定依据:序 号内 容分值得分1态度认真、学习刻苦、遵守纪律20分2实验方法正确,仪器使用得当,测试结果正确25分3电路原理及实验结果分析正确25分4设计报告的规范化、参考文献充分(不少于5篇)10分5课程设计答辩20分6总分100分最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字:年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号