AcceptedSpringer · Telecommunication Systems · 2026 11 min read

Teaching a localizer to ignore the clock

Wi-Fi fingerprinting works beautifully until you test it on a different day. This project asks whether that failure is really a machine-learning problem, or a physics problem we have been handing to the optimizer.

0.60 m
Mean error, single AP
17.9–56.8%
Gain over CSILoc, all 6 nodes
30.5 ms
Inference latency
Publication details
Authors
I. Ozturk, M. T. M. Saeed (equal contribution)
Venue
Telecommunication Systems (Springer), 2026
Funding
TÜBİTAK · Osmaniye Korkut Ata University

The question

Indoor positioning matters most where GPS fails and the stakes are high: a warehouse robot, a firefighter in a smoke-filled corridor, a survivor under earthquake debris. Channel State Information (CSI) is the natural signal for it. Unlike RSSI, which collapses the whole channel into one number, CSI exposes amplitude and phase across every OFDM subcarrier, giving a rich fingerprint of the multipath environment.

The catch is that CSI fingerprints are not stationary in time. Collect a database on Monday, deploy on Friday, and accuracy degrades: furniture moved, humidity changed, people are standing in different places, and the receiver's automatic gain control has drifted. Formally, the test distribution is no longer the training distribution.

The research question

Can temporal covariate shift in CSI localization be neutralized at the physical layer, before the network sees the data, rather than absorbed by a larger model or patched with labelled recalibration data?

Why the prior art breaks

The dominant approach treats the CSI matrix as an image. DeepFi autoencodes CSI amplitudes; ConFi arranges CSI as time-frequency images and applies CNNs to capture local correlations across subcarriers. These work well in controlled settings, and that success is exactly the trap.

Treating the channel as a picture imports assumptions that are simply false about radio:

  • Channel amplitudes are not pixels. Their magnitude carries physical units and calibration state, not perceptual intensity.
  • Subcarrier indices are not spatial coordinates. Adjacency in frequency is not adjacency in space; convolutional locality encodes a neighbourhood relation that doesn't exist.
  • ADC saturation is not image noise. Clipping is a deterministic, non-linear hardware signature, not a zero-mean perturbation you can augment away.

The consequence: image-based abstractions discard the multipath topology, the deterministic fingerprint of hardware non-linearity, and the temporal coherence of signal bursts, precisely the structure needed to stay robust when the environment drifts.

The second common shortcut is equally costly. Pipelines routinely discard packets from receivers whose amplifier has saturated, treating them as corrupt. On low-cost IoT hardware that can mean throwing away a large share of the data from exactly the nodes closest to the transmitter.

Hypothesis

If domain divergence is created by physics (gain drift, saturation, multipath geometry), then it can be removed by physics-aware preprocessing, restoring the i.i.d. assumption before any learning happens. Saturated packets are not noise; they are recoverable signal.

Method

The framework is a three-stage variance-reduction pipeline feeding a residual temporal network. The design principle throughout: purify the manifold first, then learn on it.

01

Multi-Feature Spectral Depth (MFSD) filter

Rejects non-physical artifacts, measurements that cannot correspond to a realizable propagation path, before they enter the statistics of the dataset.

02

Eigen-Space Consistency (ESC)

Isolates the rank-1 multipath geometry: the dominant eigen-structure of the channel that reflects room geometry rather than transient interference or receiver state.

03

Enhanced Correlation Alignment (CORAL)

Formally restores the i.i.d. assumption across temporally disjoint domains by aligning second-order statistics, no labels from the target day required.

04

1D-ResNet + Squeeze-and-Excitation + sparse Mixture-of-Experts

The purified manifolds, expanded through non-overlapping temporal augmentation, feed a residual 1D CNN with SE attention and a sparse MoE regression head predicting 2D coordinates. A softmax gate routes each sample across three experts, buying capacity that is only partially activated per sample, and therefore capacity without proportional inference cost.

