gpt4 book ai didi

c - YIN-Frequency-Detection 和泛音(吉他弦)

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:38 25 4
gpt4 key购买 nike

我正在开发一个用于频率检测的 IOS 应用程序,我正在使用非常精确的 YIN 算法:Audacity 女巫,我生成了不同频率的矩形波 - 我的算法的精度约为 0.1 % - 例如生成 82.4 赫兹的音调(E 弦),我真的得到 82.4 赫兹,没有别的。

无论如何,当我弹奏吉他弦时,我经常会听到有时比基音 (F0) 更强(振幅更高)的泛音。因此,我的显示器开始“跳舞”和切换 - 有时,甚至会发生(当音调消失时)我的算法停止在泛音的频率(例如 A 而不是 E) - 所以用户必须再次弹奏弦oder 以查看是否存在他想要的音调(频率)。

我知道这个现象与我的算法无关,因为它只是一个“硬件”问题(我指的是吉他只会产生泛音)。

一旦检测到关键频率(例如 E 弦的 82.4 Hz +/- 公差),我试图平滑(频率检测的)结果或“捕捉”到固定频率,但均徒劳无功.无论如何,我的算法也经常出现错误的频率。

我在问自己便宜的吉他调音器(在吉他商店 10 美元)的工作原理,因为它们的频率检测也可靠且稳定。

我不想改变算法,但我想到了两种可能的解决方案:

  1. 信号的预处理(可能是汉宁窗、低通或带通滤波)和/或
  2. 信号的后处理(某种频率平滑)。

有人知道如何克服“不稳定”的结果吗?

最佳答案

我在我的免费彩色应用程序 iTransposer 中使用了自相关,并结合了汉宁窗,因此这可能对您有所帮助。我最初并不是在寻找准确性,因为我想在五线谱而不是仪表上显示音符。然而,我的一个 friend 在他的工作中用信号发生器将它测试到 0.1 Hz,并且在 383 Hz 以上的简单信号(如正弦波)上有问题。我用各种铜管乐器、吉他和 Garageband 乐器尝试过它似乎可以调整。基本上我实现了这个 http://www.ucl.ac.uk/~ucjt465/tutorials/praatpitch.html使用 VDSP 并更新了 Kevin P Murphy 提供的示例项目 https://github.com/kevmdev/PitchDetectorExample

关于c - YIN-Frequency-Detection 和泛音(吉他弦),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29646661/

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