Unzip (Split Signal)
Shippingunzip_signalSplit a Signal into X (timestamps), Y (values), and σ (std-dev) as three Vectors
Signature
Inputs
signalSignal|Vectorrequired— A Signal (or a bare Vector, whose X becomes the row index and σ becomes zeros).
Outputs
xVector— Timestamps (the independent axis); unit = the x_unit label.yVector— Values (the data), carrying the signal's unit.sigmaVector— Per-sample σ = √variance, in the value unit; all-zeros for an exact signal.
Parameters
| Key | Type | Default | Notes |
|---|---|---|---|
x_unit | text | Unit symbol applied to the X output vector. A Signal stores no X unit, so this is purely a cosmetic label (e.g. "s"). Empty = unitless. |
Description
Unzip is the exact inverse of Zip (zip_signal): it splits a Signal into its three underlying 1-D arrays and exposes them as first-class Vectors the rest of the graph can reindex, filter, or feed back into Zip:
x— the timestamps (the independent axis);y— the values (the data), carrying the signal's unit;sigma— the per-sample standard deviation , in the value unit.
Because a Signal is stored structure-of-arrays, unzipping simply exposes its columns — cheap and lossless. An exact signal (no variance) yields an all-zero σ (never fabricated). A bare Vector input is also accepted (the degenerate case): x becomes the row index , y is the data, and σ is zero — so Unzip never fails on an array with no explicit axis. The node is stateless.
Mathematics
Examples
Split a signal with uncertainty
Feed a Signal with values V and variance . Unzip (with x_unit = "s") outputs X = the timestamps (unit s), Y V, and σ V — the √ of the stored variance.
Unzip a bare array
Feed a Vector (kg). Unzip yields X (index axis), Y kg, and σ .
Applications
- Exposing a signal's X and Y columns for element-wise array math or reindexing that operates on plain vectors.
- Recovering per-sample error bars (σ) from a signal for plotting or downstream uncertainty analysis.
- Round-tripping through Zip / Unzip to reorder, subset, or resample (X, Y) pairs and rebuild the signal.
- Feeding a signal's raw timestamps into an axis-generation or interval-measurement node.
Neat
σ is derived as √(max(variance, 0)) per sample — the clamp guards against a tiny negative variance from upstream numerical error yielding a NaN standard deviation.
A Signal stores no X unit, so the X output's unit is a pure cosmetic label supplied by x_unit; the Y and σ outputs both inherit the signal's real value unit.
An exact (variance-free) signal emits a genuinely all-zero σ vector — the node never invents uncertainty that was not measured.