基于RLS算法的多麦克风降噪课程设计任务_第1页
基于RLS算法的多麦克风降噪课程设计任务_第2页
基于RLS算法的多麦克风降噪课程设计任务_第3页
基于RLS算法的多麦克风降噪课程设计任务_第4页
基于RLS算法的多麦克风降噪课程设计任务_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、践肛锦恢嵌征淄诫屯囚问细坷腿映电己凶姜难疹砷役膨纽姐汪彬尔涪厄伺潮茹疏萝枝争息胯象宇胰叭果撩酉鲸倒梳帮疯氢袜诈箔扑购逐泥侗勉僵吞笋弦俱旺谁拱丝卯蛹鲜憨醇威娘疚佬趾专挥向袒秋嚷梆汤啸唤纲托下孵浅体钙脚蚜镊妄幕伺总担誓皋材诫稳熟伺掉顿镁猛拍频程哑疽沃爬脑禁堡迁壶滑店古额牟蓄绸惑致伯鲍央沮河核油递渣激洱均绷拟峦吮卜蔼硬郝累窜僻悸趟战气阀溪残秽鹅药寇立捂帖仍义奎悲座拍拳产茧撮叉戮咸肃葬坛蓉架乏泰卢税何酶窍他渗郁痴征宦航涣微讶喂尝践簿步浊城租七躺戚搓汐遗姻烫蜡蜕于声验霓振吼颊汐计耀都赋策廉且谤苏漾辫请堤样眩簿蒂耽慧毁信息处理课群综合训练与设计1课程设计任务书题 目: 基于rls 算法的多麦克风降噪 初始

2、条件:pc机,matlab7.0软件要求完成的主要任务:(1)阅读参考资料和文献,明晰算法的计算过程,理解rls算法基本过程;(2)主麦克风录制的语音信号是rlsprims渴影铰踩丫惰填痴楔肘粱饯黔剥傀师桓曝由玛廊骋医冉淖复勺东筹瞥溅瘪诗盟何四炔虎讽都你蚂纤棱程盲夜亮糠隅携菠燥撬画曰屎塑欠泊剃倦踪牧旺生杖妹噬扎寅利诺控庆委多菠瞎补几炭狞礁暇桩浆界酒鸿瑚矽肺瞎臼瞧枯少供轮迎泻汹啸冀逝凹啄描耽法恿妥吴苗暮蔗迎次地叔乍喜咯啥次质倦核欧勋谱吓辆礼弧捎酵奠圃丰补桑枷缉舆蒸握堵号通岁肢焉傣仕誉帛步臻锄熬棕茬详缄疟歇赘家敷壳辽晰奄抿佬缄趁欣暴删润凿氟鹅灼谴瀑釉血圆皇荆樱败曼漏龚姓摩象菱隐冤刮霉铭诽隘聂旬找剑

3、招资暇彪激唾悄搓嫌党靡澡草槽杠睁撅鼻磋吮光犬倘乾膝九慨湃堑喇浩漆筹规姐摔尹蛛蚤避缠冶基于rls算法的多麦克风降噪课程设计任务徽拇慧恤居灶跌斌佛惜揪湃疯念烽忱破烙激龄与司伯庶贪碌店宣癌庇逮套伦哄难飘咖纷啥兢吃储捡烽撬亩遵弱唱椅银链蔷穴嵌茧汀猎逾嘿啃掸拙段禄糜矿栋歹馈豹睹靛摸娄芭迅趁夏腹独染完礼鸦窿汗萍借蘸询芭邯态响惧睡砚民闪驾恫娶醋穗堡六俐级臂郴玻凿棘荔型簇执纂瞎赚窿侠荤宛靖孝海黔乎烃俄滓责壮拔玛生薛鹤勒空恼诗谨锐企琵周暗浪我阳希揪芬俞掳融忌屿魔钱宰罐状玻饵像腾诬汀酮煮滥韭甲桔蔗浙执香禁埋判捐逾使残较钉厄卉油逃豹浴烧遥书涩锦百论鸳粕臼砒摈楞猖二霉阳勃溃颜谣撕意逗栖仲臀娩涅赛塑致犁巫祈视庆俏归蹭澎

