Skip to content

Repository files navigation

📡 SAP-ISTA-Net — Reproduction & Extension

An independent PyTorch reproduction of SAP-ISTA-Net (Li et al., IEEE Sensors Journal, 2025), a deep-unfolding network for multichannel radar forward-looking superresolution imaging — extended with a random sparse-subarray selection scheme and full statistical robustness testing.

PyTorch Radar Reproduction License

⚠️ Not affiliated with the original authors. This is an independent academic reproduction built for graduate research purposes. All credit for the original SAP-ISTA-Net architecture and theory belongs to the paper's authors (see Citation).


📖 Background

Multichannel forward-looking radar suffers from poor azimuth resolution near the platform's flight path — a fundamental limitation of small real apertures. The original paper addresses this with SAP-ISTA-Net: a deep-unfolding network that maps the iterations of the Iterative Shrinkage-Thresholding Algorithm (ISTA) into a trainable multilayer architecture (ISTA-Net), and fuses its output with conventional single-channel synthetic aperture (backprojection) processing to resolve left/right ambiguity — combining the noise-robustness of a learned model with the resolution gains of synthetic aperture accumulation.

This repository reproduces that architecture end-to-end in PyTorch, following the paper's exact equations and hyperparameters, and adds an original extension described below.

🎯 What's Novel in This Repository

The original paper evaluates a fixed 16-channel receiving array. This project instead asks: what happens if we only have 16 working antennas out of a much larger 100-element array, and which 16 aren't known in advance?

  • Each training/evaluation snapshot randomly selects 16 of 100 antenna positions (without replacement) to build the steering matrix — a sparse-aperture robustness scenario not present in the source paper.
  • Independent RNG streams are used for target-scene generation vs. antenna-subset selection, so scene randomness and array randomness never get conflated in the statistics.
  • A Monte Carlo stability study (500 trials per SNR level) quantifies how sensitive reconstruction quality is to which 16 antennas happen to be active, reporting mean, standard deviation, and coefficient of variation (CV%) of NMSE.
  • A full antenna-count sweep (16 / 32 / 64 / 100) compares fixed uniform subarrays against random subarrays, exposing a non-monotonic effect at low antenna counts (see Results) that is reported as-is rather than smoothed over.

🛠️ Bugs Found & Fixed During Reproduction

Re-deriving the paper's equations from scratch surfaced several implementation pitfalls that are easy to get wrong and don't show up as errors — only as silently bad reconstructions:

  • Sign error in the ISTA gradient step. An early implementation had the wrong sign in the r = σ̂ + β·Aᴴ(s − A·σ̂) update (Eq. 16), which doesn't crash training but quietly makes the network converge to a systematically biased solution.
  • Steering matrix normalization. The steering matrix A (Eq. 8–11) needed consistent scaling between the analytical model and the learned network; a mismatch here silently distorts the model's implicit noise assumptions.
  • Hyperparameter mismatch with Table I. An earlier version used N_f=8 and kernel_size=5; corrected to N_f=32, kernel_size=3, L=9 to match the paper exactly.
  • Non-independent RNG streams. Originally, scene generation and antenna-subset selection shared one RNG, which subtly invalidates Monte Carlo comparisons across conditions. Fixed by giving each randomness source (rng_scene, rng_ant) its own independent stream.

📊 Results

Training convergence

Total loss (L1 discrepancy + η·L2 symmetry-constraint, Eq. 22–24) over 150 epochs, for the random 16-of-100 antenna scenario:

Loss convergence

Point-target reconstruction

Azimuth profile comparison across the processing chain — single-channel backprojection, classic ISTA, ISTA-Net, and the fused SAP-ISTA-Net — for four closely-spaced point targets:

Final method comparison

Single-target grating-lobe ambiguity

Demonstrates how the sparse 16-of-100 subarray produces grating-lobe ambiguity in raw backprojection, and how the fused network output suppresses it:

Single target ambiguity demo

Full 2D image reconstruction

Range-azimuth reconstruction with a random 16-of-100 subarray at SNR = 20 dB and 10 dB:

2D reconstruction

MSE vs. SNR

Classic ISTA vs. the trained ISTA-Net across SNR levels:

MSE vs SNR

Effect of antenna count

Full array vs. random subarray, evaluated at NMSE and PSNR for 16/32/64/100 active antennas:

Antenna count comparison

Antennas NMSE (Uniform) NMSE (Random) PSNR (Uniform) PSNR (Random)
16 0.468 ± 0.192 0.312 ± 0.217 18.6 ± 2.5 dB 21.2 ± 4.1 dB
32 0.031 ± 0.072 0.082 ± 0.099 33.1 ± 4.9 dB 28.1 ± 5.2 dB
64 0.034 ± 0.106 0.041 ± 0.111 35.3 ± 5.7 dB 34.2 ± 5.9 dB
100 0.037 ± 0.113 0.036 ± 0.113 35.8 ± 6.1 dB 35.7 ± 5.8 dB

Honest note: at 16 antennas, random selection slightly outperforms uniform selection, while at 32 antennas the opposite holds. This is reported as observed rather than explained away — a plausible hypothesis is that uniform spacing at very low counts creates a large, regular grating-lobe pattern the network hasn't learned to suppress as well, while a random 16-subset spreads ambiguity more diffusely, but this repository does not claim to have proven that mechanism.

Subarray selection sensitivity

Reconstruction MSE across 60 different random 16-antenna configurations, as a function of the selected subarray's effective aperture:

Subarray sensitivity

Monte Carlo stability (500 trials/SNR)

Distribution of NMSE across 500 independent random subarray draws at each SNR level:

Monte Carlo stability

SNR (dB) NMSE (mean ± std) CV (%) PSNR (mean)
10 0.283 ± 0.148 52.2% 21.08 dB
15 0.209 ± 0.113 54.1% 22.46 dB
20 0.207 ± 0.122 59.0% 22.53 dB

Computational cost (Table II style)

Computation time comparison

Method Time
Classic ISTA (real aperture) 2.3 ms
ISTA-Net (real aperture) 3.2 ms
Multichannel BP (multichannel SAR) 0.3 ms
SAP-ISTA-Net (proposed, full fusion) 18.3 ms

Consistent with the original paper's finding: the learned network adds negligible overhead over classic ISTA, and the full fused pipeline remains fast enough for practical use.

🧪 Methodology Map (Code ↔ Paper Equations)

Code component Paper reference
RadarParams Table I
select_random_subarray, build_steering_matrix Eq. (8)–(11) (+ this repo's random 16-of-100 selection)
ISTANetLayer (linear update) Eq. (18)
ISTANetLayer (soft-threshold, FeatureNet/Inv) Eq. (17), (19), (20)
symmetry_err Symmetry term inside Eq. (23)
train_model (L1 + η·L2) Eq. (22)–(24)
classical_ista Eq. (15)–(17), baseline
synthetic_aperture_bp Eq. (5), (6)
fuse_sap_ista_net Eq. (25)

🚀 Getting Started

git clone https://github.com/sheyda2021/sap-ista-net-reproduction.git
cd sap-ista-net-reproduction
pip install -r requirements.txt
jupyter notebook SAP-ISTA-Net_Final.ipynb

Requirements

torch>=2.0.0
numpy>=1.24.0
matplotlib>=3.7.0
jupyter>=1.0.0

🗂️ Project Structure

.
├── SAP-ISTA-Net_Final.ipynb        # Full implementation + all experiments
├── loss_curve.png
├── final_comparison.png
├── single_target_ambiguity_demo.png
├── overlay_comparison_demo.png
├── full_2d_reconstruction.png
├── mse_vs_snr.png
├── antenna_count_comparison.png
├── subarray_sensitivity.png
├── monte_carlo_stability.png
├── computation_time_table2.png
├── requirements.txt
├── LICENSE
└── README.md

⚠️ Limitations

  • All experiments are on simulated point-target and synthetic 2D scenes, matching the paper's simulation setup — not on measured radar data (the paper additionally validates on measured mmWave data, which this reproduction does not include).
  • The random-subarray robustness study is this repository's own extension and has not been peer-reviewed; treat the antenna-count non-monotonicity as an empirical observation, not a proven result.
  • Training set size (2,000 scenes) differs from the paper's reported 150 image/echo pairs, since robust learning across many random subarray realizations benefits from more training samples — this is a deliberate deviation, not an oversight.

📚 Citation & Original Paper

This project reproduces and extends the method described in:

W. Li, R. Chen, M. Zhou, K. Zhang, Z. Wang, W. Pu, J. Wu, and J. Yang, "SAP-ISTA-Net: Synthetic Aperture Processing Assisted ISTA Network for Multichannel Radar Forward-Looking Superresolution Imaging," IEEE Sensors Journal, vol. 25, no. 9, pp. 15668–15678, May 2025, doi: 10.1109/JSEN.2025.3551167.

If you use this reproduction, please cite the original paper above. This repository is an independent academic implementation for learning/research purposes and is not endorsed by or affiliated with the original authors or IEEE.

👤 Author

Sheyda Graduate researcher in radar signal processing, ML, and applied data science. GitHub

📄 License

Code in this repository is released under the MIT License (see LICENSE). This does not extend to the original paper's text or figures, which remain © IEEE 2025.

About

An independent PyTorch reproduction of SAP-ISTA-Net (Li et al., IEEE Sensors Journal, 2025), a deep-unfolding network for multichannel radar forward-looking superresolution imaging — extended with a random sparse-subarray selection scheme and full statistical robustness testing.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages