谁知道有色仪器调谐器最强大的算法?
我正在尝试编写乐器调音器。我尝试了以下两种算法:
FFT创建一个welch周期图,然后检测峰值频率
我遇到了以下基本问题:
准确度1:在FFT中,采样率,记录长度和箱尺寸之间的关系是固定的。这意味着我需要记录1-2秒的数据才能获得几美分的准确度。这不是我所谓的实时。
准确度2:自相关效果更好一些。为了获得几美分所需的精度,我必须引入样本的线性插值。
健壮性:如果是吉他,我会看到很多泛音。有些泛音实际上比弦乐产生的主音强。我找不到一种可靠的方法来选择正确的字符串。
尽管如此,任何便宜的电子调谐器都比我的实施更强大。 这些调谐器是如何实现的?
答案 0 :(得分:5)
您也可以插入FFT,并且通常可以使用高次谐波来提高精度。你需要对所产生的乐器的谐波有一点了解,如果你可以假设你的目标距离不到半个八度,那就更容易了,但即使没有这个,基频也要强得多比第一次谐波,并不远低于一次谐波。一个简单的启发式应该让你选择基本频率。
我怀疑自相关方法能够在各种仪器之间有效地发挥作用,但是当你被一个基频偏移时,你应该获得一系列最高的自相似性分数。如果你去两个,你应该再次得到相同的分数(在不同谐波的噪声和微分阻尼内)。
答案 1 :(得分:3)
这是一个非常酷的算法Bitstream Autocorrelation。它不需要太多的CPU周期,而且非常准确。您基本上找到所有零交叉点,然后将其保存为二进制字符串。然后在字符串上使用自动关联。它很快,因为你可以使用XOR而不是浮点乘法。