Framework diagram: Raw CSI dataset feeds exploratory data analysis (spectral anomaly, phase corruption, temporal coherence, hardware PAPR profile) which quantifies covariate shift and yields preprocessing imperatives; preprocessing applies MFSD, ESC and Enhanced CORAL; the predictive model is a 1D-ResNet with SE attention and MoE head predicting 2D location
Figure 1. The full framework. Note that the exploratory analysis is not a preamble: it is what derives the preprocessing. Each EDA finding (spectral anomaly, phase corruption, temporal coherence, hardware PAPR profile) maps to a specific imperative: spectral mask, phase sanitization, coherent windowing, topology filter. The covariate shift is quantified before anything is designed to fix it.
Why the diagnosis comes first

It is tempting to reach for a standard denoiser and move on. Here the preprocessing chain exists because the EDA found four specific physical failure modes, so each stage removes a named artifact rather than smoothing the signal generically. Generic denoising would have destroyed the multipath geometry the model depends on.

Inside that "predictive model" box sits the network itself, in four stages:

Four-stage model: preprocessed CSI tensors with instance normalization feed a downsampling stem, then three residual stages each combining an SE module with 1D convolution, then global average pooling, then a Mixture-of-Experts regression head with a softmax gating network routing to three experts for 2D coordinate regression
Figure 2. Stage 1: instance normalization of preprocessed CSI tensors. Stage 2: a downsampling stem into three residual blocks, each pairing a 1D convolution with a Squeeze-and-Excitation module that reweights subcarrier channels by learned importance. Stage 3: global average pooling. Stage 4: a Mixture-of-Experts head where a softmax gating network routes each sample to three experts before 2D coordinate regression.

Two design choices carry most of the weight here. Instance normalization at the input is a deliberate defence against gain drift: normalizing per sample rather than per dataset means a receiver whose amplifier has shifted overnight is rescaled before it reaches a single learned parameter. And the SE modules matter because subcarriers are not equally informative: some sit in deep fades or carry hardware artifacts, and letting the network learn per-channel weighting is far more principled than treating all 52 as interchangeable pixels.

CORAL, interactively

Stage 3 is the conceptual core, and it is much easier to see than to read. CORAL aligns the second-order statistics of the target domain to the source: whiten the target with its own covariance, then re-colour it with the source covariance.

X′ = (X − μt) · Σt−1/2 · Σs1/2 + μs (1)

Crucially this needs no labels from the target domain, only its covariance, which can be estimated from unlabelled measurements. The demo below runs on two of my own captures from this project: the same location, same radio, same channel, recorded 19.4 minutes apart.

Temporal covariate shift, measured

ref_204_1_3500.pcap (3500 pkt) vs test_204_1_100.pcap (100 pkt) · Nexmon CSI · 52 subcarriers after removing DC, guard bands and pilots · 8-D PCA basis fitted on the reference only.

Alignment
Covariance gap ‖Σr−Σt‖F
Session discriminator

Reference Test
Mean subcarrier amplitude ±1σ: the drift in the raw signal

The session discriminator is the proxy 𝒜-distance: a logistic classifier trained to guess which capture a packet came from. Near 50% it cannot tell them apart: the goal. On raw features it approaches 100%: the drift is so structured that the session is trivially identifiable, which is precisely what a fingerprinting model would latch onto instead of position.

Note that mean-only alignment is not enough: first-order correction still leaves the discriminator around 60%, a clear residual signature. Only second-order alignment returns it to chance. That gap is the argument for CORAL.

The same effect appears in the paper's own diagnostics, viewed two ways: as a manifold and as a distribution:

