function [snr eL ek hatA]=filter_estimation(M,N,l,ty,pena,K,rt60) disp({'M=' M 'N= ' N 'penalty =' pena}) Tys={'wn','mls','voix','dwn','rdn'}; Ty=char(Tys(ty)); load sources Ls=2000*(1:30); %K=16000; Lsrc=Ls(l); Ms=M; %if HP==1 % h=@highpass; %else h=@(a) a; %end switch Ty case 'wn' for mm=Ms fichv=[ 'crop' num2str(2*(mm-2)+3) '_L' num2str(l) '_' num2str(N) 'sources']; disp({'loading ' fichv}) load(fichv); X(mm,:)=h(wn(1:Lsrc+K-1)); X(mm,Lsrc+1:end)=0; end case 'mls' % load pilewn7230 m for mm=Ms fichv=[ 'crop' num2str(mm) '_L' num2str(l) '_' num2str(N) 'sources']; disp({'loading ' fichv}) load(fichv); X(mm,:)=h(mls(1:Lsrc+K-1)); X(mm,Lsrc+1:end)=0; end case 'voix' for mm=Ms fichv=[ 'crop' num2str(mm) '_L' num2str(l) '_' num2str(N) 'sources']; disp({'loading ' fichv}) load(fichv); X(mm,:)=h(voix(1:Lsrc+K-1)); X(mm,Lsrc+1:end)=0; end case 'dwn' for mm=Ms fichv=[ 'crop' num2str(mm) '_L' num2str(l) '_' num2str(N) 'sources'] disp({'loading ' fichv}) load(fichv); X(mm,:)=h(dwn(1:Lsrc+K-1)); X(mm,Lsrc+1:end)=0; end case 'rdn' for mm=Ms fichv=[ 'crop' num2str(mm) '_L' num2str(l) '_' num2str(N) 'sources'] disp({'loading ' fichv}) load(fichv); X(mm,:)=h(rdn(1:Lsrc+K-1)); X(mm,Lsrc+1:end)=0; end end LpKm1=numel(wn); switch Ty case 'wn' for n=1:N Sinf(n,:)=Pile(n,1:Lsrc); end case 'mls' % load pilewn m for n=1:N Sinf(n,:)=m(n,1:Lsrc); end case 'voix' for n=1:N vx=wavread(['voix_normd_' num2str(n) '.wav']); Sinf(n,:)=vx(1:Lsrc); end case 'dwn' for n=1:N load pilesrc Sinf(n,:)=pilesrc(n,2:Lsrc+1); end case 'rdn' for n=1:N Sinf(n,:)=PileU(n,1:Lsrc); end end for n=1:N for m=Ms load(['Aind_M' num2str(m) '_N' num2str(n)]) Aind(m,n,:)=highpass(Al); AindL(m,n,:)=highpass(Al(1:K)); end end Xsim=creation_mel_conv(Aind,Sinf); %[e hatA ek]=0; [e hatA ek]=A_welasso(rt60,AindL,X,Sinf,pena); %e=SRRAmn(Aind,hatA); %e=SRRAmn(AindL,hatA); eL=0; end