- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个用于频率检测的 IOS 应用程序,我正在使用非常精确的 YIN 算法:Audacity 女巫,我生成了不同频率的矩形波 - 我的算法的精度约为 0.1 % - 例如生成 82.4 赫兹的音调(E 弦),我真的得到 82.4 赫兹,没有别的。
无论如何,当我弹奏吉他弦时,我经常会听到有时比基音 (F0) 更强(振幅更高)的泛音。因此,我的显示器开始“跳舞”和切换 - 有时,甚至会发生(当音调消失时)我的算法停止在泛音的频率(例如 A 而不是 E) - 所以用户必须再次弹奏弦oder 以查看是否存在他想要的音调(频率)。
我知道这个现象与我的算法无关,因为它只是一个“硬件”问题(我指的是吉他只会产生泛音)。
一旦检测到关键频率(例如 E 弦的 82.4 Hz +/- 公差),我试图平滑(频率检测的)结果或“捕捉”到固定频率,但均徒劳无功.无论如何,我的算法也经常出现错误的频率。
我在问自己便宜的吉他调音器(在吉他商店 10 美元)的工作原理,因为它们的频率检测也可靠且稳定。
我不想改变算法,但我想到了两种可能的解决方案:
有人知道如何克服“不稳定”的结果吗?
最佳答案
我在我的免费彩色应用程序 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/
at 在 clojure 中实际上做了什么?我在互联网上看到这个例子,制作了一个泛音循环,但无法理解 at 的含义: (defn looper [nome sound] (let [beat (n
Fs =44100; toneFreq1 = 8000; nSeconds = 25; f1 = sin(linspace(0, nSeconds*toneFreq1*2*pi, round(
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我是一名优秀的程序员,十分优秀!