我有一个通过将信号分解成块并获取这些块的 FFT 来构建的频谱图。一个示例频谱图是:

在这个频谱图中,我正在寻找一条曲线(又名音高轮廓):
- 从零开始
- 增加到未知值
- 保持在该未知值至少一分钟
- 减少回零
由于感兴趣的曲线比其他潜在曲线更亮,因此在上面的频谱图中对这种曲线检测进行编程相当容易。但是,这种亮度差异不会存在于嘈杂的数据集中。
如何使用我所知道的关于曲线的约束(从零开始,增加,...)可靠地找到曲线而不依赖亮度?
我有一个通过将信号分解成块并获取这些块的 FFT 来构建的频谱图。一个示例频谱图是:

在这个频谱图中,我正在寻找一条曲线(又名音高轮廓):
由于感兴趣的曲线比其他潜在曲线更亮,因此在上面的频谱图中对这种曲线检测进行编程相当容易。但是,这种亮度差异不会存在于嘈杂的数据集中。
如何使用我所知道的关于曲线的约束(从零开始,增加,...)可靠地找到曲线而不依赖亮度?
这个答案一开始可能听起来很难,但一旦理解它就很直观,而且肯定能很好地处理噪音。
对此类约束建模的一种聪明方法是通过 HMM 或通过 MRF。设计是相似的,但对于 HMM,我会给你一些提示:
以这样的方式准备您的转换矩阵,维特比解码将为您提供结果曲线。例如,第一个状态将是 0,具有一定的方差,因为它从那里开始。然后只允许在给定的容差内增加。该容差将从高斯先验获得。比如说,线的斜率(因此高斯的方差)将在 1 到 5 之间。最后,您应该只允许减少或保持不变。同样,对于所有其他约束,您都可以这样做。这里的余量意味着从恒定状态过渡到增加状态的概率为 0。否则你有一个概率(可能是由于任何分布、先验等)
您还可以使用 Hierarchical HMM 来使用此类跟踪参数来详细说明您的模型:
http://en.wikipedia.org/wiki/Hierarchical_hidden_Markov_model http://www.cs.princeton.edu/courses/archive/spr06/cos598C/papers/FineSingerTishby1998.pdf