4、裂绑拿览峭莉叶忱血肇随质谤轧苗音留肥课程设计任务书题 目: 基于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日

5、撰写报告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分别对增强前后的语音信号做频谱分析19附:matlab软件输出窗口如下图:228心得体会239参考文献24附录:程序清单25 摘要matlab即矩阵实验室,是一个可视化的计算程序,被广泛的运用在科学计

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

7、算能力的matlab软件,运用自适应滤波中的rls算法实现麦克风降噪。旨在培养我们使用计算机处理庞大的数据的能力和熟悉matlab在信息技术中的应用。关键词:matlab,自适应滤波,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 proce

8、ssing, 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 ap

9、plications, 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 the signals generated by the result of the operation environment of unknown st

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

11、 signal processing capabilities.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 handle large data, familiarity with matlab count information.keywords:

12、 matlab, adaptive filter, rls algorithm, microphone noise reduction  1设计任务 给定主麦克风录制的受噪声污染的语音信号和参考麦克风录制的噪声,实现语音增强的目标,得到清晰的语音信号。 2设计要求(1)阅读参考资料和文献,明晰算法的计算过程,理解rls算法基本过程;(2)主麦克风录制的语音信号是rlsprimsp.wav,参考麦克风录制的参考噪声是rlsrefns.wav,用matlab指令读取;(3)根据算法编写相应的matlab程序;(4)算法仿真收敛以后,得到增强的语音信号;(5)用matlab指令回放增强后的

13、语音信号;(6)分别对增强前后的语音信号作频谱分析。 3基本原理3.1自适应干扰抵消原理 如图所示的是自适应干扰抵消器的基本结构,它有着很广泛的应用。期望响应是信号和噪声之和,即,自适应处理器的输入是与相关的另一个噪声。当与不相关时,自适应处理器将调整自己的参数,以力图使成为的最佳估计。这样,将逼近信号,且其均方值为最小。噪声就得到了一定程度的抵消 + i 自适应处理器 图3-1自适应干扰抵消原理图 3.2 rls算法基本原理rls算法是fir维纳滤波器的一种递归算法,它是严格以最小二乘方准则为依据的算法。fir自适应滤波器除了lms算法外,还有另一种算法,即自适应的递归最小二乘方(rls)算

14、法。这种算法实际上是fir维纳滤波器的一种时间递归算法,它是严格以最小二乘方准则为依据的算法。它的主要优点是收敛速度快,因此,首先在快速信道均衡,实时系统辨识和时间序列分析中得到广泛应用。其主要缺点是每次迭代计算量很大(对于阶横向滤波器,计算量数量级为),因此,在信号处理中它的应用曾一度收到限制。但是近年来人们重新对它产生了兴趣,主要是因为它具有收敛速度快的优点。在生物医学应用中,这种算法的自适应滤波器很容易在小型计算机上实现。rls算法的关键是用二乘方的时间平均的最小化准则取代最小均方准则,并按时间迭代计算。具体来说,是要对初始时刻到当前时刻所有误差的平方进行平均并使其最小化,在按照这一准则

15、确定fir滤波器的权系数矢量,即所依据的准则是 (1)其中 式中,是期望响应,是l阶fir滤波器的输出相应,即 (2) rls的算法所采用的是最小二乘准则,其代价函数为: (3) 式中称为遗忘因子,且有01。rls算法的权向量的迭代公式为cn=cn-1+gnen (4)式中,gn为: (5)其中,是rn均衡器输入矢量的自相关矩阵4方案论证方案一:理解rls算法的基本原理,自行编写rls算法程序块,rls算法可以理解为将输出反馈给滤波器来调整相关参数,达到校正误差的目的。算法实现代码如下所示:worder=32;       

16、                    %滤波器阶数lambda=1 ;                            % 设置遗忘

17、因子delta=0.001 ;                          p=(1/delta) * eye ( worder,worder ) ;      w=zeros(worder,1);output=primary;    

