def wd(x): N = len(x) x_ = x.conj() WD = [] for n in range(len(x)): WD.append(fft(h.subset(x, n, N) * h.subset(x_, n, N)[::-1])) #WD.append(fft(h.subset(x, n, N, padding='circular')*h.subset(x_, n, N, padding='circular'))) WD = array(WD).transpose() return WD
def wd(x): N = len(x) x_ = x.conj() WD = [] for n in range(len(x)): WD.append(fft(h.subset(x, n, N)*h.subset(x_, n, N)[::-1])) #WD.append(fft(h.subset(x, n, N, padding='circular')*h.subset(x_, n, N, padding='circular'))) WD = array(WD).transpose() return WD
def pwd(x, w): N = len(x) w = h.zeropad(w, N) w_ = w[::-1].conj() X_pwd = [] points = range(0, N) for i in points: x_subset = h.subset(x, i, N) fft_subset = fft(w * w_ * x_subset * x_subset[::-1].conj()) X_pwd.append(fft_subset) X_pwd = array(X_pwd).transpose() return X_pwd
def stft(x, w, L=None): # L is the overlap, see http://cnx.org/content/m10570/latest/ N = len(x) T = len(w) if L is None: L = N X_stft = [] points = range(0, N, N//L) for i in points: x_subset = h.subset(x, i, T) fft_subset = rfft(x_subset * w) X_stft.append(fft_subset) X_stft = array(X_stft).transpose() return X_stft
def stft(x, w, L=None): # L is the overlap, see http://cnx.org/content/m10570/latest/ N = len(x) #T = len(w) if L is None: L = N # Zero pad the window w = h.zeropad(w, N) X_stft = [] points = range(0, N, N // L) for i in points: x_subset = h.subset(x, i, N) fft_subset = fft(x_subset * w) X_stft.append(fft_subset) X_stft = array(X_stft).transpose() return X_stft