---
title: Bussgang-Aided KalmanNet
url: https://www.emergentmind.com/topics/bussgang-aided-kalmannet
type: topic
---

# Bussgang-Aided KalmanNet

Bussgang-aided KalmanNet is a state estimation framework designed for high-accuracy filtering in systems with 1-bit quantized observations and possibly imperfect process and measurement models. The approach combines analytic linearization based on the Bussgang decomposition with deep recurrent neural networks to mitigate the severe information loss induced by 1-bit quantization and to compensate for model mismatch. The algorithm extends traditional Kalman and hybrid filtering methodologies, providing robustness and computational efficiency in settings where quantization distortion and non-idealities are prominent [2507.17284].

## 1. System Model and 1-Bit Quantization

The foundation of Bussgang-aided KalmanNet is a discrete-time nonlinear state-space model:
\[
x_t = f(x_{t-1}) + w_t,\qquad w_t\sim\mathcal{N}(0,Q_t)
\]
\[
y_t = h(x_t) + v_t,\qquad v_t\sim\mathcal{N}(0,R_t)
\]
where \(x_t\in\mathbb{R}^m\) represents the latent state, and \(y_t\in\mathbb{R}^n\) is the pre-quantized sensor measurement. Gaussian process noise \(w_t\) and measurement noise \(v_t\) are assumed mutually independent. Subsequently, the real-valued measurement is quantized by a 1-bit element-wise quantizer—possibly employing a dithering technique based on predictive centering:
\[
z_t = y_t - \tau_t, \quad \tau_t = \hat y_{t|t-1}
\]
\[
r_t = Q(z_t), \quad [Q(z)]_i = \begin{cases}
+1,& z_i > 0 \\ 
-1,& z_i \le 0
\end{cases}
\]
The estimator aims to minimize mean squared state reconstruction error given binary observations:
\[
\hat x_{t|t} = \arg\min_{\hat x_t}\,\mathbb{E}\bigl[\|x_t-\hat x_t\|^2\,|\,r_{1},...,r_{t}\bigr]
\]
1-bit quantization, especially under non-dithered or asymmetric regimes, introduces significant distortion and non-Gaussianity, invalidating most classic Kalman-type solutions without substantial modification.

## 2. Bussgang Decomposition and Linear Surrogate

The Bussgang theorem is leveraged under the assumption that the quantizer input \(z_t\) is (approximately) zero-mean Gaussian. The decomposition establishes a linear relationship between quantizer output and input through:
\[
\mathrm{Cov}[r_t, z_t] = B_t P_{t|t-1}
\]
\[
B_t = \sqrt{\frac{2}{\pi}}\;\mathrm{diag}(P_{t|t-1})^{-1/2}
\]
yielding the surrogate linear model:
\[
r_t = B_t z_t + \eta_t
\]
Here, \(\eta_t\) is an additive, zero-mean, uncorrelated distortion with covariance:
\[
\mathrm{Cov}[\eta_t] = S_{t|t-1} - B_t P_{t|t-1} B_t^\top
\]
\[
S_{t|t-1} = \frac{2}{\pi}\,\arcsin(D_{t|t-1} P_{t|t-1} D_{t|t-1}), \quad D_{t|t-1} = \mathrm{diag}(P_{t|t-1})^{-1/2}
\]
This conversion enables 1-bit quantized observations to be processed using a Kalman-like linear update.

## 3. Bussgang-aided Kalman Filter and Reduced Complexity Variant

The Bussgang-aided Kalman Filter (BKF) propagates predictions as in the extended Kalman filter, but uses the linearized Bussgang measurement model for updates:
- Prediction:
    \[
    \hat x_{t|t-1} = f(\hat x_{t-1|t-1}), \quad 
    \Sigma_{t|t-1} = F_t \Sigma_{t-1|t-1} F_t^\top + Q_t
    \]
    \[
    \hat y_{t|t-1} = h(\hat x_{t|t-1}), \quad 
    P_{t|t-1} = H_t \Sigma_{t|t-1} H_t^\top + R_t
    \]
