gpt4 book ai didi

algorithm - 调谐器的自相关启发式

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:38:48 25 4
gpt4 key购买 nike

我已经针对一些速率为 44100.0、 block 大小为 2048 的音频样本实现了一个简单的自相关例程。

我遵循的一般公式如下所示:

r[k] = a[k] * b[k] = ∑ a[n] • b[n + k]

我已经在暴力嵌套循环中实现了它,如下所示:

for k = 0 to N-1 do 
for n = 0 to N-1 do
if (n+k) < N
then r[k] := r[k] + a(n)a(n+k)
else
break;
end for n;
end for k;

我在 r 中寻找最大幅度并确定距离它有多少个样本并计算频率。

为了帮助缓和调谐器的结果,我使用了一个循环缓冲区并每次都返回中值。

蛮力计算有点慢 - 有没有一种众所周知的更快的方法?

有时,调谐器并没有达到所需的准确度。我可以在这里应用什么类型的启发式方法来帮助优化结果?

有时 OCTAVE 不正确 - 有没有办法更准确地磨练正确的 Octave 音阶?

最佳答案

进行自相关的有效方法是使用 FFT:

  • 对时域信号进行 FFT
  • 将复杂的 FFT 输出转换为幅度和零相位(即功率谱)
  • 采用逆 FFT

这是有效的,因为时域中的自相关等同于频域中的功率谱。

话虽如此,简单的自相关并不是实现(准确)的好方法 pitch detection一般来说,因此您可能需要重新考虑您的整个方法。

关于algorithm - 调谐器的自相关启发式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7489531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com