Four-panel figure. Top-left: pre-mitigation UMAP feature manifold for AP1 showing training and raw testing points occupying different regions. Top-right: pre-mitigation probability density for subcarrier 5, where the training distribution is narrow and centred while the raw testing distribution is wide and shifted. Bottom-left: post-mitigation UMAP where aligned testing points interleave with training points. Bottom-right: post-mitigation densities that closely overlap.
Figure 3. Covariate shift, before and after mitigation. Left column: the UMAP feature manifold for AP1. Pre-mitigation, the raw test points (red) occupy their own regions of the manifold; post-mitigation, the aligned points (green) interleave with training data instead of forming a separate territory. Right column: the probability density of a single subcarrier. Pre-mitigation, the test distribution is both wider and shifted relative to training; post-mitigation the two curves nearly coincide.

The right-hand panels are the more damning of the two. A single subcarrier's amplitude distribution has visibly different variance, not merely a different mean, which is exactly why re-centring the data is insufficient and why the alignment has to operate on second-order statistics. The post-mitigation densities overlap almost entirely.

Running that analysis offline over my own captures gives the numbers the demo reproduces live (logistic discriminator, 52-D dB-amplitude features, averaged over 15 random splits):

Alignment‖Σr−Σt‖FSession discriminatorInterpretation
None (raw features)767.197.6%Sessions trivially separable
Mean only (first order)767.160.9%Residual signature remains
CORAL (second order)3.647.6%Indistinguishable, at chance

The middle row is the one worth pausing on: simply re-centring the data, the obvious first fix, removes only part of the problem. The covariance structure itself carries the session identity.

Experimental design

The evaluation protocol is the part I'd defend most strongly. A random train/test split on a CSI dataset leaks temporal context and flatters every model, neighbouring packets from the same second end up on both sides of the split.

  • Temporally disjoint test set. Train and test come from separate collection periods, so the model is evaluated on a genuinely unseen domain.
  • Unsupervised domain generalization. No target-domain labels are used at any stage.
  • Baseline. The dataset's published multi-node benchmark of 1.39 m, plus the CSILoc benchmark evaluated per node.
  • Metric. Mean Distance Error (MDE) in metres for 2D coordinate regression, reported per access point rather than pooled, pooling hides which nodes fail.

Results

0.60 mBest single-AP mean distance error
0.92 mSub-metre precision on ADC-saturated receivers
17.9–56.8%Improvement over CSILoc across all six nodes
1.39 mBenchmark the framework surpasses

Two results matter more than the headline number. First, the framework beats the CSILoc benchmark on all six nodes, not on average, but individually, which is the honest way to report multi-node localization. Second, receivers that conventional pipelines discard as unusable due to ADC saturation still deliver sub-metre precision at 0.92 m: the recovery step turns thrown-away data into working infrastructure.

Why the saturated receivers were recoverable

The 0.92 m result rests on a claim that needs evidence: that packets from a clipped front end still carry position information. Establishing that took a forensic look at the raw I/Q codes, before any model was involved.

Three panels. (a) Per-packet spectral maximum amplitude on AP5 including DC, collapsing onto two discrete rails at 2090.5 and 5202.6. (b) The same statistic using data subcarriers only, showing a continuous fading distribution. (c) Mean-spectrum location retrieval accuracy per access point compared with chance level, with the saturated nodes AP5 and AP6 highlighted.
Figure 4. Signal-level saturation forensics. (a) On AP5 the per-packet spectral maximum collapses onto two bit-exact rails (2090.5 and 5202.6): a quantized signature of discrete AGC gain states pinning the local-oscillator leakage line. Channel fading cannot produce that. (b) Excluding the DC subcarrier, the same statistic recovers a smooth, continuous fading distribution. (c) Mean-spectrum nearest-neighbour location retrieval against chance: the saturated nodes (AP5, AP6) retain location-discriminative structure comparable to the unimpaired nodes.

Panel (a) is the diagnosis. A genuinely random impairment would spread the spectral maximum across a continuum; instead it snaps to two exact values, because the automatic gain control is switching between discrete states and pinning the LO-leakage line at DC. On AP4–AP6 this pinned line is the spectral maximum in ≥99.7% of packets, against 58–63% on AP1 and AP3: a front end persistently driven to the top of its dynamic range.