- Update with the Bussgang gain:
    \[
    K_t^{\mathrm{B}} = \Sigma_{t|t-1} (H_t^\top B_t^\top) S_{t|t-1}^{-1}
    \]
    \[
    \hat x_{t|t} = \hat x_{t|t-1} + K_t^{\mathrm{B}} r_t
    \]
    \[
    \Sigma_{t|t} = \Sigma_{t|t-1} - K_t^{\mathrm{B}} S_{t|t-1} (K_t^{\mathrm{B}})^\top
    \]
The update treats \(r_t \approx B_t H_t x_t\) as a noisy, linear measurement.

For high-dimensional observations, an order-of-magnitude computational reduction is achieved using the reduced-complexity variant (rBKF). This introduces a projection matrix \(A \in \mathbb{R}^{an \times n}\) (block averages, etc.), forming:
\[
r^*_t = A r_t, \quad S^*_{t|t-1} = A S_{t|t-1} A^\top, \quad B^*_t = A B_t
\]
\[
K^*_t = \Sigma_{t|t-1} (H_t^\top (B^*_t)^\top) (S^*_{t|t-1})^{-1}
\]
All update equations use these projected quantities, reducing matrix inversion cost from \(O(n^3)\) to \(O((an)^3)\).

## 4. Bussgang-aided KalmanNet Architecture

To address imperfect or partially known process/measurement models, Bussgang-aided KalmanNet (BKNet) parameterizes the gain computation as a learned function:
\[
\hat x_{t|t} = \hat x_{t|t-1} + \mathcal{K}_t(\Theta) r^*_t
\]
\[
\hat x_{t|t-1} = f(\hat x_{t-1|t-1}),\quad \Sigma_{t|t-1}= F_t \Sigma_{t-1|t-1} F_t^\top + Q_t
\]
The gain module \(\mathcal{K}_t(\Theta)\) is realized by a sequence of three gated recurrent unit (GRU) blocks:
- GRU\(_Q\): captures dependency on process noise \(Q_t\)
- GRU\(_\Sigma\): models prior state covariance \(\Sigma_{t|t-1}\)
- GRU\(_P\): encodes measurement covariance and quantizer nonlinearity

Inputs incorporate estimated state differences (\(\Delta x\)), residual differences (\(\Delta r\)), and matrix embeddings via fully-connected layers. A final fully-connected layer maps GRU outputs to the gain estimate. This modular, recurrent design preserves interpretability and low parameter count while enabling data-driven adaptation to unknown or non-Gaussian regimes.

## 5. Training Methodology and Pseudocode

BKNet employs a mean-square error loss with $l_2$ regularization:
\[
\mathcal{L} = \frac{1}{T}\sum_{t=1}^T \|x_t-\hat x_{t|t}\|^2 + \lambda\|\Theta\|^2
\]
Training uses the Adam optimizer with a learning rate of \(10^{-3}\), batch size \(B\approx32\), and regularization coefficient \(\lambda \approx 10^{-5}\). Two types of data are used:
- Simulated: Lorenz attractor (sequence length 100, Gaussian noise, dithering quantization)
- Real-world: NCLT robot dataset (GPS/odometry, 6-dimensional state, 2-dimensional measurement, 1 Hz sampling; train/test on separate days)

Dithering centers the quantizer inputs at current predictions (\(\tau_t = \hat y_{t|t-1}\)), improving symmetry and Fisher information.

The update procedure follows the pseudocode:

