range_doppler_map — RANGEDOPPLER process op

• Data kinds: beatcube → image2d

• Call: import fullseye as fs; fs.ledger.range_doppler_map(cube, combine='incoherent', antenna=None, normalize=False) (implementation को सीधे call करना हो तो import rangedoppler; rangedoppler.range_doppler_map(cube, combine='incoherent', antenna=None, normalize=False), registry से लेना हो तो opsrangedoppler.get("range_doppler_map"))

उपयोग

beat cube का 2-D FFT -> (n_doppler, n_range) magnitude map।

> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।

Fast time transforms to range (last axis, not shifted: bin j is j * c*f_s/(2*S*N_s) metres, and a physical range is always positive so the whole [0, f_s) band is used). Slow time transforms to velocity (middle axis, fftshifted so the map is centred on zero velocity: bin i is (i - N_c//2) * lambda/(2*N_c*T_c) metres per second, positive = receding).

The antenna axis is collapsed by *combine*: "incoherent" (default) is the mean of the magnitudes, which is angle independent and therefore the right default for detection; "coherent" is the magnitude of the mean, i.e. a beam pointed at boresight, which attenuates an off-boresight target on purpose. antenna=k uses element k alone. For a single-element cube all three agree exactly.

normalize=True divides by N_c * N_s, so a bin-centred target of amplitude a peaks at exactly a (measured: 1.0 for a unit target, absolute error 0.0). The default False keeps the raw FFT magnitude.

No window is applied — compose fmcw_window_apply first if you want one. The output is a plain 2-D float64 array, so every 2-D operator in Fullseye (threshold, morphology, labelling, blob measurement — the pieces a CFAR detector is made of) applies to it directly.

Raises ValueError: a real-valued cube (it would put a mirror ghost of every target at a fabricated range), fewer than 2 chirps or 2 samples, an out-of-range *antenna* index, an unknown *combine*, a cube over the element cap, an FFT that overflows to NaN, or NaN/Inf on the way in.

उपयोग की विस्तृत guide

• fmcw_range_doppler family guide

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

• Algorithm का मानक स्रोत (लेखक, वर्ष) और उपयोग ऊपर की family usage guide में दिए गए हैं।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• fmcw_range_doppler — py -3.11 examples/fmcw_range_doppler.py

वे अगले ops जिनसे type जुड़ता है (image2d को input के रूप में लेते हैं)

range_doppler_peaks

इसी category के (process)

fmcw_window_apply · range_doppler_peaks · fmcw_range_profile


*Provenance: rangedoppler.py — RANGEDOPPLER operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.