【问题标题】:Detecting a rising edge in a digitized microphone signal检测数字化麦克风信号中的上升沿
【发布时间】:2015-02-04 01:43:05
【问题描述】:

我正在研究一种算法来检测图像中显示的模式。黑色是信号,红色是我要检测的模式。我尝试计算斜率(带公差)并检测模式是否匹配。有没有其他算法/方法来检测这些形状? 非常感谢任何输入!

目前为止尝试过的算法。

PEAK - 我必须在此之前生成触发器的最大信号值。

MIN_THRESHOLD - 算法开始计算斜率的信号的最小值。

for all the samples 

    if(signal(i) <= PEAK and signal(i) >= MIN_THRESHOLD)

        current_slope_array(k) = (signal(i) - signal(i-1) ) / sampling_time
        k++; i++;
    end if

loop

slope_average = average(current_slope_array)

【问题讨论】:

  • 什么图片?您是在检测图像还是生成图像的数据?如果它的图像,opencv 是一个很好的地方查看
  • 它不是图像。它是一个信号,就像来自麦克风的语音样本。当我看到这种上升沿时,我希望生成一个触发器。到目前为止,斜率法还没有很好地工作..
  • 您能否扩展您的问题以包括数据的形式,以及您如何尝试计算斜率
  • 你计算平均斜率的方法不是很稳定,通常会从更远的点计算平均斜率。无论如何,我认为有更好的方法。但因此,我们需要更多地了解您的问题。这是一个实时问题吗,信号按价值计算,您必须立即做出反应?还是您提前知道整个信号并只想找到峰值?
  • @coproc 这是实时分析。未离线。

标签: algorithm signals signal-processing


【解决方案1】:

您没有充分说明您的问题(信号特征、您想要拥有的部件的特征),无法给出明确的答案。

所以我只是提出一个constant fraction discriminator,这是检测上升沿的众多策略之一。

简而言之:将信号一分为二,反相并延迟上升沿宽度,然后将它们加在一起并注意过零。

【讨论】:

    【解决方案2】:

    这是非常经典的信号处理。我认为阅读信号处理的基础知识会有所帮助,所以我会将您链接到 GNU Radio 的page of suggested literature

    通常,麦克风信号将声音数字化;声音通常包含在给定的频率处发生的谐波振荡;坡度的长度与您要寻找的频率直接相关。设计带通滤波器将消除与您正在寻找的斜率无关的信号(尤其是大量噪声!)。对您的信号进行强烈过滤后,您可以对其进行抽取,这将(通过所谓的混叠)将您的带通区域移动到基带(即接近 0 Hz)。

    然后您可以简单地估计信号的相位

    很抱歉,我不能说得那么简单,但这是信号处理,它是一门工程学科,可让您为很多事情构建最佳估算器,但您必须能够描述您所需要的事情想用数学方法检测。但是,如果没有信号处理的基础知识,您将缺乏从数学上理解您正在尝试做什么的能力,因此我只能为您提供关键词(我在上面突出显示),应该引导您完成学习过程。

    【讨论】:

    • 我还不清楚这个问题。例如,上升沿不必周期性出现,然后频谱方法可能会失败。
    • @Trilarion:这对于来自声卡的信号来说是不可能的,因为它们是低通滤波的,即。每次上涨必然会下跌。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-15
    • 2015-11-26
    • 1970-01-01
    • 2011-09-05
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多