📄 nlms.m
字号:
clear all
FS=8000;
order=10;
N= 60800;
speech=wavread('signal_noise88_1.wav',N);
voice=wavread('signal_1.wav',N);
noise=wavread('noise_low_1.wav',N);
%speech=wavread('zishiying2.wav',N);
%voice=wavread('signal_1.wav',N);
%noise=wavread('noise_low_1.wav',N);
L=length(speech);
y=zeros(1,L);
mu=0.2;
leakage=0.1;
bias=0; %0.1;
%for N=1:10;
step=20;
w=zeros(step,1);
WW=0;
num=L/step;
for i=2:L/step
in=speech((i-1)*step+1:i*step);
ref=noise((i-1)*step+1:i*step);
% ref=noise((i-2)*step+1:(i-1)*step);
err=in-w.*ref;
% w=w+mu*err.*in;
w=(1-mu*leakage)*w+mu*err.*(ref)/(bias+ref'*ref);
y((i-1)*step+1:i*step)=err;
end
% for i=order:L
% buffered=noise(i:-1:i-order+1);
% y(i)=w*buffered;
% e(i)=speech(i)-y(i);
% w=w+mu*e(i)*
% w=(1-mu*leakage)*w+mu*e(i)*(buffered.')/(bias+buffered'*buffered);
% % WW(i-9,1:10)=w;
%
%
% %end
% %speach=e';
% end
%%建立2个图象
figure(1)
subplot(3,1,1);plot(voice);title('纯净语音信号');
subplot(3,1,2);plot(speech);title('带噪语音信号');
subplot(3,1,3);;plot(y);title('过滤后的信号')
figure(2)
subplot(2,1,1);plot(noise);title('噪声信号');
subplot(2,1,2);plot(y);title('输出噪声信号');
%播放语音
pause(5)
sound(speech)
pause(8)
sound(y)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -