Another approach is to use compound median filtering which returns a blocky function. Then threshold the jumps between blocks. No assumptions about the number or size of blocks is made.

Function to plot the input series as discrete jumps.

```
BlockPlot[s_] :=
Partition[
Flatten[{s[[1]],
Table[{{s[[i, 1]], s[[i - 1, 2]]}, s[[i]]}, {i, 2, Length[s]}]}],
2]
```

Median filter until the signal does not change, then repeat for successively wider window radii r.

```
MedianFilterRoot[x_, r_] := FixedPoint[Round[MedianFilter[#, r]]&, x]
CompoundMedianFilter[x_?VectorQ, r_] := Fold[MedianFilterRoot[#1,#2]&,x,Range[r]]
CompoundMedianFilter[x_?MatrixQ, r_] :=
Transpose[{x[[All,1]], Fold[MedianFilterRoot[#1, #2]&,x[[All,2]],Range[r]]}]
```

Find locations where the signal jumps more than the threshold t.

```
DifferenceThreshold[y_List, t_] :=
Pick[Most[y], UnitStep[Abs[Differences[y[[All, 2]]]] - t], 1]
```

Subsample the imported data v down to w, for faster execution, and find the maximum. Both are global variables.

```
w = v[[Range[1, 3142, 10]]];
max = Max[w[[All, 2]]];
```

Adjust the maximum filter window radius r, and the jump threshold t.

```
Manipulate[
Module[{y = CompoundMedianFilter[w, r]},
ListLinePlot[BlockPlot[y], PlotStyle -> Directive[Thick, Blue],
Prolog -> {Red, Point[w]},
Epilog -> {Darker[Green],
Map[Line[{{#[[1]], 0}, {#[[1]], max}}]&, DifferenceThreshold[y, t]]},
Frame -> True, PlotRange -> {0, max}, ImageSize -> 600]],
{{r, 10, "Max CMF Radius"}, 1, 30, 1, Appearance -> "Labeled"},
{{t, 30, "Jump Threshold"}, 10, 200, 10, Appearance -> "Labeled"}
]
```

I find this an interesting question. You are looking for cluster points in the series. Are there more than two? Do you know them in advance? (In this case it would be not so hard.) Maybe it's not the right place here to ask - hence no answers. Asking in a math forum? – Darwin1871 – 2016-01-28T00:55:15.327

Maybe you could do a windowed mean and standard deviation and make a hypothesis test whether the next (or the +k-th) data point lies within a certain confidence interval. Doing this with different window sizes. – Darwin1871 – 2016-01-28T01:12:11.510

Why not a Bai-Perron test for structural breaks? Perron has Matlab code on his website which is very easy to use. – Titus – 2019-02-11T20:55:11.803