信息处理课群综合训练与设计课程设计-基于RLS算法的多麦克风降噪.doc_第1页
信息处理课群综合训练与设计课程设计-基于RLS算法的多麦克风降噪.doc_第2页
信息处理课群综合训练与设计课程设计-基于RLS算法的多麦克风降噪.doc_第3页
信息处理课群综合训练与设计课程设计-基于RLS算法的多麦克风降噪.doc_第4页
信息处理课群综合训练与设计课程设计-基于RLS算法的多麦克风降噪.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

信息处理课群综合训练与设计课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 基于RLS算法的多麦克风降噪 设计任务: 给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。设计要求:(1)阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过程;(2)主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;(3)根据算法编写相应的MATLAB程序;(4)算法仿真收敛以后,得到增强的语音信号;(5)用matlab指令回放增强后的语音信号;(6)分别对增强前后的语音信号作频谱分析。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘 要MATLAB功能强大、简单易学、编程效率高,可以很方便地进行信号分析、处理和设计。自适应滤波器经过几十年的发展和完善,已逐渐成为人们常用的语音去噪技术,而MATLAB的出现又为其提供了更为方便快捷的方法来对语音信号进行去噪处理。而递推最小二乘(RLS,Recusive Least-Squares)算法是其中一种常用的线性自适应滤波算法。标准RLS算法是通过输入数据的相关矩阵来完成权向量的计算,矩阵来完成最小二乘向量的计算。QR-RLS算法则是基于脉冲响应数字滤波器(FIR),其实现是通过直接处理经QR分解的输入数据矩阵来完成权向量的计算,在数值上比标准的RLS算法更稳定。MATLAB的工具箱中包含RLS自适应滤波器的两个应用函数。关键词:MATLAB,自适应滤波,RLS算法AbstractMATLAB is powerful, easily learned, programming, and high-efficiency.It can be analyse, processed and design easily. After decades of development and perfection, adaptive filter has gradually commonly used for speech sound denoising technology, and the emergence of MATLAB has provided a more convenient way to deal with the noise speech signal. Meanwhile,the recursive Least Squares (RLS, Recusive further - Squares) algorithm is one of the commonly used linear adaptive filter algorithm.Through dealing with the input data, Standard matrix RLS algorithm can complete the calculation of weight vector,and the matrix is to complete the least squares vector calculation. QR - RLS algorithm is based on impulse response (FIR) digital filter, its implementation is through direct processing by the input data matrix QR decomposition to complete the calculation of weight vector, the RLS algorithm is more stable than the standard value. MATLAB toolbox contains two applications of RLS adaptive filter function.Key words: MATLAB, adaptive filtering, RLS algorithm,目录摘 要1Abstract2目录31 基本原理41.1 基于RLS算法的自适应滤波器41.2 RLS算法原理41.3 RLS算法的步骤72 原始语音信号采集82.1 语音信号的采样理论依据82.2 语音信号的分析83、基于RLS算法的多麦克风降噪的方法论证103.1 自行编写BLS算法程序块103.2 直调用的RLS算法函数设计程序114 提取语音信号115 调试程序125.1环境噪声中的语音波形分析125.2 RLS算法的滤波效果:145.3分别对增强前后的语音信号做频谱分析15心得体会16参考文献17附录:程序清单181 基本原理1.1 基于RLS算法的自适应滤波器 所谓自适应实现是指利用前一时刻获得的滤波器参数,根据估计误差自动调节现时刻的参数,使得某个代价函数达到最小,从而实现最优滤波。 如图所示的是自适应干扰抵消器的基本结构,它有着很广泛的应用。期望响应是信号和噪声之和,即,自适应处理器的输入是与相关的另一个噪声。当与不相关时,自适应处理器将调整自己的参数,以力图使成为的最佳估计。这样,将逼近信号,且其均方值为最小。噪声就得到了一定程度的抵消 + 自适应处理器 图1 自适应干扰抵消原理图 1.2 RLS算法原理RLS算法的收敛特性较LMS算法优越,但相应的复杂度也要高许多,考虑到收敛时间的影响,从起始时间到收敛时间经滤波器处理得到到输出误差依然很大,故直接将前32项去掉,先通过两输入作差得到预期值,再将所有预期值与对应时刻的实际输出值作差求平方,将这些平方值相加可以得到一个变量为W的函数,取W是函数的值最小。另外,显然距离n最近的量与Y(n)最接近,引入遗忘因子使得从n-1到0,相关程度逐渐减小。最后求得相关偏差,反馈给滤波器以矫正输出,达到减小误差的目的。 RLS算法的关键是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间迭代计算。具体来说,是要对初始时刻到当前时刻所有误差的平方进行平均并使其最小化,即使得误差的平方和最小。使用指数加权的误差平方和,其代价函数为:(0=fmax,则采样后的数字信号完整地保留了原始信号中的信息,一般实际应用中保证采样频率为信号最高频率的510倍,采样定理又称奈奎斯特定理。2.2 语音信号的分析 在MATLAB软件平台下,利用wavread函数对语音信号进行采集,记住采样频率和采样点数,wavread函数调用格式如下:y=wavread(file)%读取file所规定的wav文件,返回采样值放在向量y中y,fs,bits=wavread(file)%采样值放在向量y中,fs表示采样频率,bits表示采样位数对语音信号RLSprimsp.wav进行采样,程序如下:y,fs,nbits=wavread(RLSprimsp.wav) ;画出语音信号的时域波形,在对语音信号进行频谱分析。MATLAB提供了快速傅里叶变换算法FFT计算DFT的函数fft,其调用格式如下:参数为变换的时域序列向量,N是DFT变换区间长度,当N大于的长度2,fft函数自动在后面补零。当N小于的长度时,fft函数计算的前N个元素。利用fft对语音信号进行快速傅里叶变换,就可以得到信号的频谱特性。程序如下:y,fs,nbits=wavread(RLSprimsp.wav) %语音信号的采集sound(y,fs,nbits); %语音信号的播放n=length(y);Y=fft(y,n); %快速傅里叶变换figure;subplot(2,1,1);plot(y);title(原始信号波形,fontweight,bold);grid;subplot(2,1,2);plot(abs(Y);title(原始信号频谱,fontweight,bold);axis(0 150000 0 4000);grid;程序结果如下图:图3 原始语音信号波形、频谱图3、基于RLS算法的多麦克风降噪的方法论证3.1 自行编写BLS算法程序块 理解RLS算法的基本原理,自行编写RLS算法程序块,RLS算法可以理解为将输出反馈给滤波器来调整相关参数,达到校正误差的目的。算法实现代码如下所示:Worder=32; %滤波器阶数 lambda=1 ; % 设置遗忘因子Delta=0.001 ; p=(1/Delta) * 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=(1/lambda)*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; 3.2 直调用的RLS算法函数设计程序Hadapt = adaptfilt.rls(M,lam,P0,w0,Zi);Hadapt.ResetBeforeFiltering = off;y,e = filter(Hadapt,fref,primary); MATLAB自带的RLS算法adaptfilt.rls(L,lambda,invcov,coeffs,states),L指滤波器的长度,必须为正数,默认值为10;lambda指RLS的遗忘因子,为标量,取值范围 0 1 ,默认值为1;invcov指输入矩阵的协方差的逆,为使滤波器性能最佳,常将其初始化为正定矩阵;coeffs指初始化滤波器系数向量,长度必须为滤波器的阶数,默认下所有元素全零;states指矢量自适应滤波器的初始过滤状态,长度必须为阶数减1,默认下所有元素全零。 该方案运用现成的RLS算法函数,操作简单,易实现,但不能深入了解RLS算法的根本原理,不利于RLS算法的掌握。所以本文选用方案一。4 提取语音信号用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); %画参考麦克风语音波形 title(fref noise); subplot(2,3,3); plot(output); %画降噪后的语音波形 title(output); wavwrite(output,fs,lym0); %生成降噪后的语音波形 sound(output,fs,bits); 5 调试程序5.1环境噪声中的语音波形分析 (1)麦克风主噪音RLSprimsp.wav信号波形如下: 图4 麦克风主噪音波形图(2)参考噪音RLSrefns.wav 信号波形如下: 图5 参考噪音波形图 5.2 RLS算法的滤波效果: 算法仿真收敛以后,得到增强的语音信号 如下图所示:图6 增强的语音信号波形图 5.3分别对增强前后的语音信号做频谱分析 对于时域信号,我们往往难以找出其中蕴含的规律,仅从时域角度完成特征信号的提取、噪声信号的滤除和信号的分割不仅十分困难,有时甚至根本无法实现,这时如果从频域角度来看,问题就变得简单许多,首先将时域信号经傅里叶变换得到对应频域信号。 傅里叶变换,即将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。对于离散信号,通常采用离散福利叶变换,为提高计算机的运算速度又衍生出快速离散傅里叶变换,接下来频谱信号的绘制即是直接调用MATLAB中指令fft先得到对应的频谱信号,再通过plot命令得到的。 心得体会这次的课程设计,我再一次认识到了MATLAB软件的强大,能够进行语音信号的各种处理。通过这次课程设计,我明白了基于RLS算法的多麦克风降噪的过程,也对RLS算法有了深一层的理解。通过MATLAB编程与仿真,实现了语音信号的去噪,通过对去噪前后语音信号的波形及频谱的对比,形象地认识到RLS算法的作用。 这次的课程设计,我第一次接触到了语音去噪的相关知识。语音识别以语音我研究对象,是语音信号处理的一个重要研究方向,是模式识别的一个分支。语音识别的研究工作迄今已有几十年,但仍未有突破性进展,其主要原因有:(1)语音识别系统的适应性差;(2)在强噪声干扰环境下语音识别难;(3)基元的选择问题;(4)端点检测问题等。但自适应信号处理的理论和技术日益完善,加之MATLAB的出现,使实验室研究语音识别技术成为可能。参考文献2 郑宝玉. 自适应滤波器原理M. 北京:电子工业出版社,2006年.3 StevenW.Smith, 实用数字信号处理,人民邮电出版社,2010年.4 何振亚,自适应信号处理,科学出版社出版,2003年.附录:程序清单primary=wavread(RLSprimsp.wav); %读入主麦克风语音信号 n=length(primary);Y=fft(primary,n); %快速傅里叶变换figure;subplot(2,1,1);plot(primary);title(原始信号波形,fontweight,bold);grid;subplot(2,1,2);plot(abs(Y);title(原始信号频谱,fontweight,bold);axis(0 15000 0 4000);grid;primary=primary;fref=wavread(RLSrefns.wav); %读入参考语音信号n1=length(fref);Y1=fft(fref,n1); %快速傅里叶变换figure;subplot(2,1,1);plot(fref);title(参考麦克风信号波形,fontweight,bold);grid;subplot(2,1,2);plot(abs(Y);title(参考麦克风信号频谱,fontweight,bold);axis(0 15000 0 4000);grid;fref= fref;% 初始化Worder=32; %滤波器阶数lambda=1 ; % 设置遗忘

温馨提示

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

评论

0/150

提交评论