我目前正在开发一款音频处理软件,必须使用零交叉估计来检测输入信号的频率。当输入为完美的正弦波时,估计频率并不困难,但当讨论钢琴时,声波会有所不同,其背后的理论也会改变。
目前,该软件检测每个零点并保存它与前一个零点之间的索引位置(以记录经过了多少个样本)。
以下是一个数组,其中包含以44.1kHz采样的130 Hz钢琴C音符每个零点之间的样本。
任务是确定未知长度的未知模式。但这些模式可能具有误差范围。例如,
目前,该软件检测每个零点并保存它与前一个零点之间的索引位置(以记录经过了多少个样本)。
以下是一个数组,其中包含以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
模式是指重复出现的特定形式。因此,在处理模式的平均值之后,可以轻松检测到频率。 如果我想检测这些类型的模式,但不知道模式本身及其长度,该怎么办?