你好,
我想知道是否有一種簡單的方法來檢索信號在時間序列數據內保持在特定限制之上的平均時間(以小時或分鐘為單位)。 我在附件中添加了示例數據集。
我添加了一些初步的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 ) )}
)
)
);