如何过滤掉方形二进制信号中的无效模式?

问题描述 投票:0回答:2

我正在使用一个数据集,其中包含类似于下图中所示的二进制信号。目标是开发一种数据清理功能,以消除信号中不完整的方形图案,如阴影框所示。 (请注意,该插图主要用于视觉清晰度;原始信号在每个方块的持续时间和它们之间的时间间隙方面表现出不规则性。)数据集中的无效周期本质上是由于缺失点造成的。因此,无效周期将是那些明显偏离正方形的周期。

具有无效周期的二进制信号示例:

Example of binary signal with invalid cycles

此数据处理任务的一个挑战是数据集的庞大规模,可能有数千万行。因此,我一直在研究信号处理库和矢量化方法来避免迭代循环的需要。我探索的一种方法是使用 NumPy 计算信号的梯度,以识别有效信号的起点和终点,即形成完美正方形的信号。但是,我在使用此信息从数据帧中过滤掉与无效信号相对应的行时遇到了困难。另一种可能性可能是使用某种卷积,但我在这种类型的分析方面没有太多经验。

我非常感谢社区提供有关如何有效解决此问题的任何见解、想法或技巧。谢谢!

python-3.x numpy scipy bigdata signal-processing
2个回答
0
投票

您可以查看连续点之间的斜率。


0
投票

一种可能的方法是使用基于小波变换的滤波。在这种情况下,方便的小波似乎是 Haar 小波 家族之一。在 Python 中,PyWavelets 包可用于此目的。 然而,选择最合适的工具需要有关信号的更多详细信息,最好是样本信号的形式。

© www.soinside.com 2019 - 2024. All rights reserved.