强烈推荐】基于RLS算法的多麦克风降噪_毕业论文任务书_第1页
强烈推荐】基于RLS算法的多麦克风降噪_毕业论文任务书_第2页
强烈推荐】基于RLS算法的多麦克风降噪_毕业论文任务书_第3页
强烈推荐】基于RLS算法的多麦克风降噪_毕业论文任务书_第4页
强烈推荐】基于RLS算法的多麦克风降噪_毕业论文任务书_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、(此文档为word格式,下载后您可任意编辑修改!)课程设计任务书题目:基于RLS算法的多麦克风降噪初始条件:pc机,matlab7.0软件要求完成的主要任务:(1) 阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过 程;(2)主麦克风录制的语音信号是 RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;(3)根据算法编写相应的matlab程序;(4)算法仿真收敛以后,得到增强的语音信号;(5)用matlab指令回放增强后的语音信号;(6)分别对增强前后的语音信号作频谱分析。时间安排:6月20日到6月27日理论设计与仿真6月28日到

2、7月1日 撰写报告7月3日答辩指导教师签名:年 月系主任(或责任教师)签名目录课程设计任务书 1摘要3Abstract41设计任务52设计要求63基本原理73.1自适应干扰抵消原理 73.2 RLS算法基本原理 84方案论证 105功能设计125.1读取语音文件 125.2算法实现136信号的获取157调试程序167.1 环境噪声中的语音波形分析 167.2 RLS算法的滤波效果: 187.3分别对增强前后的语音信号做频谱分析 佃附:MATLAB 软件输出窗口如下图: 228心得体会239参考文献24附录:程序清单 25摘要MATLAB即矩阵实验室,是一个可视化的计算程序,被广泛的运用在 科学

3、计算领域,包括数值计算、数据拟合图形图像处理、系统模拟仿真功 能。除具备卓越的数值计算能力用外,它还提供了专业水平的符号计算, 文字处理,可视化建模仿真和实时控制等功能。自适应滤波器是统计信号处理的一个重要组成部分。在实际应用 中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会 在滤波器正常运行时改变,因此我们需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。此外,自适应滤波器还能提供非自适应方法所不可 能提供的新的信号处理能力。本次课程设计正是要求使

4、用具有强大运算能力的MATLAB件,运用自适应滤波中的RLS算法实现麦克风降噪。旨在培养我们使用计算机处 理庞大的数据的能力和熟悉 MATLA在信息技术中的应用。关键词:MATLA,自适应滤波,RLS算法,麦克风降噪AbstractMATLAB namely Matrix Laboratory, is a visual calculation procedure is widely used in the field of scientific computing, including numerical computation, data fitting, graphics, image p

5、rocessing,system simulation. Has proven the value of computing power, it also provides a professional level of symbolic computation, word processing, visual modeling and simulation and real-time control functions.The adaptive filter is an important part of statistical signal processing. In practical

6、 applications, does not 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 the signals generated by the result of the operation environment of unknown statistics or need to deal

7、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, the adaptive filter can also provide non-adaptive methods can not provide a new signal processing capabi

8、lities.This 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 .Keywords: MATLAB, adaptive filter, RLS algorithm, microphone noise reduction1设计任务给定主麦克风录制的受噪声污

9、染的语音信号和参考麦克风录制的噪 声,实现语音增强的目标,得到清晰的语音信号。2设计要求(1) 阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过程;(2) 主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;(3) 根据算法编写相应的MATLAB?序;(4) 算法仿真收敛以后,得到增强的语音信号;(5) 用matlab指令回放增强后的语音信号;(6) 分别对增强前后的语音信号作频谱分析。3基本原理3.1自适应干扰抵消原理如图所示的是自适应干扰抵消器的基本结构,它有着很广泛的应用。期望响应是信号和噪声之和,即

