📄 nuenet_i.m
字号:
sample_n=60000;
[n1,n2,n3,n4,n5]=dataread5('D:\chen\科研\matlab算法汇总\2006年MATLAB语音增强算法\5ch8k20cm02.dat',sample_n);%噪声;
x=n1/max(abs(n1));xx=n2/max(abs(n1));
Eout=zeros(1,sample_n);
y=zeros(1,sample_n);
N=32;
%---------------
W1=zeros(1,N);G=1*ones(1,sample_n);
W=zeros(1,N);u1=0.05;u2=0.1;Alph=0.8;%u1=0.08;u2=0.08;Alph=0.8; %0<Alph<2
angle_D=0;
fangca=0;
for i=N+1:sample_n
if i<15000
Z(i)=fun(W(1:N)*x(i:-1:i-N+1)'+angle_D);
else
Z(i)=W(1:N)*x(i:-1:i-N+1)';
G(i-1)=1;
end
y(i)=xx(i)-G(i-1)*Z(i);
fangca=fangca+abs(y(i));
if i<15000
G(i)=G(i-1)+u1*y(i)*Z(i);
else
G(i)=G(i-1);%+u1*y(i)*Z(i);
end
deta_D=Alph*G(i)*(1-Z(i)^2)*y(i);
angle_D=angle_D+u2*deta_D;
if i<15000
W(1,1:N)=W(1,1:N)+u2*deta_D*x(i:-1:i-N+1);
end
end
W1=zeros(1,N);G=1*ones(1,sample_n);
for i=N+1:sample_n
Z(i)=fun(W(1:N)*y(i:-1:i-N+1)'+angle_D);
yy(i)=xx(i)-G(i-1)*Z(i);
out(i)=G(i-1)*Z(i);
G(i)=G(i-1)+u1*yy(i)*Z(i);
deta_D=Alph*G(i)*(1-Z(i)^2)*yy(i);
angle_D=angle_D+u2*deta_D;
W(1,1:N)=W(1,1:N)+u2*deta_D*y(i:-1:i-N+1);
end
plot(xx(N+1:sample_n))
hold on
plot(out(N+1:sample_n)*4,'y');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -