你好,
我想知道是否有一种简单的方法来检索信号在时间序列数据内保持在一定限度以上的平均时间(以小时或分钟为单位)。 我在附件中添加了示例数据集。
我添加了一些初步的SD限制,这些限制是根据数据的平均基准计算得出的。

那么,信号返回到2SD,3SD或5SD以下的平均时间是多少?
谢谢。
这是一个非常简单的公式,可以计算持续时间。

然后,我只是运行分布来查看数据的形状并获取均值。

在下面的示例中,我仅创建一个新列来确定在1个SD上花费的持续时间。该公式非常简单,因此使用它来计算2SD等应该可以从第一个公式扩展。
这是进行计算和显示的JSL。可以轻松地以交互方式完成此操作。
Names Default To Here( 1 );
dt = Current Data Table();
dt << New Column( "sd1 Duration",
Numeric,
"Continuous",
Format( "hr:m:s", 13, 0 ),
Input Format( "hr:m:s", 0 ),
Formula(
If( Row() == 1,
start = 0;
sdLimit = Col Mean( :Count ) + Col Std Dev( :Count );
);
theTime = .;
If( :Count <= sdLimit & start > 0,
theTime = :"Date/Time"n - start;
start = 0;
);
If( :Count > sdLimit & start == 0,
start = :"Date/Time"n
);
theTime;
),
Set Selected
);
Distribution(
Continuous Distribution( Column( :sd1 Duration ), Horizontal Layout( 1 ), Vertical( 0 ) ),
SendToReport(
Dispatch(
{"sd1 Duration"},
"1",
ScaleBox,
{Min( -2009.13865683119 ), Max( 143459.453400931 ), Interval( "Hour" ), Inc( 10 ),
Minor Ticks( 1 )}
),
Dispatch(
{"sd1 Duration"},
"Distrib Histogram",
FrameBox,
{DispatchSeg( Hist Seg( 1 ), Bin Span( 2, 0 ) )}
)
)
);