Advanced Topics
By the end of the previous chapter you can produce CSI reliably, in several arrangements, and get them onto a host in a format that opens in a dataframe. That is the part of the problem this project solves directly.
What follows is the part it does not. Turning a stream of complex samples into a statement about a room is a signal-processing and machine-learning problem, and one where the honest state of the art is that results transfer poorly between environments. Both of the earlier chapters flagged this: raw CSI is noisy and hard to interpret directly, and the literature’s most consistent finding is that a model trained in one room degrades sharply in another.
These three sections are guidance rather than reference. There is no first-party
public csi-rs crate for filtering, inference, or calibration yet, so nothing
here documents an API we ship. What it does do is anchor each topic to something
concrete — what esp-csi-rs actually hands you, what the hardware actually
reports, what the measurement harnesses in the repository actually measure — and
name the third-party Rust crates worth reaching for, clearly marked as
third-party.
- Signal Processing in Rust — from
raw
i8pairs to amplitude and phase you can trust, and the pipeline stages between them. - Edge AI & Classification — framing a sensing task, engineering features for it, and where inference should run.
- Troubleshooting & Calibration — the one to read first if your captures already look wrong. It is the section with the most hard evidence behind it.
If you are here because a capture is not behaving, skip to the third.