Vulcan
Aerospace Engineering Utilities Built on Janus
Loading...
Searching...
No Matches
vulcan::gaussian Namespace Reference

Functions

template<typename Scalar>
Scalar apply (const Scalar &noise_input, double sigma)
 Apply Gaussian white noise scaling.
template<typename Scalar>
Scalar apply_psd (const Scalar &noise_input, double psd_density, double dt)
 Apply white noise with PSD-based scaling.
double variance_from_psd (double psd_density, double dt)
 Compute discrete variance from continuous PSD.
double psd_from_variance (double variance, double dt)
 Compute continuous PSD from discrete variance.
double sigma_from_arw (double N, double dt)
 Compute white noise gain from Allan variance N parameter.

Function Documentation

◆ apply()

template<typename Scalar>
Scalar vulcan::gaussian::apply ( const Scalar & noise_input,
double sigma )

Apply Gaussian white noise scaling.

Scales a unit-variance white noise sample by the specified standard deviation. For discrete-time simulation with a given PSD, use the appropriate scaling: σ_discrete = σ_continuous / √(Δt)

Template Parameters
Scalardouble or casadi::MX
Parameters
noise_inputWhite noise sample with unit variance (N(0,1))
sigmaStandard deviation of the output noise
Returns
Scaled noise value with variance σ²

◆ apply_psd()

template<typename Scalar>
Scalar vulcan::gaussian::apply_psd ( const Scalar & noise_input,
double psd_density,
double dt )

Apply white noise with PSD-based scaling.

Converts continuous-time power spectral density to discrete-time variance and applies appropriate scaling. This is the correct way to generate discrete noise samples from a continuous PSD specification.

For one-sided PSD S(f) [units²/Hz]: σ²_discrete = S(f) / Δt

Template Parameters
Scalardouble or casadi::MX
Parameters
noise_inputWhite noise sample with unit variance
psd_densityOne-sided power spectral density [units²/Hz]
dtTime step [s]
Returns
Scaled noise value

◆ psd_from_variance()

double vulcan::gaussian::psd_from_variance ( double variance,
double dt )
inline

Compute continuous PSD from discrete variance.

Inverse of variance_from_psd.

Parameters
varianceDiscrete-time variance [units²]
dtTime step [s]
Returns
One-sided power spectral density [units²/Hz]

◆ sigma_from_arw()

double vulcan::gaussian::sigma_from_arw ( double N,
double dt )
inline

Compute white noise gain from Allan variance N parameter.

The angle/velocity random walk parameter N from Allan variance analysis is related to the white noise PSD by: PSD = N²

For discrete-time: σ = N / √(Δt)

Parameters
NAngle or velocity random walk [rad/s/√Hz] or [m/s²/√Hz]
dtTime step [s]
Returns
Standard deviation for discrete noise samples

◆ variance_from_psd()

double vulcan::gaussian::variance_from_psd ( double psd_density,
double dt )
inline

Compute discrete variance from continuous PSD.

Given a one-sided power spectral density S(f) [units²/Hz] and sample period Δt, computes the variance of discrete-time samples.

Parameters
psd_densityOne-sided power spectral density [units²/Hz]
dtTime step [s]
Returns
Variance of discrete samples [units²]