Sun Feb 16 19:10:37 EST 2020
Starting from 8 bit, how to find the logic levels? Assume the levels
will not change, so start with constructing a histogram. This will be
strongly bimodal. How to find those modes?
The simplest approach would be to find the local maximum starting from
above and below. Then pick the mid-point, and use a ST to convert it
Now, what about 3-level? E.g. I have a RS485 line that has an idle
state at say 2/3 between high and low.
- logaritmic histogram
- average (center of gravity)
- split based on center of gravity
- linear center of gravity for each
Different approach: given midpoint, compute variance of the 2
sections. Minimize variance. This can be done exhaustively.
This likely also works for 3-modal.
Another: hill-climbing from all initial conditions.
Another: 3-modal: find first 2 modes using left/right local maxima,
then bisect hillclimb until disctinct 3rd pops up.
the hill-climbing require smoothing.
Another: fit a single sine wave to a smoothed histogram.
Forgot: for differential line, it is actually completely trivial. By
analogy, setting the clusters manually also solves the problem.