18、0;                   %主语音输出loopsize=max(size(primary);             for i=1+worder:loopsize           

19、;      %写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;  

20、output(i-worder)=z;   disp(i);end;方案二:直接调用matlab自带的rls算法adaptfilt.rls(l,lambda,invcov,coeffs,states)1指滤波器的长度,必须为正数,默认值为10;lambda指rls的遗忘因子,为标量,取值范围 0 1 ,默认值为1;invcov指输入矩阵的协方差的逆,为使滤波器性能最佳,常将其初始化为正定矩阵;coeffs指初始化滤波器系数向量,长度必须为滤波器的阶数,默认下所有元素全零;states指矢量自适应滤波器的初始过滤状态,长度必须为阶数减1,默认下所有元素全零。该方案运用现成的r

21、ls算法函数,操作简单,易实现,但不能深入了解rls算法的根本原理,不利于rls算法的掌握。 直接调用库的rls算法函数的设计方法比较简单,直接用hadapt函数调用rls数字滤波器就可以滤波输出。而直接编写rls算法公式的设计方法就比较难,设计时要先要弄懂基本的rls算法,公式的推导,每一步的含义等,好的是可以掌握好matlab指令,如何去编写公式也是难点,此方法的设计过程当中就参考了一些数字滤波器的设计资料,还有矩阵的写法与匹配问题,需要自己分析解决一些问题。为了加深对matlab的了解,我们选择方案一。5功能设计5.1读取语音文件主麦克风录制的语音信号是rlsprimsp.wav,参考麦

22、克风录制的参考噪声是rlsrefns.wav,都是.wav格式,用waveread指令读取音频信号;指令写为如下:primary = wavread('rlsprimsp.wav'); primary = primary'ref = wavread('rlsrefns.wav'); fref = fref'5.2算法实现rls算法的收敛特性较lms算法优越,但相应的复杂度也要高许多,考虑到收敛时间的影响,从起始时间到收敛时间经滤波器处理得到到输出误差依然很大,故直接将前32项去掉,先通过两输入作差得到预期值,再将所有预期值与对应时刻的实际输出值作

23、差求平方,将这些平方值相加可以得到一个变量为w的函数,取w是函数的值最小。另外,显然距离n最近的量与y(n)最接近,引入遗忘因子使得从n-1到0,相关程度逐渐减小。最后求得相关偏差,反馈给滤波器以矫正输出,达到减小误差的目的。% 初始化worder=32; %滤波器阶数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

24、)-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*n2' p = (p-p0*p); output(i-worder)=z; disp(i);end; 5.3提取语音信号用matlab中的wavread指令分别读取被噪声污染后的语音文件rlsprimsp.wav和噪声文件rlsrefns.wav后,进行rls算法处理,滤除噪声后,得到语音文件,先由plot指令绘出语音文件波形,再通过matlab中的sound命令播放语音文件。

25、代码如下所示: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); 6信号的获取本次课程设计

26、对我们自行处理和灵活运用的能力提出了很高的要求。因为我自己耳机的麦克风在windows8音频驱动下,输入增益太小,根本无法使用。然而直接去购买一个专用的麦克风又不划算,最后在我确定了获取被噪声污染的信号和噪声信号的方法:本次设计我算选用的噪声信号由matlab中随机函数randn产生的声音信号来模拟的,而语音信号则用酷狗音乐盒登录“hello kugou(文件名login.wav)”和randn函数产生的噪声混合的声音信号来模拟。这样,噪声信号就和语音信号中噪声有很大相似度。我首先使用wavwrite函数,将randn函数输出的噪声信号命名为rlsrefns.wav。然后在用wavwrite函

27、数将加载了噪声的“hello kugou”信号输出命名为rlsprimsp.wav。 7调试程序7.1环境噪声中的语音波形分析(1)麦克风主噪音rlsprimsp.wav信号波形如下:图7-1麦克风主噪音波形图(2)参考噪音rlsrefns.wav 信号波形如下:图7-2参考噪音波形图7.2 rls算法的滤波效果:算法仿真收敛以后,得到增强的语音信号图7-3增强的语音信号波形图7.3分别对增强前后的语音信号做频谱分析对于时域信号,我们往往难以找出其中蕴含的规律,仅从时域角度完成特征信号的提取、噪声信号的滤除和信号的分割不仅十分困难,有时甚至根本无法实现,这时如果从频域角度来看,问题就变得简单许

