DEM_observer

This MATLAB code performs the state and input estimation for a linear state space system with coloured noise using the Free energy principle from neuroscience, as given in the following paper:

A. A. Meera and M. Wisse, "Free Energy Principle Based State and Input Observer Design for Linear Systems with Colored Noise," 2020 American Control Conference (ACC), Denver, CO, USA, 2020, pp. 5052-5058, doi: 10.23919/ACC45564.2020.9147581.


In order to simulate it, run DEM_observer.m file.

List of variable names and their meanings

The model structure represents the generative process, while the brain structure represents the generative model.

  • Tt: Time vector (starting from 0)

  • model.t : Time vecotor starting from sampling time

  • model.sam_time : Sampling time

  • model.real_cause : System input (measured) - nv*nt matrix

  • model.process_x : States state (only used for plotting) - nt*nx matrix

  • model.process_y : System output (measured) - nt*ny matrix

  • model.A : A matrix - nx*nx matrix

  • model.B : B matrix - nx*nv matrix

  • model.C : C matrix - ny*nx matrix

  • model.s : Noise smoothness

  • model.p : Embedding order of states

  • model.d : Embedding order of imputs

  • model.sigma_w : Standard deviation of state noise

  • model.sigma_z : Standard deviation of observation noise

  • brain.nv : Number of inputs

  • brain.ny : Number of outputs

  • brain.nx : Number of states

  • brain.nt : Number of total time steps