gpt4 book ai didi

iphone - 清理嘈杂的倒谱结果

转载 作者:行者123 更新时间:2023-12-03 18:36:09 26 4
gpt4 key购买 nike

我一直在研究 iPhone 上的简单频率检​​测设置。在存在谐波的情况下,使用 FFT 结果进行频域分析有些不可靠。我希望使用倒谱结果来帮助确定正在播放的基频。

我正在 AudioToolbox 框架中使用 AudioQueues,并使用 Accelerate 框架进行傅里叶变换。

我的过程正是维基百科倒谱文章中列出的实功率倒谱,具体来说:信号→FT→abs()→平方→对数→FT→abs()→平方→功率倒谱。

我遇到的问题是倒谱结果非常嘈杂。我必须删除前 20 个值,因为与其他值相比,它们是天文数字。即使在“清理”数据之后,仍然存在巨大的变化 - 远远超出我对第一张图的预期。请参阅下图,了解频域和频域的可视化。 FFT FFT Cepstrum Cepstrum

当我在频域中看到如此明显的获胜者(如该图所示)时,我希望在频域中看到类似的明显结果。我玩过 A440,预计 bin 82 左右的震级最高。图表中的第三个峰值代表 bin 79,它足够接近。正如我所说,前 20 个左右的 bin 数量如此之大,以至于无法使用,我必须将它们从数据集中删除才能看到任何内容。倒谱数据的另一个奇怪的质量是偶数箱似乎比奇数箱高得多。以下是 77-86 的频率档:

77: 151150.0313
78: 22385.92773
79: 298753.1875
80: 56532.72656
81: 114177.4766
82: 31222.88281
83: 4620.785156
84: 13382.5332
85: 83.668259
86: 1205.023193

我的问题是如何清理频域,以便我的倒谱域结果不那么疯狂。或者,帮助我更好地理解如何解释这些结果(如果它们符合倒谱分析中的预期)。我可以发布我正在使用的代码示例,但它主要使用 vDSP 调用,我不知道这会有多大帮助。

最佳答案

倒谱或倒谱分析是一种用于尝试将具有高泛音内容的信号分成两部分的技术。 DC 附近的部分表示所有泛音或语音共振峰的频谱包络,这可能对说话人或乐器识别有用。倒谱结果中的后续峰值表示激励器频率或多个频率(如果该频率产生足够的谐波泛音内容)。

由于倒谱通常是在没有任何(非矩形)窗口的情况下完成的,因此它甚至可以对干净的泛音序列产生 Sinc 响应,响应的宽度大致与泛音序列的长度或数量成反比的泛音。当然,任何稍微不和谐的泛音(如在实际乐器中发现的)都会使倒谱结果更加困惑。因此,倒谱峰值可能只擅长给出基频的大致位置,这仍然是在进行频率估计时拒绝其他候选频率的有用结果。

“看起来干净”的倒谱可能是非常长的精确谐波泛音序列的结果,具有几乎平坦的频率响应,这可能不是现实生活信号中发现的。

关于iphone - 清理嘈杂的倒谱结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284643/

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