A continuous-discrete state space model has latent states that evolve in continuous time via a stochastic differential equation (SDE), but observations arrive at discrete times.

model

This is the general SDE from stochastic calculus, , applied to a multivariate latent state . The scalar drift becomes a vector-valued function , and the scalar diffusion becomes a matrix multiplying a -dimensional Brownian motion:

is the drift (deterministic tendency), is the diffusion coefficient (noise scaling). Observations at times :

ComponentContinuous-timeDiscrete-time equivalent
Dynamics – rate of change – next state
Noise – diffusion coefficient, shape – per-step covariance, shape
Noise relationInstantaneous covariance Fixed covariance per step
Brownian motion dim (can differ from )

The diffusion has shape where is the Brownian motion dimension. When , noise enters only some state dimensions. Under Euler-Maruyama discretisation, the per-step covariance is (for the linear case, the exact involves an integral – see below).

special cases

Linear SDE (LTI). with linear-Gaussian observations. Exact discretisation via matrix exponentials gives a linear gaussian ssm – see state space gaussian process.

ODE (no noise). : a deterministic system observed with noise. Drift is a plain vector field, the state follows a trajectory. Standard ODE solvers (e.g. Tsit5 in diffrax) integrate between observation times.

Potential-based drift. for a scalar potential . This is Langevin dynamics – the state descends an energy landscape with stochastic perturbation. Common in physics-inspired models.

discretisation

To apply discrete-time filters (Kalman, EKF, particle), we need the transition density . This requires discretising the SDE.

Euler-Maruyama

First-order Itô-Taylor approximation: integrate the SDE and freeze , at the left endpoint (stochastic forward Euler). The noise term becomes (from (Itô)), giving covariance . For time step :

Simple and effective for small , biased for large steps. The result is a nonlinear gaussian ssm transition that any discrete-time filter can consume.

exact discretisation (linear case)

For , the solution is exact via variation of constants (the matrix analogue of ):

The integral is a Gaussian (deterministic integrand times ), giving where:

An exact linear gaussian ssm – no approximation error. This is the basis for state-space GPs. Nonlinear SDEs have no closed-form solution, requiring Euler-Maruyama or numerical solvers.

continuous-discrete filtering

The filter alternates between two phases:

  1. Predict (continuous). Propagate the filtering distribution forward from to . For Gaussian filters, this means integrating moment ODEs for the mean and covariance (ODEs, not the SDE itself).
  2. Update (discrete). Incorporate the observation using the standard Kalman/EKF/particle update.

Moment ODEs

For any linear SDE , the moment ODEs are read off directly from and :

The covariance is the continuous Lyapunov equation.

Example: scalar OU process

, observed as , . The filter maintains .

Predict: read off , and substitute into the moment ODEs:

For this linear case, the solutions are closed-form and recover the exact discretisation. For nonlinear drift, these ODEs have no closed form and require a numerical ODE solver.

Update: at , apply the standard Kalman update with .

Simulation

Forward sampling from a continuous-time model requires an SDE solver:

  • ODE (): standard adaptive solvers (Tsit5, Dopri5)
  • SDE (): stochastic solvers (Euler-Maruyama, Heun) with a Brownian motion source Implementations:
  • cd-dynamax: continuous-discrete filters (KF, EKF, UKF, EnKF, DPF)
  • diffrax: ODE/SDE solvers in JAX

See Särkkä & Solin, Applied Stochastic Differential Equations (2019), Chapters 9-12.