def CQT_slow(x, fs, bins, fmin, fmax):
K = int(bins*np.ceil(np.log2(fmax/fmin)))
Q = 1/(2**(1/bins)-1)
cqt = np.zeros(K, dtype = np.complex)
for k in range(K):
fk = (2**(k/bins))*fmin
N = int(np.round(Q*fs/fk))
arr = -2*np.pi*1j*Q*np.arange(N)/N
cqt[k] = np.dot(x[:N], np.transpose(hamming(N) * np.exp(arr)))/N
return cqt
评论列表
文章目录