清理嘈杂的倒谱结果
我一直在iphone上进行简单的频率检测设置。在存在谐波的情况下,使用FFT结果在频域中进行分析有些不可靠。我希望使用倒谱结果来帮助确定正在播放的基本频率。
我正在使用AudioToolbox框架中的AudioQueues,并使用Accelerate框架进行傅立叶变换。
我的过程正是维基百科的Cepstrum文章中列出的Real Power Cepstrum,具体为:信号→FT→abs()→square→log→FT→abs()→square→power倒谱。
我遇到的问题是倒谱结果非常嘈杂。我必须删除第一个和最后20个值,因为它们与其他值相比是天文数字。即使在“清理”数据之后,仍然存在大量的变化 - 远远超过我对第一张图的预期。有关频域和quefrency域的可视化,请参见下面的图片。
FFT
倒谱
当我在频域中看到如此明显的赢家时,我希望在quefrency域中看到类似的清晰结果。我玩了A440,并希望bin 82左右的音量最高。图表上的第三个峰值代表bin 79,它足够接近。正如我所说,前20个左右的箱子在数量上是如此天文数字以至于不可用,我不得不从数据集中删除它们以便看到任何东西。倒谱数据的另一个奇怪的质量是偶数箱似乎远远高于奇数箱。以下是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
我的问题是如何清理频域,以便我的Cepstrum域结果不那么疯狂。或者,帮助我更好地理解如何解释这些结果,如果它们正如人们在倒谱分析中所期望的那样。我可以发布我正在使用的代码的示例,但它主要使用vDSP调用,我不知道它会有多大帮助。
没有找到相关结果
已邀请:
3 个回复
容淑阔九
屉杆绊
钨蜡唤喉晤