Panel (b) is the reprieve. Remove that one artificial subcarrier and the underlying physics reappears intact. The corruption was concentrated in a component that carries no channel information at all.

StatisticAP1AP2AP3AP4AP5AP6
DC is spectral max (% packets)58.095.963.299.899.799.7
Median pinned DC amplitude343136613614513852033924
PAPR, 95th pct (excl. DC)4.494.554.384.893.933.98
Packet–eigenpattern coherence0.9270.9380.9360.9330.9360.935
Location retrieval (%)50.053.850.075.050.057.1
Chance level (%)3.83.83.31.87.13.6

The last two rows carry the argument. Retrieval on the saturated nodes reaches 50.0% and 57.1% against chance levels of 7.1% and 3.6%, an order of magnitude above chance, and squarely in the range of the unimpaired nodes (50.0–53.8%). Meanwhile the median packet-to-eigenpattern coherence on the saturated nodes (0.935–0.936) is statistically indistinguishable from the clean ones (0.927–0.938).

What this licenses

All of these statistics are computed deterministically from raw I/Q codes, before any learning. That ordering matters: it means the decision to recover saturated packets rather than discard them is justified by the physics of the capture, not retrofitted from a model that happened to work. The multipath topology survives dynamic-range compression, so the packets are recoverable information, not noise.

Sanity-checking the model

Headline accuracy can hide a model that has latched onto an artifact. We validated with 1D Grad-CAM over the subcarrier axis, confirming the network attends to physically meaningful regions of the channel response rather than to hardware-specific quirks, the same explainability instinct carried over from the medical-imaging work.

Latency: treating deployment as a result

An indoor positioning system that cannot run on the node is a paper, not a product. We profiled inference against the temporal window size W:

Window (W)Inference latencyInterpretation
W = 4030.50 msLatency optimum: the operating point we recommend
W = 70+0.24 msDeeper temporal context for negligible additional cost

The interesting finding is how flat that curve is: extending the window from 40 to 70 samples costs a quarter of a millisecond. Temporal context is nearly free here, which is not what you would assume from parameter count alone.

What didn't work, and what I'd caveat

Honest limitations

These are the boundaries of the claim, stated plainly.

  • Image-style abstractions were a dead end. Early experiments following the ConFi-style treatment of CSI as a 2D image plateaued: the model learned the collection session, not the geometry. This motivated the physics-aware reframing rather than deeper networks.
  • CORAL only aligns second-order statistics. Where drift changes higher-order structure (a fundamentally different multipath topology after major furniture rearrangement), covariance alignment cannot recover it. It buys robustness to gain and correlation drift, not to a new room.
  • Evaluated on one testbed. Results come from a single dataset's node deployment. Generalization across buildings and radio hardware families remains open.
  • Saturation recovery has a floor. Recovering clipped packets restores usable precision (0.92 m) but not parity with unsaturated receivers (0.60 m). Information destroyed by clipping is not fully recoverable, only partially reconstructible from physical constraints.

What I'd do next

  1. Cross-building generalization. Test whether the purified manifold transfers to a testbed with different geometry and hardware, which is the real claim I would like to make.
  2. Online adaptation. CORAL statistics can be updated incrementally from unlabelled traffic, turning day-to-day drift correction into a continuous background process rather than a retraining event.
  3. Higher-order alignment. Compare against adversarial and optimal-transport domain adaptation to quantify what second-order alignment leaves on the table.
  4. On-device measurement. The 30.5 ms figure is a profiling result; the honest next step is measuring on the actual IoT class of hardware, with the energy budget included.

Artifacts

Related work in this line: device heterogeneity in RSSI positioning (IEEE Access, 2025), the RSSI-domain predecessor to this framework.