yading@10: function y = stft(x, w, N, H) yading@10: % Analysis/synthesis of a sound using the short-time fourier transform yading@10: % x: input sound, w: analysis window (odd size), N: FFT size, H: hop size yading@10: % y: output sound yading@10: M = length(w); % analysis window size yading@10: N2 = N/2+1; % size of positive spectrum yading@10: soundlength = length(x); % length of input sound array yading@10: hM = (M-1)/2; % half analysis window size yading@10: pin = 1+hM; % initialize sound pointer in middle of analysis window yading@10: pend = soundlength-hM; % last sample to start a frame yading@10: fftbuffer = zeros(N,1); % initialize buffer for FFT yading@10: yw = zeros(M,1); % initialize output sound frame yading@10: y = zeros(soundlength,1); % initialize output array yading@10: w = w/sum(w); % normalize analysis window yading@10: while pin