我尝试用几种算法找到基频。
我找到了YIN算法(http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf)
我按照步骤编写代码。
文档中的自相关函数是:
和预期的图表是:
所以我的示例代码是:
def auto(lag, samples):
window_size = 1100
total_index = len(samples)
zero_padded = np.append(samples, np.zeros(window_size))
corr = []
for t in range(total_index):
r = 0
for j in range(t+1, t+window_size):
r += zero_padded[j] * zero_padded[j+lag]
corr.append(r)
plt.plot(corr)
plt.show()
我该如何编辑代码?