Algorithm 检测数字化麦克风信号中的上升沿

Algorithm 检测数字化麦克风信号中的上升沿,algorithm,signals,signal-processing,Algorithm,Signals,Signal Processing,我正在研究一种算法来检测图像中显示的图案。黑色是信号,红色是我想要检测的模式。我试着计算斜率(带公差)并检测模式是否匹配。是否有其他算法/方法检测此类形状? 非常感谢您的任何意见 到目前为止,算法已经尝试过了 峰值-必须在其之前生成触发器的最大信号值 MIN_THRESHOLD-算法开始计算斜率的信号的最低值 for all the samples if(signal(i) <= PEAK and signal(i) >= MIN_THRESHOLD)

我正在研究一种算法来检测图像中显示的图案。黑色是信号,红色是我想要检测的模式。我试着计算斜率(带公差)并检测模式是否匹配。是否有其他算法/方法检测此类形状? 非常感谢您的任何意见

到目前为止,算法已经尝试过了

峰值-必须在其之前生成触发器的最大信号值

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)
用于所有示例
if(信号(i)=最小阈值)
电流斜率阵列(k)=(信号(i)-信号(i-1))/采样时间
k++;i++;
如果结束
环
斜率平均值=平均值(当前斜率数组)

这是非常经典的信号处理。我想读一点信号处理的基础知识在这里会有所帮助,所以我将把你们链接到GNU电台

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

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


很抱歉,我不能说得那么简单,但这是信号处理,这是一门工程学科,可以让你为很多事情建立最优估计,但你必须能够用数学方法描述你想要检测的事情。但是,如果没有信号处理的基础知识,你在数学上理解你要做的事情的能力就会缺乏,因此我只能给你一些关键词(我在上面强调过),这些关键词应该引导你完成学习过程。

你没有充分说明你的问题(信号的特征,您想要拥有的部件的特征)以获得清晰的答案

因此,我提出了一种新的方法,这是检测上升沿的众多策略之一


简言之:将信号一分为二,反转一个并延迟上升沿宽度,然后将它们加在一起并观察零交叉。

什么图像?您是否在图像上检测到图像或生成图像的数据?如果是图像,opencv是一个很好的查找位置它不是图像。它是一个信号,就像来自麦克风的语音样本。..I当我看到这种上升沿时,我正在寻找一个触发点。到目前为止,斜率法还没有很好地发挥作用。你能把你的问题扩展到包括数据的形式,以及你如何计算斜率吗?你计算平均斜率的方法不是很稳定,通常是从更远处计算平均斜率蚂蚁指出。无论如何,我认为有更好的方法。但是我们需要更多地了解你的问题。这是一个实时问题,信号一个值一个值地出现,你必须立即做出反应吗?还是你提前知道整个信号,只想找到峰值?@coproc这是实时分析。不是离线。问题是em对我来说还不清楚。例如,上升沿不必周期性地出现,然后频谱方法可能会失败。@Trilarion:对于来自声卡的信号来说,这是不可能的,因为这些信号都是低通滤波的,即,每上升一次都必须下降。新链接:@Seth谢谢!编辑该链接。