- 08-trigger.txt: names all four condition shapes and the buffer search; fixes the first paragraph and 'How to reach it' to match what the panel actually contains (fix 3). - 10-measurements.txt: adds a Statistics bullet — one observation per recompute, what resets the history, what does not (fix 3). - probe-readings.md: re-quotes condition-probe lines with level2= and mode= fields; corrects leg-2 window geometry (0.2 s / 10 % pre, not 1.0 s / 50 %); moves the wide-window reason to legs 1 and 3; fixes the search-probe scheduling note (search_probe calls condition_probe directly; do not also set CONDITION_MS) (fix 6). - verification.md: corrects shape-2 window geometry to match the code (fix 7). - invariants-session-and-export.md, README.md: document the measure_stats session key — position, type, default false (fix 8). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
61 lines
4.3 KiB
Plaintext
61 lines
4.3 KiB
Plaintext
<b>Measurements</b>
|
|
|
|
A measurement is a statistic of the <i>visible window</i> of one signal, recomputed as that
|
|
window moves. The pane lists them with their values; each can also draw its result on the plot.
|
|
|
|
<b>How to reach it</b>
|
|
|
|
The measurements button in the toolbar, or <tt>m</tt>. The pane's <tt>+</tt> adds one; clicking
|
|
a row opens the dialog where the signal, the type, the threshold share and the on-plot marks are
|
|
set, with <b>Save</b> and <b>Delete</b>.
|
|
|
|
<b>Worth knowing</b>
|
|
|
|
• The types are average, top, bottom, min, max, peak to peak, amplitude, pulse duration, period
|
|
and frequency. <i>top</i> and <i>bottom</i> are the means of the upper and lower halves, which
|
|
is why a unit sine reads 0.637 (2/π) rather than 1.
|
|
• The on-plot marks come in two kinds and the mix is the reading: a <i>level</i> mark is a ruler
|
|
at a value, a <i>time</i> mark is a marker at a position. An average draws one level mark; a
|
|
max draws a level mark <i>and</i> a time mark at the first sample that reached it.
|
|
• Marks cannot be dragged. A measurement mark says what the measurement measured, so it is
|
|
created unselectable — as is the trigger marker.
|
|
• A pass is throttled to a cadence rather than run every frame, so a ruler over a live view is
|
|
<i>stepped</i>. The number and the ruler come from the same pass, so they always agree.
|
|
• An invalid pass keeps its <i>level</i> marks and drops its <i>time</i> marks. A level is a
|
|
property of the signal and outlives the window; a position inside the window does not. That is
|
|
what stops the rulers blinking off at a mode change.
|
|
• A crossing is counted with <i>hysteresis</i>, not on a bare level: the thresholds are a tenth of
|
|
the window's peak to peak either side of the share, and an edge is counted only once the signal
|
|
has passed the far one. Period, frequency and pulse duration all depend on it. The mid level is
|
|
exactly where a waveform moves fastest, so any interferer faster than the fundamental recrosses a
|
|
single level several times per real crossing — a 5 Hz sine with a 500 Hz tone at a tenth of the
|
|
amplitude reads 39 Hz without the band and 5 Hz with it. The band holds to an interferer a third
|
|
of the waveform's own size.
|
|
• The band is clamped to stay inside the data, which is what keeps a threshold set near an extreme
|
|
usable: a fixed band there would sit above every sample and the measurement would read nothing.
|
|
A share near an extreme still leaves the band little room, so it rejects less — which is one
|
|
reason period and frequency offer no share to set.
|
|
• A window with too few crossings reads <tt>invalid</tt> / <tt>--</tt> rather than a plausible
|
|
invented number. Frequency over a window holding one edge is the usual case.
|
|
• <tt>frequency</tt> is reported in Hz and <tt>period</tt>/<tt>pulse duration</tt> in seconds;
|
|
every other type carries the channel's own unit. A value is written with a <i>metric prefix</i>
|
|
so its digits sit in <tt>1..999</tt> — <tt>636.62 mV</tt>, not <tt>0.64 V</tt> — including when
|
|
the stream declares no unit at all, which is always the case for a math channel: there the
|
|
prefix goes tight against the number (<tt>636.62m</tt>), since two decimals of an unprefixed
|
|
small value is <tt>0.00</tt>.
|
|
• Cost is bounded by reading the summary pyramid the producer already maintains, not the raw
|
|
window. The values are still exact: a bucket's sum is a sum.
|
|
• <b>Statistics</b> adds a second line to every measurement showing <tt>n</tt>, the mean, the
|
|
standard deviation and the range. Each observation is one <i>recompute</i> of the pane, so
|
|
<tt>n</tt> counts windows measured, not samples — a mean frequency over many windows is what
|
|
that claims to be. <b>Reset</b> clears every accumulator and starts fresh. A change of display
|
|
window, a CONFIG or a measurement edit also resets; a pause, a resume, a zoom, a pan and the
|
|
toggle itself do not, so turning the line off to read the plot and back on again keeps the history.
|
|
|
|
<b>Example</b>
|
|
|
|
On a 1 Hz ±1 sine: <tt>average=0</tt>, <tt>top=0.636620</tt>, <tt>bottom=-0.636620</tt>,
|
|
<tt>max=1</tt>, <tt>min=-1</tt>, <tt>peak to peak=2</tt>, <tt>amplitude=1</tt>,
|
|
<tt>pulse duration=0.5 s</tt> (duty 0.5), <tt>period=1 s</tt>, <tt>frequency=1 Hz</tt>. Over a
|
|
2 M-sample window those two passes read about 0.1% of the samples.
|