Dynamic Near-Field Fresnel Delay Tracking for Weak Cyclostationary Signal Detection in Long-Baseline Interferometry
Dynamic Near-Field Fresnel Delay Tracking for Weak Cyclostationary Signal Detection in Long-Baseline Interferometry Reference implementation and reproducibility package for the accompanying technical note (paper/main.tex, version 2). Evaluates three beamforming/delay-tracking regimes — Dynamic Fraunhofer, Static Fresnel, and Dynamic Fresnel — on an idealized 27-element VLA-A ("Y") array observing a synthetic DSSS/BPSK source at cislunar distance (R0 = 384,400 km, f_RF = 1.4 GHz), and reproduces Tables 1-4 of the paper. The badge above is the concept DOI, which always resolves to the latest version. Version 1 is archived at https://doi.org/10.5281/zenodo.22993273. Requirements pip install -r requirements.txt Requires only NumPy (see requirements.txt). Reproducing the results cd src python run_monte_carlo.py # Tables 1-2: three regimes, 5 seeds, SNR = -20 and -25 dB python sensitivity_analysis.py # Tables 3-4: tolerance to range, pointing and chirp-rate mismatch run_monte_carlo.py prints the time-averaged beam coherence of each regime and, per seed, the detected cyclic frequency and spectral prominence. The expected cyclic harmonic is alpha = 2*f_IF = 400.0 Hz; only the Dynamic Fresnel regime recovers it (10 of 10 runs across both SNR levels). Expected output (SNR = -20.0 dB, first two seeds): Coherence Fraunhofer Dynamic: 0.2437 (-12.26 dB) Coherence Fresnel Static: 0.1959 (-14.16 dB) Coherence Fresnel Dynamic: 1.0000 (0.00 dB) Seed 0: Fraun=[ 1966.0 Hz, 6.18 dB] | FresnStat=[ 18.5 Hz, 5.75 dB] | FresnDyn=[ 400.0 Hz, 13.65 dB] Seed 1: Fraun=[ 738.5 Hz, 5.30 dB] | FresnStat=[ 1917.5 Hz, 5.52 dB] | FresnDyn=[ 400.0 Hz, 13.55 dB] sensitivity_analysis.py perturbs one parameter at a time around the nominal configuration. Its chirp-rate table reports both the unpadded FFT (which shows scalloping loss) and an 8x zero-padded FFT (intrinsic loss). Repository structure ├── README.md ├── LICENSE ├── CITATION.cff ├── requirements.txt ├── paper/ │ └── main.tex <- manuscript (LaTeX source, version 2) └── src/ ├── vla_geometry.py <- 27-antenna VLA-A 'Y' array generator (power-law spacing) ├── delay_engine.py <- line-of-sight vector and Fraunhofer/Fresnel delay tensor ├── run_monte_carlo.py <- signal generation, three beamforming regimes, detector, Monte Carlo driver └── sensitivity_analysis.py <- range / pointing / chirp-rate mismatch study Scope and assumptions The simulations use oracle steering: the true pointing, range and chirp rate are given to the beamformer. sensitivity_analysis.py quantifies how much mismatch each parameter tolerates (pointing to about 0.5 arcsec is the binding constraint; range errors of order 10^4 km are nearly harmless). The per-antenna SNR values (-20 and -25 dB) are stress-test parameters, not a link-budget estimate for a specific transmitter. Not modeled: ADC quantization, local-oscillator phase jitter, ionospheric/tropospheric effects, wideband (true-time-delay) operation. These are listed as future work in the paper. Citation See CITATION.cff or use the DOI above.
Authors
- Hugo Ricardo Rosales González
Publication Details
- Journal
- Zenodo (CERN European Organization for Nuclear Research)
- Published
- 2026-09-28
- DOI
- https://doi.org/10.5281/zenodo.23022178
- Primary Topic
- Radio Astronomy Observations and Technology
- Type
- preprint