如何过滤掉数字(开/关)信号的常规滴答声?

信息处理 过滤器 数字的
2022-01-28 17:04:27

我有一个定期采样的数字开/关信号。产生信号的传感器存在问题,当传感器应处于关闭状态时,有时会导致定期开/关滴答声。即有时当读数应该为零时,有一个方波代替(但有一个不相等的标记:空格)。

我将如何设计一个滤波器来去除这个方波(即,如果发生这种常规滴答声,则输出零,否则输出输入值)?

滴答声的频率约为 16 分钟,传感器观察到的事件可能会持续一分钟到几个小时不等。我希望这意味着不可能完美地恢复正确的数据,但我想尽可能接近。

我认为某种陷波滤波器是我需要的,但到目前为止我发现的一切似乎都是关于过滤模拟信号。

(我对信号处理课程的记忆有点不完整,希望我在这里使用了正确的术语)。

编辑:

感谢您迄今为止的评论。我附上了一张图片,说明了我正在努力实现的目标。此外,我为常规滴答写了错误的频率 - 实际上是 16 分钟,而不是 8 分钟,但我怀疑这会影响整体方法。

@Jan - 是的,理想情况下我只会有一个更好的传感器,但这是我现在拥有的数据,我目前没有切换到不同传感器的选项。

编辑2:

数据处理是离线进行的,所以非因果解决方案很好。

样本数据

1个回答

您是离线还是实时处理这些数据?如果您正在进行离线处理,或者可以忍受明显的延迟,那么您可以应用一个简单的过滤器,如下所示:

  • 从每个输入样本中,检查传感器是否报告“开启”。

  • 如果是这样,请在每个方向搜索“几个”16 分钟的周期,并查看传感器是否也报告“开启”。这是一个非因果操作;如果您正在实时处理数据,您可以通过首先对信号应用足够大的延迟来双向搜索。

  • 如果在任一方向的杂散周期中有“足够的”连续“开启”样本,则抑制传感器的“开启”指示。

这应该会抑制不需要的“开启”指示方波,但正如评论中所指出的,它也可能会抑制有效的“开启”报告。考虑到系统的整体行为,您必须根据合理的参数自行选择“少数”和“足够”参数。基本上,您想要设置“很少”,以便您查看足够多的虚假时段来做出正确的决定。您需要将“足够”设置为足够小以抑制虚假周期的短脉冲,但又要足够大以避免抑制太多恰好相隔 16 分钟的有效“开启”指示。