MATLAB codes for state observer and state estimation — from fundamental Luenberger observers to advanced multi-rate and outlier-robust methods.
This repository accompanies the comprehensive guide: State Observer and State Estimation: A Comprehensive Guide on blog.control-theory.com.
Author: Hiroshi Okajima, Associate Professor, Kumamoto University, Japan
MATLAB_state_observer/
│
├── 01_luenberger_observer/ Continuous-time and discrete-time Luenberger observer
│ ├── main_continuous.m
│ ├── main_discrete.m
│ └── README.md
│
├── 02_observer_based_control/ Observer-based feedback control (separation principle)
│ ├── main_observer_feedback.m
│ └── README.md
│
├── 03_kalman_filter/ Kalman filter (standard, steady-state)
│ ├── main_kalman.m
│ └── README.md
│
├── 04_hinf_filter/ H-infinity filter design via LMI
│ ├── main_hinf_filter.m
│ └── README.md
│
├── 05_multirate_observer/ Multi-rate state observer (IEEE Access 2023)
│ ├── main_multirate_observer.m
│ └── README.md
│
├── 06_multirate_feedback/ Observer-based feedback for multi-rate systems (IEEE Access 2023)
│ ├── main_multirate_feedback.m
│ └── README.md
│
├── 07_multirate_kalman/ Multi-rate Kalman filter via LMI (arXiv 2026)
│ ├── main_multirate_kalman.m
│ └── README.md
│
└── 08_mcv_observer/ MCV observer: outlier-robust estimation (JCMSI 2021)
├── main_mcv_observer.m
└── README.md
Basic Luenberger observer implementation for both continuous-time and discrete-time LTI systems. Demonstrates observer gain design via pole placement and the convergence of estimation error.
- Blog article: State Observer for State Space Model
- Blog article: State Observer: Understanding the Basic Mechanism
Observer-based state feedback control. Demonstrates the separation principle: independent design of controller gain K and observer gain L.
- Blog article: State Observer for State Space Model
Standard discrete-time Kalman filter for systems with process noise and measurement noise. Includes steady-state Kalman filter and continuous-time Kalman-Bucy filter.
H-infinity filter design using Linear Matrix Inequalities (LMIs). Minimizes the worst-case estimation error gain without requiring statistical noise assumptions.
- Blog article: H-infinity Filter: Robust State Estimation Using LMI Optimization
- Blog article: Linear Matrix Inequalities (LMIs) and Controller Design
- Research page: Linear Matrix Inequality
Periodically time-varying state observer for systems where sensors operate at different sampling rates. Observer gains designed via LMI optimization of the l2-induced norm.
- Paper: H. Okajima, Y. Hosoe and T. Hagiwara, "State Observer Under Multi-Rate Sensing Environment and Its Design Using l2-Induced Norm," IEEE Access (2023)
- Blog article: State Observer Under Multi-Rate Sensing Environment and Its Design Using l2-Induced Norm
- MATLAB File Exchange: State Estimation under Multi-Rate Sensing: IEEE ACCESS 2023
- Code Ocean: Multi-Rate System Code
- Research page: Multi-rate System
Complete observer-based feedback controller for multi-rate systems using cyclic reformulation.
- Paper: H. Okajima, K. Arinaga and A. Hayashida, "Design of observer-based feedback controller for multi-rate systems with various sampling periods using cyclic reformulation," IEEE Access (2023)
- Blog article: State Observer Under Multi-Rate Sensing Environment and Its Design Using l2-Induced Norm
- Research page: Multi-rate System
Steady-state Kalman filter design for multirate systems using LMI optimization with cyclic reformulation.
- Paper: H. Okajima, "LMI Optimization Based Multirate Steady-State Kalman Filter Design," arXiv:2602.01537 (2026, submitted)
- Research page: Multi-rate System
Median of Candidate Vectors (MCV) observer for state estimation robust to sensor outliers. Multiple estimation candidates are generated and the median operation selects one unaffected by outliers.
- Paper: H. Okajima, Y. Kaneda and N. Matsunaga, "State estimation method using median of multiple candidates for observation signals including outliers," SICE JCMSI, Vol. 14, No. 1, pp. 257–267 (2021) (Open Access)
- Blog article: State Estimation Method Using Median of Multiple Candidates for Observation Signals Including Outliers
- Blog article: State estimator unaffected by sensor outliers: MCV approach
- MATLAB File Exchange: Outlier-Robust State Estimator: JCMSI 2021
- Research page: MCV Observer for Overcoming Outliers
- MATLAB (R2020a or later recommended)
- Control System Toolbox
- Robust Control Toolbox (for LMI-based designs in
04_hinf_filter,05_multirate_observer,07_multirate_kalman)
- Navigate to the folder of interest (e.g.,
cd 05_multirate_observer) - Open the
main_*.mfile in MATLAB - Run the script — each folder is self-contained
- See the
README.mdin each folder for paper references and parameter explanations
| Topic | Link |
|---|---|
| Hub: State Observer and State Estimation | blog.control-theory.com/entry/state-observer-estimation |
| State Observer: Basic Mechanism | blog.control-theory.com/entry/2024/02/28/100201 |
| State Observer for State Space Model | blog.control-theory.com/entry/2024/10/01/143305 |
| Kalman Filter | blog.control-theory.com/entry/kalman-filter |
| H-infinity Filter | blog.control-theory.com/entry/h-infinity-filter |
| Multi-Rate Observer | blog.control-theory.com/entry/2026/03/04/081748 |
| MCV Observer (Research) | blog.control-theory.com/entry/2026/03/04/084603 |
| MCV Observer (Overview) | blog.control-theory.com/entry/2024/10/01/093531 |
| System Identification Hub | blog.control-theory.com/entry/system-identification |
| System Identification: Obtaining Dynamical Model | blog.control-theory.com/entry/2024/10/03/151451 |
| LMI and Controller Design | blog.control-theory.com/entry/lmi-eng |
| Model Error Compensator (MEC) | blog.control-theory.com/entry/model-error-compensator-eng |
| Discretization | blog.control-theory.com/entry/discretization-eng |
Research Pages (www.control-theory.com)
- Multi-rate System
- MCV Observer for Overcoming Outliers
- Linear Matrix Inequality
- Model Error Compensator
- Publications
- State Estimation under Multi-Rate Sensing: IEEE ACCESS 2023
- Outlier-Robust State Estimator: JCMSI 2021
- MATLAB_system_identification — System identification codes (multirate SysID uses the identified model for observer design)
- MATLAB_fandamental_control_LMI — LMI-based control design
- Robust-control-MATLAB_MEC01 — Model Error Compensator
This repository consolidates and extends the previous repository MATLAB_state_estimation (MCV observer code). The original repository remains available but is no longer updated. New code and updates will be added here.
If you use these codes in your research, please cite the corresponding paper(s) listed in each folder's README.
Hiroshi Okajima — Associate Professor, Graduate School of Science and Technology, Kumamoto University. Member of SICE, ISCIE, and IEEE.
MIT License