design op• Data kinds: कोई नहीं → table (केवल arguments से तय होने वाला op — यह कोई image या data input नहीं लेता)
• Call: import fullseye as fs; fs.ledger.fmcw_design(n_samples=64, n_chirps=32, sample_rate_hz=10000000.0, slope_hz_per_s=20000000000000.0, chirp_period_s=5e-05, wavelength_m=0.0038934, n_antennas=1, element_spacing_m=None) (implementation को सीधे call करना हो तो import rangedoppler; rangedoppler.fmcw_design(n_samples=64, n_chirps=32, sample_rate_hz=10000000.0, slope_hz_per_s=20000000000000.0, chirp_period_s=5e-05, wavelength_m=0.0038934, n_antennas=1, element_spacing_m=None), registry से लेना हो तो opsrangedoppler.get("fmcw_design"))
FMCW configuration की bin widths, resolutions और aliasing सीमाएँ।
> नीचे का विस्तृत विवरण मूल text में है — सारांश और headings का अनुवाद हो चुका है।
The paper answer to "will this waveform see what I care about?", with no data and no simulation — the stance visiondesign takes for optics. Every number is closed form:
============================== ============================================
quantity formula
============================== ============================================
swept bandwidth B = S * N_s / f_s
range bin / resolution dR = c / (2B) = c*f_s / (2*S*N_s)
max unambiguous range R_max = c*f_s / (2S) (= N_s * dR)
beat frequency per metre 2S/c
velocity bin / resolution dv = lambda / (2*N_c*T_c)
max unambiguous velocity v_max = lambda / (4*T_c) (= N_c*dv/2)
Doppler phase per (m/s) 4*pi*T_c / lambda rad per chirp
coherent processing interval N_c * T_c
max unambiguous angle asin(lambda / (2d))
angular resolution (boresight) 0.886 * lambda / (N_a * d) ============================== ============================================
The two "max" figures are hard aliasing limits, and they are the same
numbers fmcw_beat_simulate refuses to cross. The angular resolution is the 3 dB beamwidth of a uniform linear array at boresight (Van Trees 2002, §2.4); it widens as 1/cos(theta) off boresight, which this does not report because it is a function, not a number.
cube_elements and cube_mebibytes are included because "small input, huge allocation" is the failure mode of this family: the cube grows as N_a * N_c * N_s and complex128 is 16 bytes a sample.
Returns a dict. Raises ValueError on a non-positive or non-finite parameter, a wavelength over MAX_WAVELENGTH_M, or a count outside its cap.
>>> d = fmcw_design()
>>> round(d["range_bin_m"], 6), round(d["max_unambiguous_velocity_ms"], 6)
(1.171064, 19.467)
• fmcw_range_doppler family guide
• 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 में दिए गए हैं।
• fmcw_range_doppler — py -3.11 examples/fmcw_range_doppler.py
table को input के रूप में लेते हैं)—
design)—
*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.