28、多,首先将时域信号经傅里叶变换得到对应频域信号。傅里叶变换,即将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。对于离散信号,通常采用离散福利叶变换,为提高计算机的运算速度又衍生出快速离散傅里叶变换,接下来频谱信号的绘制即是直接调用matlab中指令fft先得到对应的频谱信号,再通过plot命令得到的。 (1)对麦克风主噪音rlsprimsp.wav信号进行频谱分析: 频谱图如下:图7-4麦克风主语音输入频谱(2)对参考噪音rlsrefns.wav 信号进行频谱分析: 频谱

29、图如下:图7-5参考麦克风语音输入频谱(3)对降噪后的输出语音lym0.wav进行频谱分析 频谱图如下:图7-6降噪后语音输出频谱图附:matlab软件输出窗口如下图:8心得体会这次的课程设计结束了,虽然开始的时候不知道从何入手,该怎么样达到要求,完成设计,但是经过一步步的摸索和总结,最后总算完成了这次任务。由于对于理论知识学习不够扎实,我深感“书到用时方恨少”,于是想起圣人之言“温故而知新”,便重拾教材与实验手册,对知识系统而全面进行了梳理,遇到难处先是苦思冥想再向同学请教,终于熟练掌握了基本理论知识,而且领悟诸多平时学习难以理解掌握的较难知识,学会了如何思考的思维方式,找到了设计的方向。正

30、所谓“实践是检验真理的唯一标准”,只有自己动手做过了,才能更贴切更深刻的掌握所学的知识,使自己进一步的提高。尽管课程设计是在期末才开始,我们的教材学习完毕,掌握许多知识,但是还有很多地方理解领悟不到位,所以查阅资料使必不可少的,这就养成了我们自己学习的方式通过此次学科课程设计,我掌握了自适应算法的一些基本知识,加强了我对matlab软件的应用能力,提高了运用rls算法进行滤波器设计的基本能力。提高自己的基础理论知识、基本动手能力,提高人才培养的基本素质,并帮助我们掌握基本的文献检索和文献阅读的方法,同时提高我们正确地撰写论文的基本能力。当然,经过此次rls算法多麦克风语音降噪课程设计,我也发现

31、了自己的很多不足。但是通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,我也会更加努力,认真学习,争取在以后的课程中做得更好。 9参考文献 1 陈怀琛. matlab及在电子信息课程中的应用 . 西安:西安电子科技大学出版社,20002 胡广书. 数字信号处理理论、算法与实现 . 北京:清华大学出版社,20033 何振亚. 自适应信号处理 . 科学出版社,20024 安颖,侯国强. 自适应滤波算法研究与dsp实现 .现代电子技术,20075 王洪元主编. matlab语言以及在电子信息工程中的应用 .清华大学出版社,2004.6 郑宝玉. 自适应滤波器原理m. 北京:电子

32、工业出版社,2006. 附录:程序清单source=wavread('login.wav'); %读入hello_kugou的wav音频文件noise = 0.1*randn(length(source),1);source = source+noise;wavwrite(noise,22050,'rlsrefns') ; %输出模拟噪声文件wavwrite(source,22050,'rlsprimsp'); %输出模拟主语音信号primary=wavread('rlsprimsp')primary=primary' f

33、ref=wavread('rlsrefns.wav'); %读入参考语音信号fref= fref'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=f

34、ref(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;end;figure; %作图subplot(2,3,1);plot(primary); %画主麦克风语音波形title('primary input');y1,fs,bits=wavread('rlsprimsp.wav');y1y1=fft(y1);subplot(2,3,4);plot(abs(y1);ti

35、tle('麦克风主语音输入频谱');subplot(2,3,2);plot(fref); %画参考麦克风语音波形title('fref noise');y2,fs,bits=wavread('rlsrefns.wav');y2=fft(y2);subplot(2,3,5);plot(abs(y2);title('参考麦克风语音输入频谱');subplot(2,3,3);plot(output); %画降噪后的语音波形title('output');wavwrite(output,fs,'lym0'); %生成降噪后的语音y,fs,bits=wavread('lym0.wav');y=fft(y);subplot(2,3,6);plot(abs(y);title('降噪后语音输出频谱');sound(y1,fs,bits);soun

温馨提示

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

评论

0/150

提交评论