```python
Initialize \hat x_{0|0}, Σ_{0|0}, Q_GRU_hidden, Σ_GRU_hidden, P_GRU_hidden
for t=1…T do
  # (1) Prediction
  \hat x_{t|t-1} = f(\hat x_{t-1|t-1})
  Σ_{t|t-1}     = F_t Σ_{t-1|t-1} F_t^T + Q_t
  \hat y_{t|t-1}= h(\hat x_{t|t-1})
  r_t = sign(y_t - \hat y_{t|t-1})         # 1-bit + dithering
  r^*_t = A r_t                           # optional reduction
  # (2) Learn gain via GRUs
  input_Q = FC(Δx_{t-1});    Q_GRU_hidden = GRU_Q(input_Q, Q_GRU_hidden)
  Q_t_learned = reshape(output_Q)
  input_Σ = FC([vec(Q_t_learned); Δx_{t-1}])
  Σ_GRU_hidden = GRU_Σ(input_Σ, Σ_GRU_hidden)
  Σ_{t|t-1}^learned = reshape(output_Σ)
  input_P = FC([vec(Σ_{t|t-1}); Δr_t; r^*_t])
  P_GRU_hidden = GRU_P(input_P, P_GRU_hidden)
  K_t = FC([vec(Σ_{t|t-1}); output_P])     # final learned gain
  # (3) Update
  \hat x_{t|t} = \hat x_{t|t-1} + K_t r^*_t
  Σ_{t|t}     = Σ_{t|t-1} - K_t K_t^T       # or a small FC block to re-estimate
end for
```
with $\Delta x_{t-1} = x_{t-1} - \hat x_{t-1|t-2}$ and $\Delta r_t = r^*_t - r^*_{t-1}$.

## 6. Empirical Results and Performance

Key measured results:

| Scenario                                    | RMSE (dB)         | Notes                                                             |
|----------------------------------------------|-------------------|-------------------------------------------------------------------|
| Lorenz, EKF/KalmanNet (ideal)                | $\approx -19$     |                                                                    |
| Lorenz, EKF/KalmanNet (1-bit)                | fail ($\approx$12–18) | Unable to track accurately                                        |
| Lorenz, BKF/rBKF (1-bit)                     | $\approx -17$     | Analytic Bussgang handling                                        |
| Lorenz, BKNet (1-bit, mismatched models)     | $\approx -17.3$   | Robust to model errors, Taylor expansions, rotational mismatches   |
| NCLT, KalmanNet (ideal)                      | $\approx 19$      | Real robot data                                                   |
| NCLT, EKF/KalmanNet (1-bit)                  | fail              | State estimation fails under strong quantization                  |
| NCLT, BKF (1-bit)                            | $\approx 32.6$    | High accuracy under 1-bit quantization                            |
| NCLT, BKNet (1-bit)                          | $\approx 18.6$    | Matches KalmanNet with ideal (unquantized) data                   |

Reduced-complexity BKF with \(64\) ADCs at the sensor achieves a runtime decrease by a factor of 4–10 compared to the full BKF with negligible RMSE increase.

## 7. Theoretical Foundations and Interpretational Insights

Crucial to the performance of Bussgang-aided KalmanNet are several theoretical conditions:
- Centering quantizer inputs via dithering is critical, ensuring a computable diagonal structure for Bussgang gains and maximizing information extraction.
- For (near-)Gaussian residuals, the Bussgang decomposition ensures that the linear surrogate maintains second-order statistics of the original quantized system. Thus, Kalman recursions yield (approximately) optimal LMMSE state estimates.
- The residual noise \(\eta_t\) is approximated as Gaussian, with empirical justification in cases of moderate distortion or when large numbers of parallel 1-bit channels are aggregated.
- Within the BKNet extension, GRU modules flexibly adapt to biases, higher-order nonlinearities, and mismatches. The universal approximation capabilities of recurrent neural networks, under sufficient data and capacity, guarantee that the true time-varying gains can be learned.

Together, the Bussgang-aided Kalman filter and its neural extension KalmanNet form a principled, modular, and data-adaptive framework for nonlinear state estimation under severe quantization, robust to model errors and suitable for both simulated and real-world settings [2507.17284].

Source: https://www.emergentmind.com/topics/bussgang-aided-kalmannet