function v=ISTFT_overlapadd(B,NFFT,fs,w,noverlap); % La suma de las ventanas desplazadas debe ser 1 col=length(B(1,:)); % Numero de columnas de B fil=length(B(:,1)); % Numero de filas de B N=length(w); % Hacemos la extension compleja conjugada en R for k=1:col R(1:NFFT,k)=0; R(1:fil,k)=B(:,k); aux=conj(flipud(B(:,k))); R((NFFT-fil+2):NFFT,k)=aux(1:fil-1); end r=ifft(R,NFFT); clear R; % Ahora reconstruimos paso=length(w)-noverlap; %v=zeros((col-1)*paso+NFFT); ind=1; v=zeros(NFFT,1); ventana=zeros(N,1); for k=1:col v(ind:ind+NFFT-1,1)=v(ind:ind+NFFT-1,1)+r(:,k); ventana(ind:ind+N-1,1)=ventana(ind:ind+N-1,1)+w; ind=ind+paso; L=length(v); v(L+1:L+paso)=zeros(paso,1); ventana(L+1:L+paso)=zeros(paso,1); %v(ind+NFFT:ind+NFFT-1+paso,1)=zeros(paso+1,1); end v=v.';