gpt4 book ai didi

c - C的未知模式提取

转载 作者:行者123 更新时间:2023-12-04 11:34:15 24 4
gpt4 key购买 nike

我目前正在开发一种音频处理软件,该软件必须使用过零估计来检测输入信号的频率。当输入完美的正弦波时,估计频率并不难,但是当谈到钢琴时,声波是不同的,其背后的理论也会发生变化。

此时软件会检测每个零并保存它与前一个之间的索引位置(以记录经过了多少个样本)。

以下是一个数组,其中包含以 44.1kHz 采样的 130 Hz 钢琴 C 音符的每个零之间的样本。

44  11  36  65  56  12  37  66  52  13  38  67  51  11  39  68  50  11  47  60  49  11  48  61  47  14  47  66  43  13

任务是确定未知长度的未知模式。但是,这些模式可能有误差范围。例如,

44, 11, 36, 65
56, 12, 37, 66
52, 13, 38, 67

是模式。因此,在处理模式的平均和之后,可以轻松检测到频率。我如何才能检测到这些类型的模式,知道模式原样及其长度未知。

最佳答案

您应该先尝试低通信号。这将减少信号分量,包括导致额外过零的较高泛音。这里的重点是增加基波相对于其他谐波的强度,其他谐波实际上只是产生无关的过零。

关于 EQ 的一些提示:

http://blog.bjornroche.com/2012/08/basic-audio-eqs.html

和 eq,因为它特别适用于音调检测:

http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html

根据您的信号,您可能需要更陡峭的东西,例如更高阶或不同类型的滤波器。

当然,zeroX 音高检测本质上是有限的,低通可能不够。

更新:澄清了低通的目的是强调基本,而不是消除噪音。

关于c - C的未知模式提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15298435/

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