//ANeBumCYRg[
clear;
stacksize('max');
//ݒ
s=loadwave(enoise.wav');//Mǂݍ
Fs=16000; //TvOg
L=length(s); //M̒
N=50;  //moHyѓKtB^̎
H=grand(1,N,enorf, 0, 0.1); //n(moH)𗐐Őݒ
C=1; //2oH̉e͖Ƃ
h=zeros(1,N); //KtB^W.l0ƂD
mu=0.1; //LMSASỸXebvETCY
out=[]; //ʂ̋L^pϐ
dsg=[]; //nod(n)L^pϐ
//ANC(\)
for n=N:L
  x=s(n-N+1:n); //ϑM͌ݎnߋn-N+1܂łNTv
  d=H*x'; //nHʉߌ̐Md(n)̍쐬
  y=h*x'; //tʑ(KtB^o)쐬
  e=d+y;  //tʑԂ̌덷vZ
  h=h-mu*x*e; //LMSASYŃtB^WXV
  out=[out, e]; //ʂL^
  dsg=[dsg, d]; //nod(n)̋L^
end
savewave('d.wav',d,Fs); //no͂d.wavɏo
savewave('out.wav',out,Fs); //ʂout.wavɏo
