1

我正在尝试从信号中检测某种形状的曲线及其位置,如下所示:

(图片链接:http ://tinypic.com/view.php?pic=ab5j45&s=6 )

我会将信号作为浮点数组获取。

由于噪声和其他变化,曲线可能不准确,所以我不能使用简单的数字匹配。我想知道 OpenCV 中是否有可以用于此目的的东西。

请注意,我需要检测不同形状的曲线及其在信号中的位置,但如果我知道检测一种类型,我可以使用相同的方法检测其他类型。

问候,彼得

4

3 回答 3

1

我会尝试定义一个参数数学函数来表示您想要匹配的形状。

然后,您需要做的就是应用一种技术(例如最小二乘法)来获得与信号曲线最匹配的参数值。

您可能希望将您的函数与滑动窗口进行匹配,尤其是当您想匹配信号中的多个事件时。

于 2012-11-09T15:12:00.283 回答
0

噪声和“其他变化”是高频,因此您需要使用低通滤波器对信号进行滤波(对于滤波,使用卷积操作)。看来您的信号频率非常低(可能低于 5KHz?)。过滤后,查看您的信号,当您获得所需的曲线形状时,应用数值匹配。

于 2012-11-09T15:05:56.663 回答
0

匹配滤波器在与给定形状(或要匹配的模式的能量)最匹配的信号的整数位置处具有最高峰。但除此之外,匹配滤波器输出的相邻值通常可用于通过计算 (IIRC) 来微调位置tau = a-b/(a+b),其中 a=峰值,b 是次优值。

如果要匹配的信号具有良好的自相关特性——一个高峰值并且在距峰值 +-1 处接近零(基本上意味着检测导频信号),则此方法尤其有效。

于 2012-11-14T15:31:39.537 回答