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

pgvzfuti  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(74)

我正在处理一个包含二进制信号的数据集,该信号类似于下图所示。我们的目标是开发一个数据清理功能,以消除信号中不完整的正方形模式,如阴影框所示。(注意,插图主要是为了视觉清晰;原始信号在每个正方形的持续时间和它们之间的时间间隙方面表现出不规则性。)数据集中的无效循环本质上是由于缺失点。因此,无效循环将是显著偏离方形形状的循环。
具有无效周期的二进制信号示例:

此数据处理任务中的一个挑战是数据集的庞大规模,可能有数千万行。因此,我一直在研究信号处理库和矢量化方法,以避免迭代循环的需要。我探索的一种方法涉及使用NumPy计算信号的梯度,以识别有效信号的起点和终点,这些信号形成完美的正方形。然而,在使用这些信息从我的嵌套框架中过滤掉与无效信号对应的行时,我遇到了困难。另一种可能性是使用某种卷积,但我在这类分析方面没有太多经验。
我将非常感谢社区对如何有效解决这个问题的任何见解,想法或提示。谢谢你,谢谢

ghg1uchk

ghg1uchk1#

您可以查看连续点之间的坡度。

ecfsfe2w

ecfsfe2w2#

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

相关问题