5.5 形状发现举例

 

1. 筛选取值在[90,95]之间的曲线段

不需要计算特征指数,也不用投射参数。

参数设置:

特征指数名组合Nm

Nm=[“Value”]

取值范围记Ag

Ag=[[90,95]]

形状长度范围dut

dut=[100,10000]

SPL例程


A

B

1

=file(“1Ddata.csv”).import@tc()

/包含时间序列X的序表

2

[Value]

/Nm

3

[[90,95]]

/Ag

4

[100,10000]

/dut

5

=A2.(~/">="/"number("/$[A3(]/#/$[)(1)]/")"/"&&"/~/"<="/"number("/$[A3(]/#/$[)(2)]/")").concat("&&")

/特征指数筛选条件

6

=A1.pselect@a(eval(A5))

/特征指数索引Id

7

=A6.group@u(~-#)

/索引相邻的是一段Ids

8

=A7.select(~.len()>=A4(1)&&~.len()<=A4(2))

/按长度过滤Ids’

9

=A1.(Value)

/时间序列X

10

=A8.(A9(~))

/指定形状Sp

计算结果示例:

时间序列X

..

横轴是索引,纵轴是X取值

..

图中蓝色段是发现的形状。

2. 上升的曲线段

需要用到升降指数L,计算L前还要拟合主线M,需要参数投射。

参数设置:

观察级别K’

K’=600

特征指数名组合Nm

Nm=[“L”]

取值范围记Ag

Ag=[[0.1,1]]

形状长度范围dut

dut=[100,10000]

SPL例程


A

B

1

=file(“1Ddata.csv”).import@tc()

/包含时间序列X的序表

2

600

/K'

3

[L]

/Nm

4

[[0.1,1]]

/Ag

5

[100,10000]

/dut

6

=A1.(Value)

/时间序列X

7

=2*power(4,lg(A2/15,2)-1)

/平衡系数K

8

=fit_main(A6,A7)

/主线M

9

=A2/40

/指数区间k

10

=Lift(A8,A9)

/升降指数L

11

=[A10.min(),A10.max()]

/特征指数最大最小值

12

=[A11]


13

=A4.((idx=#,~.(arg_throw(~,A12(idx)(2),A12(idx)(1)))))

/参数投射

14

=A1.derive(A10(#):L)

/序表T

15

=A3.(~/">="/"number("/$[A13(]/#/$[)(1)]/")"/"&&"/~/"<="/"number("/$[A13(]/#/$[)(2)]/")").concat("&&")

/特征指数筛选条件

16

=A14.pselect@a(eval(A15))

/特征指数索引Id

17

=A16.group@u(~-#)

/索引相邻的是一段Ids

18

=A17.select(~.len()>=A5(1)&&~.len()<=A5(2))

/按长度过滤Ids'

19

=A18.(A6(~))

/指定形状Sp

计算结果示例:

..

3. 振频很高的曲线段

需要用到振频指数Vf,计算Vf前要拟合主线M和波动曲线Wv,需要参数投射。

参数设置:

观察级别K’

K’=600

特征指数名组合Nm

Nm=[“L”]

取值范围记Ag

Ag=[[0.1,1]]

形状长度范围dut

dut=[100,10000]

SPL例程


A

B

1

=file(“1Ddata.csv”).import@tc()

/包含时间序列X的序表

2

600

/K'

3

[Vf]

/Nm

4

[[0,1]]

/Ag

5

[100,10000]

/dut

6

=A1.(Value)

/时间序列X

7

=2*power(4,lg(A2/15,2)-1)

/平衡系数K

8

=fit_main(A6,A7)

/主线M

9

=A2/40

/指数区间k

10

=A6--A8

/波动曲线Wv

11

=VFre(A10,A9)

/振频指数Vf

12

=[A11.min(),A11.max()]

/特征指数最大最小值

13

=[A12]


14

=A4.((idx=#,~.(arg_throw(~,A13(idx)(2),A13(idx)(1)))))

/参数投射

15

=A1.derive(A11(#):Vf)

/序表T

16

=A3.(~/">="/"number("/$[A14(]/#/$[)(1)]/")"/"&&"/~/"<="/"number("/$[A14(]/#/$[)(2)]/")").concat("&&")

/特征指数筛选条件

17

=A15.pselect@a(eval(A16))

/特征指数索引Id

18

=A17.group@u(~-#)

/索引相邻的是一段Ids

19

=A18.select(~.len()>=A5(1)&&~.len()<=A5(2))

/按长度过滤Ids'

20

=A19.(A6(~))

/指定形状Sp

计算结果示例:

..

4. 振荡发散的曲线段

需要用到振幅升降指数VaL和振频升降指数VfL,计算它们前要拟合主线M、波动曲线Wv、振幅指数Va、振频指数Vf、振幅主线VaM、振频主线VfM,需要参数投射。

参数设置:

观察级别K’

K’=600

特征指数名组合Nm

Nm=[“VaL”, “VfL”]

取值范围记Ag

Ag=[[0,1],[-0.5,1]]

形状长度范围dut

dut=[100,10000]

SPL例程


A

B

1

=file(“1Ddata.csv”).import@tc()

/包含时间序列X的序表

2

600

/K'

3

[VaL, VfL]

/Nm

4

[[0,1],[-0.5,1]]

/Ag

5

[100,10000]

/dut

6

=A1.(Value)

/时间序列X

7

=2*power(4,lg(A2/15,2)-1)

/平衡系数K

8

=fit_main(A6,A7)

/主线M

9

=A2/40

/指数区间k

10

=A6--A8

/波动曲线Wv

11

=Amplitude(A10,A9)

/振幅指数Va

12

=fit_main(A11,A7)

/振幅主线VaM

13

=Lift(A12,A9)

/振幅升降指数VaL

14

=VFre(A10,A9)

/振频指数Vf

15

=fit_main(A14,A7)

/振频主线VfM

16

=Lift(A15,A9)

/振频升降指数VfL

17

=[A13.min(),A13.max()]

/振幅升降指数最大最小值

18

=[A16.min(),A16.max()]

/振频升降指数最大最小值

19

=[A17,A18]

/特征指数最大最小值

20

=A4.((idx=#,~.(arg_throw(~,A19(idx)(2),A19(idx)(1)))))

/参数投射

21

=A1.derive(A13(#):VaL,A16(#):VfL)

/序表T

22

=A3.(~/">="/"number("/$[A20(]/#/$[)(1)]/")"/"&&"/~/"<="/"number("/$[A20(]/#/$[)(2)]/")").concat("&&")

/特征指数筛选条件

23

=A21.pselect@a(eval(A22))

/特征指数索引Id

24

=A23.group@u(~-#)

/索引相邻的是一段Ids

25

=A24.select(~.len()>=A5(1)&&~.len()<=A5(2))

/按长度过滤Ids'

26

=A25.(A6(~))

/指定形状Sp

计算结果示例:

..