nlms.m

来自「双通道语音增强算法」· M 代码 · 共 31 行

M
31
字号

kk=1000;sample_n=32000;
n1=dataread0('D:\work\DAT23NNR.DAT',sample_n,kk);
n2=dataread0('D:\work\DAT23NNP.DAT',sample_n,kk);
noise=wavread('D:\work\dat\noise.wav');
x=n1/max(n1);y=n2/max(n1);% normalize
sample_n=sample_n;
Eout=zeros(1,sample_n);
yout=zeros(1,sample_n);
N=64;var=0;
%---------LMS--------
W=zeros(1,N);
u=0.001;          %0.00000001;
for i=N+1:sample_n
   yout(i)=W(1:N)*x(i-N+1:i)';
   Eout(i)=y(i)-yout(i);
    var=0.9*var+0.1*y(i)^2;
   U1=u/var;
   W(1:N)=W(1:N)+U1*Eout(i)*x(i-N+1:i);
end
plot(x)
hold on
plot(Eout,'r')

for i=1:240
    input(i)=x(i*128:i*128+256)*x(i*128:i*128+256)';
    output(i)=Eout(i*128:i*128+256)*Eout(i*128:i*128+256)';
    SNR(i)=10*log10(output(i)/input(i));
end
figure;
plot(SNR)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?