yading@10: function [mY, pY] = 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 or reset buffer yading@10: w = w/sum(w); % normalize analysis window yading@10: nframes=mod(soundlength-hM,H); yading@10: frame=1; yading@10: %fftbuffer=zeros(N,1); yading@10: mY=zeros(N2,nframes); yading@10: pY=zeros(N2,nframes); yading@10: yading@10: while pin