Causality, data use, and signal roles¶
This page fixes the vocabulary used throughout the examples. The package contains runtime filters, batch estimators, offline diagnostics, and finite-block transforms. They can all be useful, but they make different promises about what data are available when an output or prediction is formed.
Causal one-step prediction¶
In the prediction examples, causal means that a prediction for the current sample or vector is made before the current value is observed. For a scalar signal,
For a multichannel signal \(y[n]\in\mathbb{R}^c\), causal MIMO prediction allows cross-channel history but still forbids future samples:
Equivalently, a vector AR predictor has
The matrices \(A_k\) may mix channels, so channel 0 at time n may
use channel 2 at time n-1. It may not use channel 2 at time
n or any future time unless the task is explicitly noncausal/offline.
Causal filtering¶
For input-output filtering, causal means the output at time n uses only the
current input, previous inputs, and previous state:
With the impulse-response convention
causality means \(h[k]=0\) for \(k<0\), because negative k would
use future input samples \(x[n+|k|]\).
The scalar lattice filters, lattice-ladder filters, streaming block processor, state-space simulator, online MIMO lattice predictor, and online matrix-lattice all-pass runtime are causal in this sense.
Batch estimation versus causal use¶
An estimator may use a full finite training record and still produce a model that is later used causally. This is the case for Burg, Levinson-Durbin, block Levinson-Durbin, and finite-Hankel/model-reduction routines.
The distinction is:
Step |
Data-use promise |
|---|---|
Coefficient estimation |
May use a complete training record, covariance sequence, impulse response, or Markov tensor. |
Held-out prediction/filtering |
Uses the fitted coefficients with no lookahead on the held-out stream. |
Frequency-response or Hankel diagnostics |
Offline analysis of a finite object; useful for inspection, not a streaming runtime by itself. |
In docs language, batch or offline describes the estimation/diagnostic
step. Causal describes the runtime or prediction step.
Noncausal and finite-block transforms¶
Some examples intentionally use finite blocks or frequency-domain multiplication:
This is a circular/block operation unless embedded in an overlap-add or
state-space runtime. It is useful for checking unitarity, adjoint identities,
perfect-reconstruction diagnostics, and compression of frequency-dependent
responses. It should not be read as a sample-by-sample streaming filter unless
the page explicitly uses a streaming runtime such as
OnlineMatrixLatticeAllPass.
For all-pass systems there is also an important inverse distinction. The forward all-pass can be causal and stable. Its time-domain impulse response has
The finite-record adjoint used for reconstruction diagnostics is
That adjoint is time-domain but noncausal as an online inverse because it needs
future transformed samples. The docs therefore separate causal forward
runtime from finite-record adjoint/perfect-reconstruction diagnostic.
Transductive, inductive, and held-out language¶
The examples avoid using future samples of the held-out test record when they claim online prediction. A useful vocabulary is:
Term |
Meaning in these docs |
|---|---|
Online causal |
Output or prediction is produced left-to-right with no future samples from the same stream. |
Inductive evaluation |
Fit coefficients on a training record, then run causally on a separate held-out record. |
Transductive/offline evaluation |
Use the whole record being evaluated to choose coefficients or a transform before reporting results on that same record. |
Block/circular |
Process a complete finite block, usually through an FFT or dense matrix operator. |
Transductive experiments can be valid diagnostics, especially for response compression or finite-block unitary layers, but they are not the same claim as online prediction on a held-out stream.
Single-signal prediction versus two-signal filtering¶
Prediction uses one observed signal. At time n the model predicts the
current sample from its own past:
Echo cancellation and system identification use two signals with different physical roles. A reference or far-end signal \(x[n]\) drives an unknown path, and the microphone or desired signal \(m[n]\) contains the echo plus other content:
A causal echo-path filter may use current and past reference samples \(x[n],x[n-1],\ldots\). It should not use future reference samples or future microphone samples. In real double-talk conditions, near-end speech and nonstationarity add control logic beyond the package’s synthetic metric demos; those examples are therefore presented as controlled DSP tests, not production echo cancellers.
Package examples by data-use type¶
The detailed MIMO verification map in MIMO verification map turns this vocabulary into concrete checks for the multichannel examples.
Example family |
Data-use status |
|---|---|
Scalar lattice IIR, lattice-ladder, streaming block processing |
Causal filtering of one input stream. |
Adaptive lattice/NLMS/RLS examples |
Causal adaptive updates from the current input/desired pair after output and error are formed. |
Burg, Levinson, block Levinson, AR spectral estimation |
Batch coefficient estimation; fitted AR predictors are causal once coefficients are fixed. |
|
Causal online vector prediction after a batch or precomputed coefficient fit. |
|
Causal forward multichannel all-pass filtering. |
Paraunitary, ML-style unitary convolution, adjoint reconstruction demos |
Forward analysis now uses streaming matrix-lattice runtimes where applicable; reconstruction checks use finite-record noncausal time-domain adjoints. |
Finite-Hankel, Nehari/AAK-style, and response-compression pages |
Offline finite-dimensional analysis or model selection; resulting reduced models may be causal when implemented as state-space/IIR systems. |