如何使用 MATLAB 识别信号的开始和结束

信息处理 信号分析 连续信号 信号检测
2022-02-21 02:48:50

如图所示,我有多个信号。我想自动检测最早检测信号的时间(S1-B3-B(橙色)中的大约 0.7e4)和最后检测到的信号(S2-B3-B(紫色)中的大约 4.2e4)。

在此处输入图像描述

有什么聪明的方法吗?我对信号处理很陌生。

2个回答

检测理论有很多来源。我认为有两种相对简单的方法可以解决您的问题。从示例图中,我可以清楚地看到一个明显的信号。如果所需的检测信号具有相同的趋势/形状,那么好的检测技术将是匹配滤波的方向。

(1) 匹配滤波基本上是将测试信号与测量信号相关联。如果信号彼此非常相似,则匹配过滤将返回一个高值,您可以在该值上检测到一个阈值。信号检测的一个很好的起点是这个讲座幻灯片。

(2) 但是,这可能已经有点太难了,因为您提到是信号处理的新手。当我查看信号时,另一种方法是在信号不存在时看到噪声非常低。我不确定当信号不存在时示例信号是否具有这些不同的幅度(黄色在~15,紫色在~-730)。但是如果知道这个幅度,我们可以简单地检查信号何时不同于这个稳定值。或者我们可以通过计算梯度(或简单的样本之间的差异)来计算信号变化的程度。如果梯度很高,则信号将以更高的速率增加。

也许从计算样本之间的差异开始,即:s[i]s[i1]对于每个样本。我强烈鼓励在开始信号处理时只使用信号。在样本上尝试不同的功能。