【问题标题】:Peak finding algorithm - Dynamic thresholding or alternative methods峰值查找算法 - 动态阈值或替代方法
【发布时间】:2014-01-03 19:34:00
【问题描述】:

我正在寻求一些建议。抱歉,或者您觉得属于其他网站。

我的任务是识别信号中的特定社交呼叫(来自蝙蝠),并且我一直在研究应该使用哪些类型的方法来隔离不同的呼叫。所以,首先,这就是整个信号的样子:

这个信号非常大,因此信号被分成1024*100的块(每个大约10MB左右),这里是一个块的样本:

此信号更理想,并且可以从视觉上轻松识别峰值。以下是一些与此相关的问题:

1) 计算短期能量是否是确定峰值的适当方法?

2) 有没有动态分配阈值的方法?例如。为这个块创建的算法,应该潜在地适用于信号中的所有其他块以及输入的任何其他信号吗?

3) 将此信号转换为频域(使用 STFT 方法)会有什么不同吗?

这是使用 FFT 算法的块:

预期输出:

任何建议将不胜感激

【问题讨论】:

  • 我只是好奇:难道不能用 101 个统计数据过滤这些信号吗……
  • @achingfingers 我不知道这个概念?如果您指的是编程语言,我正在使用 C++/Python 来解决这个问题。为什么使用 101 统计数据会有所作为,只是出于好奇?
  • 我不想冒犯。而且我不是很喜欢你在做什么......但对我来说,上面的模式看起来可以很容易地用标准偏差阈值过滤......当然用你选择的语言实现。
  • @achingfingers 哦,我很抱歉,如果我的反应好像我在冒犯一样,我真的没有(只是有压力!!)。谢谢你的回复:)我会查一下标准差阈值,看看我在哪里,我只是不知道这个概念而已!我会回帖的!
  • @achingfingers 抱歉,您有任何可能对标准差阈值有用的论文或教程吗?会有所帮助:)

标签: algorithm audio signal-processing threshold


【解决方案1】:
  1. 是的。您必须尝试找出合适的间隔长度。

  2. 是的。一种方法是从较大块的平均能量开始,并将阈值设置为该值的 10 倍。

  3. 视情况而定。你想知道频率吗?它可以用来区分蝙蝠噪声和不相关类型的背景噪声。如果没有很多其他噪音并且您对频率不感兴趣,请不要打扰。如果你只是想找到峰,那也无济于事。

【讨论】:

    【解决方案2】:

    可能有关于峰值检测算法的论文。但是如果你没有时间,你可以尝试沿着时间窗口移动,并使用它的能量来计算一个阈值。

    也许您还可以查看峰密度(如果沿时间存在或多或少相同数量的峰),以了解您应该期望在给定窗口中找到多少峰。 (好吧,如果没有静默,但通常很容易使用能量区分静默和噪音)。

    我怀疑 FFT 会有所帮助。我们可以看到没有明显的频率,任何类型的过滤都会污染峰值。

    【讨论】:

      【解决方案3】:

      我会研究频率,检查时频分析。也许小波或 wigner 变换或简单的声波图会有所帮助。

      时间-频率表示通常同时为您提供时间、能量和频率。好东西。

      【讨论】:

        猜你喜欢
        • 2017-08-14
        • 2020-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-06
        • 2013-05-29
        • 1970-01-01
        • 2021-11-12
        相关资源
        最近更新 更多