📄 nlms.m
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -