fmcw_design — RANGEDOPPLER design op

Datenarten: keinetable (ein Operator, der allein durch seine Argumente bestimmt ist — er nimmt kein Bild und keine Daten entgegen)

Aufruf: 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) (oder opsrangedoppler.get("fmcw_design"))

Verwendung

Bin-Breiten, Auflösungen und Aliasing-Grenzen einer FMCW-Konfiguration.

> Die ausführliche Beschreibung unten ist der Originaltext — Zusammenfassung und Überschriften sind übersetzt.

The paper answer to "will this waveform see what I care about?", with no data

and no simulation — the stance :mod: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 :func: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 :data: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)

Ausführlicher Anwendungsleitfaden

Leitfaden zur Familie fmcw_range_doppler

Referenzen (Beispieldaten, Literatur)

• Katalog der Beispieldaten (Download-URLs / Lizenzen) — 2-D nutzt skimage.data (BSD/Public Domain) plus synthetische Bilder, 3-D nennt Download-URLs echter Datenquellen (Stanford, PDS, …).

• Herkunft und Literatur der Operatoren — die Quellen der Forschung/Verfahren, auf denen diese Operatorfamilie beruht.

• Der kanonische Algorithmus (Autor, Jahr) und seine Anwendungen stehen im Familienleitfaden oben.

Ausführbare Beispiele (verifizierte Samples, die diesen Operator wirklich aufrufen)

fmcw_range_dopplerpy -3.11 examples/fmcw_range_doppler.py

Typkompatible Folge-Operatoren (nehmen table als Eingabe)

Gleiche Kategorie (design)


*Provenance: rangedoppler.py — RANGEDOPPLER Operator-Registry. Diese Notiz wird von tools/opdocs.py md erzeugt (nicht von Hand bearbeiten).*

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