systems.builtin.stochastic.discrete.DiscreteWhiteNoise
systems.builtin.stochastic.discrete.DiscreteWhiteNoise(*args, **kwargs)Pure white noise process - memoryless random sequence.
The fundamental building block of all stochastic processes, representing pure randomness with no memory or structure. White noise is the innovation sequence underlying ARMA models and the limiting case of AR(1) with φ = 0.
Difference Equation
X[k] = σ·w[k]
where w[k] ~ N(0,1) are iid standard normal random variables.
Alternative View: X[k+1] = 0·X[k] + σ·w[k]
This shows white noise as AR(0) - no dependence on past.
Key Features
Memorylessness: Zero autocorrelation: Cov[X[k], X[j]] = 0 for k ≠ j
Each observation independent of all others.
Unpredictability: Best prediction: E[X[k+1] | past] = 0 Prediction error: MSE = σ²
Cannot be improved by using past information.
Stationarity: Strictly stationary - distribution invariant to time shifts.
Flat Spectrum: Power spectral density: S(f) = σ² (constant across frequencies)
Hence “white” - equal power at all frequencies.
Mathematical Properties
Moments: Mean: E[X[k]] = 0 for all k Variance: Var[X[k]] = σ² for all k Higher moments: Standard Gaussian if w ~ N(0,1)
Autocorrelation: γ(h) = σ²·δ_h where δ_h is Kronecker delta: γ(0) = σ² γ(h) = 0 for h ≠ 0
Power Spectrum: S(f) = σ² for all f ∈ [-f_s/2, f_s/2]
where f_s = 1/Δt is sampling frequency.
Physical Interpretation
Standard Deviation σ: - Units: [state] - Scale of random fluctuations - Examples: * Measurement noise: instrument precision * Thermal noise: √(4·k_B·T·R·Δf) * Financial: daily return volatility
No Parameters Besides σ: White noise is completely characterized by variance σ². No memory, no time constants, no structure.
State Space
State: x ∈ ℝ (unbounded) - No persistence between samples - Each value independent - Gaussian: X[k] ~ N(0, σ²)
Control: None (autonomous) - Pure random process - Cannot be controlled or predicted
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| sigma | float | Standard deviation of white noise - Must be positive - σ = 1: Standard white noise - Variance: σ² | 1.0 |
| dt | float | Sampling period [time units] - Required for discrete system - Sets time scale | 1.0 |
Stochastic Properties
- Type: Pure random (no deterministic component)
- Innovation: w[k] ~ N(0,1) iid
- Memory: None (memoryless)
- Stationary: Yes (strictly stationary)
- Ergodic: Yes
- Predictable: No
Applications
1. Signal Processing: - Noise modeling in measurements - Filter testing and validation - System identification (input signal) - Detection theory (null hypothesis)
2. Communications: - AWGN channel model - Error analysis - Channel capacity calculations
3. Time Series: - Innovation sequence for ARMA models - Residual diagnostics (should be white) - Benchmark for forecasting performance
4. Control Systems: - Process noise in Kalman filter - Disturbance modeling - Robustness analysis
5. Finance: - Efficient market hypothesis (returns should be white) - Monte Carlo simulation - Risk modeling baseline
6. Testing: - Null hypothesis for independence tests - Benchmark for signal detection - Residual analysis
Numerical Simulation
Direct Generation: X[k] = σ·randn()
Simple, exact, no approximation.
Quality Checks: - Mean ≈ 0 - Variance ≈ σ² - Autocorrelation ≈ 0 for h > 0 - Within confidence bands: ±1.96/√N
Statistical Analysis
Tests for White Noise: - Ljung-Box Q-test (joint autocorrelation) - Durbin-Watson (first-order autocorrelation) - Runs test (randomness) - Portmanteau test
Diagnostics: - ACF plot: Only lag 0 significant - Periodogram: Approximately flat - Q-Q plot: Linear (if Gaussian)
Comparison with Other Processes
vs. Random Walk: - RW: Cumulative sum of white noise - WN: Memoryless, stationary
vs. AR(1): - AR(1): X[k] = φ·X[k-1] + w[k] - WN: AR(1) with φ = 0
vs. Brownian Motion: - BM: Continuous-time integral of white noise - WN: Discrete-time, no integration
Limitations
- Idealization (infinite bandwidth)
- Real noise often band-limited
- May have weak temporal dependence
- Gaussian assumption may not hold
See Also
DiscreteAR1 : White noise is AR(1) with φ=0 DiscreteRandomWalk : Cumulative sum of white noise BrownianMotion : Continuous-time analog
Methods
| Name | Description |
|---|---|
| define_system | Define white noise process. |
| get_autocorrelation | Get theoretical autocorrelation at given lag. |
| get_standard_deviation | Get theoretical standard deviation σ. |
| get_variance | Get theoretical variance σ². |
define_system
systems.builtin.stochastic.discrete.DiscreteWhiteNoise.define_system(
sigma=1.0,
dt=1.0,
)Define white noise process.
Sets up pure random sequence: X[k] = σ·w[k]
where w[k] ~ N(0,1) are iid.
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| sigma | float | Standard deviation (must be positive) - σ = 1: Standard white noise - σ² = variance - Typical: 0.1 to 10.0 depending on application | 1.0 |
| dt | float | Sampling period [time units] - Required for discrete system - Sets time scale - Does not affect statistics (memoryless) | 1.0 |
Raises
| Name | Type | Description |
|---|---|---|
| ValueError | If sigma ≤ 0 |
Notes
Complete Characterization: White noise is completely specified by variance σ². No other parameters needed - no memory, no time constants.
Independence: Each sample is independent: P(X[k] | X[k-1], …) = P(X[k])
This is the strongest form of memorylessness.
Gaussian White Noise: If w[k] ~ N(0,1), then X[k] ~ N(0, σ²). Uncorrelated + Gaussian ⟹ Independent
Non-Gaussian Extensions: Can use other distributions: - Uniform: w[k] ~ U(-√3, √3) (variance 1) - Laplace: Heavier tails - Student-t: Fat tails
Sampling Period dt: Unlike AR(1) or OU, dt doesn’t affect white noise statistics. Samples at any interval are independent with same variance.
Power Spectral Density: S(f) = σ² for |f| ≤ f_Nyquist = 1/(2·dt)
Flat spectrum - equal power at all frequencies.
Use Cases: - Testing: Null hypothesis for independence - Simulation: Generate innovations for ARMA - Benchmarking: Compare signal detection performance - Modeling: Measurement noise, residuals
Relationship to AR(1): White noise is AR(1) with φ = 0: X[k+1] = 0·X[k] + σ·w[k]
Wold Decomposition: Any stationary process can be written as: X[k] = μ + Σ ψ_j·w[k-j] where w[k] is white noise.
get_autocorrelation
systems.builtin.stochastic.discrete.DiscreteWhiteNoise.get_autocorrelation(lag)Get theoretical autocorrelation at given lag.
For white noise: ρ(0) = 1 ρ(h) = 0 for h ≠ 0
Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| lag | int | Lag h (non-negative) | required |
Returns
| Name | Type | Description |
|---|---|---|
| float | Autocorrelation: 1 if lag=0, else 0 |
Examples
>>> wn = DiscreteWhiteNoise(sigma=1.0, dt=1.0)
>>> print(f"ρ(0) = {wn.get_autocorrelation(0)}") # 1.0
>>> print(f"ρ(1) = {wn.get_autocorrelation(1)}") # 0.0
>>> print(f"ρ(10) = {wn.get_autocorrelation(10)}") # 0.0get_standard_deviation
systems.builtin.stochastic.discrete.DiscreteWhiteNoise.get_standard_deviation()Get theoretical standard deviation σ.
Returns
| Name | Type | Description |
|---|---|---|
| float | Standard deviation |
Examples
>>> wn = DiscreteWhiteNoise(sigma=1.5, dt=1.0)
>>> std = wn.get_standard_deviation()
>>> print(f"Std: {std:.3f}") # 1.5get_variance
systems.builtin.stochastic.discrete.DiscreteWhiteNoise.get_variance()Get theoretical variance σ².
For white noise, variance is simply σ².
Returns
| Name | Type | Description |
|---|---|---|
| float | Variance |
Notes
Unlike AR(1) or OU, white noise variance doesn’t depend on any time constants - it’s just σ².