?? 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 + -