fmcw_design — RANGEDOPPLER 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)

उपयोग की विस्तृत 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 जुड़ता है (table को input के रूप में लेते हैं)

—

इसी category के (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.