10、,自适应处理器的输入是与相关的另 一个噪声。当与不相关时,自适应处理器将调整自己的参数,以力图使成 为的最佳估计。这样,将逼近信号,且其均方值为最小。噪声就得到了一 定程度的抵消17图3-1自适应干扰抵消原理图3.2 RLS算法基本原理RLS算法是FIR维纳滤波器的一种递归算法,它是严格以最小二乘方 准则为依据的算法。FIR自适应滤波器除了 LMS算法外,还有另一种算 法,即自适应的递归最小二乘方(RLS算法。这种算法实际上是 FIR维 纳滤波器的一种时间递归算法,它是严格以最小二乘方准则为依据的算 法。它的主要优点是收敛速度快,因此,首先在快速信道均衡,实时系统 辨识和时间序列分析中得到广泛

11、应用。其主要缺点是每次迭代计算量很大 (对于阶横向滤波器,计算量数量级为),因此,在信号处理中它的应用 曾一度收到限制。但是近年来人们重新对它产生了兴趣,主要是因为它具 有收敛速度快的优点。在生物医学应用中,这种算法的自适应滤波器很容 易在小型计算机上实现。RLS算法的关键是用二乘方的时间平均的最小化准则取代最小均方准 则,并按时间迭代计算。具体来说,是要对初始时刻到当前时刻所有误差 的平方进行平均并使其最小化,在按照这一准则确定FIR滤波器的权系数矢量,即所依据的准则是(1)其中式中,是期望响应,是 L阶FIR滤波器的输出相应,即(2)RLS的算法所采用的是最小二乘准则,其代价函数为:J二二

12、小二宀i * 口 -cH n-1 y n 2(3)式中称为遗忘因子,且有01。RLS算法的权向量的迭代公式为cn=cn-1+g nen(4)式中,gn为:g(n) = (RA(-1) (n-l)+ y(n)/l + yH n R_1 n - 1 y n (5)其中,是Rn均衡器输入矢量的自相关矩阵4方案论证方案一:理解RLS算法的基本原理,自行编写 RLS算法程序块,RLS算法可以理解为将输出反馈给滤波器来调整相关参数,达到校正误差 的目的。算法实现代码如下所示:Worder=32;%滤波器阶数lambda=1 ;%设置遗忘因子Delta=0.001 ;p=(1Delta) * eye ( W

13、order,Worder ); w=zeros(Worder,1);output=primary;%主语音输出loopsize=max(size(primary);for i=1+Worder:loopsize% 写 RLS 算法公式z=primary(i)-w*(fref(i-Worder+1:i); n2=fref(i-Worder+1:i);k=(1lambda)*p*n2;K=k(1+n2*k);w = w + K*z;p0=K*n2;p = (p-p0*p)lambda;output(i-Worder)=z;disp(i);end;方案二:直接调用MATLAB自带的RLS算法adap

14、tfilt.rls(l , lambda, invcov,coeffs ,states)1指滤波器的长度,必须为正数,默认值为10; lambda指RLS的遗忘因子,为标量,取值范围0 1,默认值为1; invcov指输入矩阵的协方 差的逆,为使滤波器性能最佳,常将其初始化为正定矩阵;coeffs指初1,默始化滤波器系数向量,长度必须为滤波器的阶数,默认下所有元素全零; states指矢量自适应滤波器的初始过滤状态,长度必须为阶数减认下所有元素全零。该方案运用现成的RLS算法函数,操作简单,易实现,但不能深入了解RLS算法的根本原理,不利于 RLS算法的掌握。直接调用库的RLS算法函数的设计方

15、法比较简单,直接用 Had apt 函数调用RLS数字滤波器就可以滤波输出。而直接编写RLS算法公式的设计方法就比较难,设计时要先要弄懂基本的RLS算法,公式的推导,每一步的含义等,好的是可以掌握好MATLAE指令,如何去编写公式也是难点,此方法的设计过程当中就参考了一些数字滤波器的设计资料,还有 矩阵的写法与匹配问题,需要自己分析解决一些问题。为了加深对 matlab的了解,我们选择方案一。5功能设计5.1读取语音文件主麦克风录制的语音信号是 RLSprimsp.wav,参考麦克风录制的参考 噪声是 RLSrefns.wav,都是.wav格式,用 waveread指令读取音频信 号;指令写为

16、如下:primary = wavread(RLSprimsp.wav);primary = primary;ref = wavread(RLSrefns.wav);fref = fref;5.2算法实现RLS算法的收敛特性较LMS算法优越,但相应的复杂度也要高许多, 考虑到收敛时间的影响,从起始时间到收敛时间经滤波器处理得到到输出 误差依然很大,故直接将前 32项去掉,先通过两输入作差得到预期值, 再将所有预期值与对应时刻的实际输出值作差求平方,将这些平方值相加 可以得到一个变量为 W的函数,取 W是函数的值最小。另外,显然距离n最近的量与Y (n)最接近,引入遗忘因子使得从n-1到0,相关程

17、度逐渐减小。最后求得相关偏差,反馈给滤波器以矫正输出,达到减小误差的 目的。%初始化Worder=32;%滤波器阶数Delta=0.001 ;p=(1Delta) * eye ( Worder,Worder );w=zeros(Worder,1);output=primary;% 主语音输出loopsize=max(size(primary);for i=1+Worder:loopsize%写 RLS 算法公式z=primary(i)-w*(fref(i-Worder+1:i);n2=fref(i-Worder+1:i);k=p*n2;K=k(1+n2*k);w = w + K*z;p0=K*

18、n2;P = (p-po*p);output(i-Worder)=z;disp(i);end;5.3提取语音信号用MATLAB中的wavread指令分别读取被噪声污染后的语音文件RLSprimsp.wav和噪声文件 RLSrefns.wav后,进行 RLS算法处理,滤 除噪声后,得到语音文件,先由plot指令绘出语音文件波形,再通过MATLAB中的sound命令播放语音文件。代码如下所示:figure;% 作图subplot(2,3,1);plot(primary);%画主麦克风语音波形title(primary input);subplot(2,3,2);plot(fref);%画参考麦克风

19、语音波形 title(fref noise); subplot(2,3,3);plot(output);%画降噪后的语音波形title(output);wavwrite(output,fs,lym0); %生成降噪后的语音波形 sound(output,fs,bits);6信号的获取本次课程设计对我们自行处理和灵活运用的能力提出了很高的要求。 因为我自己耳机的麦克风在 win dows8音频驱动下,输入增益太小,根本 无法使用。然而直接去购买一个专用的麦克风又不划算,最后在我确定了 获取被噪声污染的信号和噪声信号的方法:本次设计我算选用的噪声信号由MATLAB随机函数randn产生的声音信号来

20、模拟的,而语音信号则用酷狗音乐盒登录“.wav) ”和randn函数产生的噪声混合的声音信号来模拟。这样,噪声信号就和语音信号中噪声 有很大相似度。我首先使用 wavwrite函数,将randn函数输出的噪声信 号命名为RLSrefns.wav。然后在用wavwrite函数将加载了噪声的“ .wav);% 读入 hello_kugou 的 wav 音频文件noise = 0.1*randn(length(source),1);source = source+noise;primary=wavread(RLSprimsp) primary=primary;fref=wavread(RLSrefn

21、s.wav);% 读入参考语音信号fref= fref;Worder=32;%滤波器阶数lambda=1 ;%设置遗忘因子Delta=0.001 ;p=(1Delta) * eye ( Worder,Worder );w=zeros(Worder,1);output=primary;% 主语音输出loopsize=max(size(primary);for i=1+Worder:loopsize% 写 RLS 算法公式z=primary(i)-w*(fref(i-Worder+1:i);n2=fref(i-Worder+1:i);k=(1lambda)*p*n2;K=k(1+n2*k);w = w + K*z;p0=K*n2;p = (p-p0*p)lambda;output(i-Worder)=z;end;figure;%作图subplot(2,3,1);plot(primary);% 画

温馨提示

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

评论

0/150

提交评论