基于RLS算法的多麦克风降噪课程设计任务书.docx
- 文档编号:60455
- 上传时间:2022-10-01
- 格式:DOCX
- 页数:27
- 大小:250.62KB
基于RLS算法的多麦克风降噪课程设计任务书.docx
《基于RLS算法的多麦克风降噪课程设计任务书.docx》由会员分享,可在线阅读,更多相关《基于RLS算法的多麦克风降噪课程设计任务书.docx(27页珍藏版)》请在冰豆网上搜索。
基于RLS算法的多麦克风降噪课程设计任务书
课程设计任务书
题目:
基于RLS算法的多麦克风降噪
初始条件:
pc机,matlab7.0软件
要求完成的主要任务:
(1)阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过程;
(2)主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;
(3)根据算法编写相应的matlab程序;
(4)算法仿真收敛以后,得到增强的语音信号;
(5)用matlab指令回放增强后的语音信号;
(6)分别对增强前后的语音信号作频谱分析。
时间安排:
6月20日到6月27日理论设计与仿真
6月28日到7月1日撰写报告
7月3日答辩
指导教师签名:
年月日
系主任(或责任教师)签名:
年月日
摘要
MATLAB即矩阵实验室,是一个可视化的计算程序,被广泛的运用在科学计算领域,包括数值计算、数据拟合图形图像处理、系统模拟仿真功能。
除具备卓越的数值计算能力用外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。
自适应滤波器是统计信号处理的一个重要组成部分。
在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此我们需要研究自适应滤波器。
凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供一种吸引人的解决方法,而且其性能通常远优于用常方法设计的固定滤波器。
此外,自适应滤波器还能提供非自适应方法所不可能提供的新的信号处理能力。
本次课程设计正是要求使用具有强大运算能力的MATLAB软件,运用自适应滤波中的RLS算法实现麦克风降噪。
旨在培养我们使用计算机处理庞大的数据的能力和熟悉MATLAB在信息技术中的应用。
关键词:
MATLAB,自适应滤波,RLS算法,麦克风降噪
Abstract
MATLABnamelyMatrixLaboratory,isavisualcalculationprocedureiswidelyusedinthefieldofscientificcomputing,includingnumericalcomputation,datafitting,graphics,imageprocessing,systemsimulation.Hasproventhevalueofcomputingpower,italsoprovidesaprofessionallevelofsymboliccomputation,wordprocessing,visualmodelingandsimulationandreal-timecontrolfunctions.
Theadaptivefilterisanimportantpartofstatisticalsignalprocessing.Inpracticalapplications,doesnothavesufficientinformationtodesignafixed-coefficientdigitalfilterdesignrulesinthenormaloperationofthefilterchange,soweneedtostudytheadaptivefilter.Thosewhoneedtodealwiththesignalsgeneratedbytheresultoftheoperationenvironmentofunknownstatisticsorneedtodealwithnon-stationarysignals,theadaptivefiltercanprovideanattractivesolution,anditsperformanceisusuallyfarsuperiortothefixedfilterdesignusingtheregularmethod.Inaddition,theadaptivefiltercanalsoprovidenon-adaptivemethodscannotprovideanewsignalprocessingcapabilities.
ThiscoursedesignistousethepowerfulcomputingpowerofMATLABsoftware,theuseoftheRLSadaptivefilteringalgorithmmicrophonenoisereduction.Aimstodevelopthewayweusecomputerstohandlelargedata,familiaritywithMATLABcountinformation.
Keywords:
MATLAB,adaptivefilter,RLSalgorithm,microphonenoisereduction
1设计任务
给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。
2设计要求
(1)阅读参考资料和文献,明晰算法的计算过程,理解RLS算法基本过程;
(2)主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,用matlab指令读取;
(3)根据算法编写相应的MATLAB程序;
(4)算法仿真收敛以后,得到增强的语音信号;
(5)用matlab指令回放增强后的语音信号;
(6)分别对增强前后的语音信号作频谱分析。
3基本原理
3.1自适应干扰抵消原理
如图所示的是自适应干扰抵消器的基本结构,它有着很广泛的应用。
期望响应
是信号和噪声之和,即
,自适应处理器的输入是与
相关的另一个噪声
。
当
与
不相关时,自适应处理器将调整自己的参数,以力图使
成为
的最佳估计
。
这样,
将逼近信号
,且其均方值
为最小。
噪声
就得到了一定程度的抵消
+
图3-1自适应干扰抵消原理图
3.2RLS算法基本原理
RLS算法是FIR维纳滤波器的一种递归算法,它是严格以最小二乘方准则为依据的算法。
FIR自适应滤波器除了LMS算法外,还有另一种算法,即自适应的递归最小二乘方(RLS)算法。
这种算法实际上是FIR维纳滤波器的一种时间递归算法,它是严格以最小二乘方准则为依据的算法。
它的主要优点是收敛速度快,因此,首先在快速信道均衡,实时系统辨识和时间序列分析中得到广泛应用。
其主要缺点是每次迭代计算量很大(对于
阶横向滤波器,计算量数量级为
),因此,在信号处理中它的应用曾一度收到限制。
但是近年来人们重新对它产生了兴趣,主要是因为它具有收敛速度快的优点。
在生物医学应用中,这种算法的自适应滤波器很容易在小型计算机上实现。
RLS算法的关键是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间迭代计算。
具体来说,是要对初始时刻到当前时刻所有误差的平方进行平均并使其最小化,在按照这一准则确定FIR滤波器的权系数矢量
,即所依据的准则是
(1)
其中
式中,
是期望响应,
是L阶FIR滤波器的输出相应,即
(2)
RLS的算法所采用的是最小二乘准则,其代价函数为:
(3)
式中称
为遗忘因子,且有0
1。
RLS算法的权向量的迭代公式为cn=cn-1+gnen(4)
式中,gn为:
(5)
其中,是Rn均衡器输入矢量的自相关矩阵
4方案论证
方案一:
理解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));
fori=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;
方案二:
直接调用MATLAB自带的RLS算法adaptfilt.rls(l,lambda,invcov,coeffs,states)
1指滤波器的长度,必须为正数,默认值为10;lambda指RLS的遗忘因子,为标量,取值范围[01],默认值为1;invcov指输入矩阵的协方差的逆,为使滤波器性能最佳,常将其初始化为正定矩阵;coeffs指初始化滤波器系数向量,长度必须为滤波器的阶数,默认下所有元素全零;states指矢量自适应滤波器的初始过滤状态,长度必须为阶数减1,默认下所有元素全零。
该方案运用现成的RLS算法函数,操作简单,易实现,但不能深入了解RLS算法的根本原理,不利于RLS算法的掌握。
直接调用库的RLS算法函数的设计方法比较简单,直接用Hadapt函数调用RLS数字滤波器就可以滤波输出。
而直接编写RLS算法公式的设计方法就比较难,设计时要先要弄懂基本的RLS算法,公式的推导,每一步的含义等,好的是可以掌握好MATLAB指令,如何去编写公式也是难点,此方法的设计过程当中就参考了一些数字滤波器的设计资料,还有矩阵的写法与匹配问题,需要自己分析解决一些问题。
为了加深对matlab的了解,我们选择方案一。
5功能设计
5.1读取语音文件
主麦克风录制的语音信号是RLSprimsp.wav,参考麦克风录制的参考噪声是RLSrefns.wav,都是.wav格式,用waveread指令读取音频信号;
指令写为如下:
primary=wavread('RLSprimsp.wav');
primary=primary';
ref=wavread('RLSrefns.wav');
fref=fref';
5.2算法实现
RLS算法的收敛特性较LMS算法优越,但相应的复杂度也要高许多,考虑到收敛时间的影响,从起始时间到收敛时间经滤波器处理得到到输出误差依然很大,故直接将前32项去掉,先通过两输入作差得到预期值,再将所有预期值与对应时刻的实际输出值作差求平方,将这
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 RLS 算法 麦克风 课程设计 任务书