我正在尝试从信号中检测某个形状及其位置的曲线,如下所示:
(链接到图片:http://tinypic.com/view.php?pic=ab5j45&s=6)
我会将信号作为一系列花车来获取。
由于噪音和其他变化,曲线可能不准确,所以我不能使用简单的数字匹配。我想知道OpenCV中是否有可用于此的东西。
请注意,我需要检测不同形状的曲线及其在信号中的位置,但如果我知道要检测一种类型,我可以使用相同的方法来检测其他类型。
此致 彼得
答案 0 :(得分:1)
我会尝试定义一个表示你想要匹配的形状的参数化数学函数。
然后您需要做的就是应用一种技术(例如least squares)来获取与信号曲线最匹配的参数值。
您可能希望将功能与滑动窗口匹配,尤其是在您想要匹配信号中的多个事件时。
答案 1 :(得分:0)
噪声和“其他变化”是高频率,因此您需要使用低通滤波器对信号进行滤波(用于滤波,使用卷积运算)。您的信号似乎具有非常低的频率(可能低于5KHz?)。过滤后,查看您的信号,当您获得所需的曲线形状时,应用数字匹配。
答案 2 :(得分:0)
匹配滤波器在信号中的整数位置具有最高峰值,该信号最佳匹配给定形状(或要匹配的模式的能量)。但除此之外,通常可以使用匹配滤波器输出的相邻值通过计算tau = a-b/(a+b)
(IIRC)来微调位置,其中a =峰值,b是第二最佳值。
如果要匹配的信号具有良好的自相关特性 - 一个高峰值并且在峰值+ -1处接近零(这基本上意味着检测导频信号),这种方法效果特别好。