我有来自传感器的实时信号。一旦信号高于阈值,我需要逻辑来实现屏蔽时间。如下所示:
此处信号(蓝色)越过阈值。而且我需要屏蔽一段时间(屏蔽时间)对阈值的任何检查。(这样我只能检测到正脉冲,同样,我还有另一个检查负脉冲)
请看下面的代码:
static QTime time(QTime::currentTime());
// calculate two new data points:
double key = time.elapsed()/1000.0; // time elapsed since start of demo, in seconds
static double lastKey;
if(a_vertical> onThreshold && key-lastKey >0.2) // is this check correct for masking time?
{
ui->rdo_btn_vertical->show();
ui->rdo_btn_vertical->setStyleSheet(StyleSheetOn1);
lastKey = key;
}
else
{
ui->rdo_btn_vertical->setStyleSheet(StyleSheetOff1);
}
我不确定 IF 语句中的表达式是否是实现屏蔽时间的正确方法。欢迎任何想法/建议。
编辑
屏蔽时间:它是为任何阈值检查屏蔽的时间段。这是为了区分正负脉冲。见下文,在正脉冲期间有一个负向,但不应将其检测为“负脉冲”。这就是我实施屏蔽时间的原因。