在频谱图中检测具有某些特征的曲线

信息处理 fft 信号分析 信号检测 频谱图
2022-02-03 21:43:42

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

信号频谱图

在这个频谱图中,我正在寻找一条曲线(又名音高轮廓):

  • 从零开始
  • 增加到未知值
  • 保持在该未知值至少一分钟
  • 减少回零

由于感兴趣的曲线比其他潜在曲线更亮,因此在上面的频谱图中对这种曲线检测进行编程相当容易。但是,这种亮度差异不会存在于嘈杂的数据集中。

如何使用我所知道的关于曲线的约束(从零开始,增加,...)可靠地找到曲线而不依赖亮度?

1个回答

这个答案一开始可能听起来很难,但一旦理解它就很直观,而且肯定能很好地处理噪音。

对此类约束建模的一种聪明方法是通过 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