1 简介
自适应信号处理的理论和技术经过40多年的发展和完善,已逐渐成为人们常用的语音去噪技术.而Matlab的出现又为其提供了更为方便快捷的方法来对语音信号进行消噪处理.介绍了自适应滤波器中常用的几种算法,并通过实例介绍了基于Matlab的RLS自适应语音噪声对消系统的设计与实现.
2 部分代码
clear;clc;close allTs=0.1;num=100;%?采样点数?k=1:num;x=10*cos(2*pi*k*Ts+0.25*pi);%正弦干扰%s=0.5*randn(1,num);%x=x+s;xr=cos(2*pi*k*Ts);%参考信号p=2;%滤波器长度xita=zeros(p,num-p+1); %保存权值err=zeros(1,num-p+1); %保存误差kn=zeros(2,num-p+1);lamda=0.99; %遗忘因子diag_I=[1,0;0,1];for i=1:num-p+1);%输入含回声的信号??inp=inp(:);[d1,sr] = audioread('1.wav');%输入原始信号?d=[d1;zeros(4000,1)]; %需要使得d和inp行数完全一致才能运算d=d(:);totallength=size(d,1);%步长,返回d的行数??N=length(inp);%k=0:1382493;??k=0:691246;%算法开始??w=zeros(sysorder,1);%初始化??w1=zeros(sysorder,1);%初始化??error=zeros(N,1); %初始化??EE=zeros(N,1);Loop=15000;RMSE=zeros(1,476000);for n=sysorder:N%u=inp(n:-1:n-sysorder+1);? ?? ?? ? %u的矩阵??u=inp(n-sysorder+1:1:n);%u矩阵为输入的信号中的一小段??%NLMS算法??y(n)=w'*u; %系统输出??r(n)=u'*u; %自相关矩阵??e(n)=d(n)-y(n);%误差??srr(n)=10*log10(d(n)/(inp(n)-d(n)));srr1(n)=10*log10(d(n)/(y(n)-d(n)));%e(n)=inp(n)-y(n);? ?? ?? ?? ?? ???%误差? ?? ?? ??e=e(:);e1=e1(:);srr=srr(:);srr1=srr1(:);error=10*log10(error);figure(1);subplot(5,1,1);plot(inp);title('系统输出波形对比');xlabel('样本n');ylabel('混响9秒信号波形');subplot(5,1,2);plot(y,'r');xlabel('样本n');ylabel('NLMS输出信号波形');subplot(5,1,3);plot(y1,'g');axis([0 476000 -1 1]);xlabel('样本n');ylabel('LMS输出信号波形');subplot(5,1,4);plot(d);xlabel('样本n');ylabel('原始信号波形');figure;plot(error);figure;plot(e)%sound(inp,sr);%sound(d,sr)%sound(y,sr);??%audiowrite(nlms.wav,y,sr);? ?sound(y1,sr);%audiowrite(lms.wav,y1,sr);?
3 仿真结果

4 参考文献
[1]陶青, and 谢勤岚. "基于RLS算法的脑电信号的去噪." 现代电子技术 29.11(2006):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。
基于Matlab的RLS语音去噪系统设计
自适应信号处理是常用语音去噪技术,Matlab为语音信号消噪提供便利。本文介绍自适应滤波器常用算法,通过实例阐述基于Matlab的RLS自适应语音噪声对消系统的设计与实现,还给出部分代码和仿真结果。
1544

被折叠的 条评论
为什么被折叠?



