This repository presents an end-to-end deep learning framework for sparse target reconstruction in Orbital Angular Momentum (OAM) radar imaging. The central challenge in OAM-based imaging is the inherent ill-posedness of the observation matrix
We address this at the physical level through two complementary strategies: (1) Virtual Array Shifting, which introduces per-frequency lateral displacements of the transmit/receive array to break the structural symmetry of the measurement model, and (2) Phase-Randomized Sampling, which injects fixed random phase offsets per receiver to reduce mutual coherence across measurement rows. Together, these interventions reduce the condition number of
Built on this physically stabilized observation model, a compact End-to-End Reconstruction Network achieves a median PSNR of 70.00 dB on held-out test data, converging within 30 training epochs.
Rather than compensating for a poorly conditioned forward model through increased network capacity, this work optimizes
| Strategy | Mechanism | Effect |
|---|---|---|
| Virtual Array Shifting | Per-frequency lateral displacement of the UCA | Breaks rotational symmetry; diversifies row-space of |
| Phase-Randomized Sampling | Fixed random phase offset |
Reduces pairwise mutual coherence between measurement rows |
| Wideband Multi-Frequency | 8 frequencies spanning ±25% bandwidth | Multiplies effective rank by factor |
Before optimization: condition number
The network (src/model.py) maps complex measurement vectors
- Input normalization: per-sample L2 normalization with a learned scale parameter, making the network invariant to scene energy variation.
-
Feature extractor: three-layer MLP with LayerNorm and GELU activations (
hidden_dim=768). -
Spatial decoder: transposed convolution upsampling
$6 \times 6 \to 12 \times 12 \to 24 \times 24$ with residual refinement blocks. -
Loss function: combined L1 + L2 loss (
$\alpha = 0.5$ ), promoting both sparsity and smoothness.
scripts/diagnose_physics.py is the core methodology validation tool. It performs a systematic parameter sweep over array configurations and reports:
- Singular value spectrum and effective rank
- Condition number
- Mutual coherence
$\mu$ of column-normalized$\Phi$ - Per-mode Bessel function coverage over the target region
-
$\ell = 0$ mode redundancy (pairwise cosine similarity)
This script should be run before any training to verify that the chosen physical parameters yield a computationally tractable observation matrix.
Evaluated on 1,000 held-out test samples (fixed seed, no augmentation):
| Metric | Value |
|---|---|
| PSNR (Median) | 70.00 dB |
| PSNR (Mean ± Std) | 63.06 ± 14.54 dB |
| MAE (Mean) | 0.0004 |
| RMSE (Mean) | 0.0057 |
| Samples evaluated | 1,000 |
PSNR is capped at 70 dB to prevent trivially easy near-empty samples from dominating aggregate statistics.
Normalized singular value spectrum comparing the static baseline vs. the proposed virtual-shift configuration. The proposed method yields consistently higher singular values across all indices, indicating improved conditioning (κ = 2.87×10⁸ vs. 3.66×10⁸).
Ground truth (left) vs. network reconstruction (right) on a representative held-out test sample. Sharp edges, circular boundaries, and central-region targets are faithfully recovered.
Validation PSNR and training loss over 30 epochs. PSNR peaks at 77.9 dB at epoch 25; training loss drops from 1.2×10⁻¹ to 9.0×10⁻⁵.
.
├── src/
│ ├── physics.py # OAM radar geometry; generates observation matrix Φ
│ ├── dataset.py # Synthetic sparse target dataset with augmentation
│ ├── model.py # End-to-end reconstruction network and combined loss
│ └── train.py # Training loop with mixed-precision and LR warmup
├── scripts/
│ ├── diagnose_physics.py # Physical stability diagnostic (run before training)
│ ├── evaluate.py # Quantitative evaluation: PSNR, MAE, RMSE
│ ├── baseline_tikhonov.py # Tikhonov regularization baseline (Table II)
│ └── plotting/
│ ├── visualize.py # Qualitative reconstruction visualization
│ ├── plot_paper_figures.py
│ └── plot_convergence.py
├── outputs/
│ ├── best_model.pth # Best checkpoint (saved by PSNR)
│ └── training_history.json # Per-epoch loss and PSNR curves
├── results/
│ └── evaluation_metrics.json
├── figures/
│ ├── fig1_singular_values.pdf # SVD spectrum figure (paper Fig. 1)
│ ├── reconstruction_sample.png # Reconstruction comparison (paper Fig. 2)
│ └── convergence_profile.png # Training convergence (paper Fig. 3)
└── requirements.txt
pip install -r requirements.txtRequirements (requirements.txt):
torch>=2.0.0
numpy>=1.24.0
scipy>=1.10.0
matplotlib>=3.7.0
tqdm>=4.65.0
Pillow>=9.5.0
For GPU support, install PyTorch with the appropriate CUDA version from pytorch.org.
Before training, verify that the observation matrix is computationally tractable:
python scripts/diagnose_physics.pyKey indicators to check:
- Condition number
$\kappa < 10^{9}$ - Effective rank (SV > 1% of max)
$\geq 100$ - Mutual coherence
$\mu < 0.5$ -
$\ell = 0$ pairwise cosine similarity$< 0.9$
python src/train.pyThe best checkpoint is saved to outputs/best_model.pth. Training history is written to outputs/training_history.json.
Default configuration: 30 epochs, batch size 64, AdamW with cosine annealing and 10-epoch linear warmup, 30,000 training samples.
python scripts/evaluate.py --checkpoint_path outputs/best_model.pthpython scripts/visualize.pyOutput is saved to figures/reconstruction_sample.png.
If you use this work, please cite:
@misc{chen2026oam,
author = {Jiayan Chen},
title = {OAM Radar Imaging via Space-Frequency Diversity},
year = {2026},
note = {GitHub repository},
url = {https://github.com/Dryoung95/OAM-Spatial-Diversity}
}This project is licensed under the MIT License.
MIT License
Copyright (c) 2026 Jiayan Chen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

