fmcw_beat_simulate — RANGEDOPPLER simulate op

資料種類:beatcube(僅由參數決定的運算子 —— 不接受影像或資料輸入)

呼叫:import rangedoppler; rangedoppler.fmcw_beat_simulate(ranges_m=(10.0,), velocities_ms=(0.0,), angles_deg=None, amplitudes=None, n_samples=64, n_chirps=32, n_antennas=1, sample_rate_hz=10000000.0, slope_hz_per_s=20000000000000.0, chirp_period_s=5e-05, wavelength_m=0.0038934, element_spacing_m=None, phase_deg=0.0, noise_sigma=0.0, seed=0)(或 opsrangedoppler.get("fmcw_beat_simulate"))

用法

為已知目標合成複數 `(A, C, S)` 拍頻立方體。

> 以下的詳細說明為原文 —— 摘要與標題已翻譯。

The forward model. Every target `t` contributes

`a_t * exp(1j*(2*pi*f_b_t*n/f_s + 2*pi*f_d_t*m*T_c + 2*pi*d*k*sin(th_t)/lam + phi))`

over fast-time sample `n, chirp m and antenna k`, with

`f_b = 2*S*R/c and f_d = 2*v/lambda`. Contributions add linearly, which

is what makes a multi-target cube a valid ground truth: each target's peak

stands at its own bin regardless of the others.

Sign conventions (see the module docstring): `velocities_ms` is

`dR/dt`, so positive is receding and lands in a positive Doppler bin;

`angles_deg` is measured from array boresight and a positive angle advances

the phase of the higher-index elements.

*amplitudes* defaults to 1.0 for every target — there is no radar equation

here, no `1/R^4`, no propagation loss (module docstring, honest limits).

*noise_sigma* adds circular complex Gaussian noise with that per-component

standard deviation, drawn from `numpy.random.default_rng(seed)`; the

default 0.0 returns the exact noiseless cube, which is what the closed-form

tests compare against.

Ground truth: a target placed at an exact bin centre — `R = j*dR` and

`v = i*dv from :func:fmcw_design` — puts the whole of its energy in bin

`(i, j) of :func:range_doppler_map`, whose peak magnitude is then exactly

`a * N_s * N_c`. Measured on the default configuration: the peak magnitude

is bit-exactly 2048.0 (`N_s*N_c`, relative error 0.0), the largest other

cell in the map is 2.6e-16 of it, and with three targets at different bins

and different amplitudes the recovered ranges and velocities are exact to

0.0 metres and 0.0 m/s with amplitudes within 5.6e-17. See

`tests/test_rangedoppler.py`.

Raises `ValueError: a range at or beyond c*f_s/(2S)`, a speed at or

beyond `lambda/(4*T_c), an angle at or beyond asin(lambda/(2d))` — the

three aliasing limits, refused rather than folded silently; a non-positive

range; mismatched target-list lengths; a cube over

:data:MAX_CUBE_ELEMENTS (checked *before* allocation); a negative

amplitude or noise sigma; a non-integer seed; and the usual

string/bool/complex/NaN scalar refusals.

詳細使用指南

fmcw_range_doppler 族使用指南

參考(範例資料・文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

• 演算法的正典(作者・年份)與用途見上面的族使用指南

可執行的範例(實際呼叫該運算子並已驗證的樣例)

fmcw_range_dopplerpy -3.11 examples/fmcw_range_doppler.py

型別可銜接的下一個運算子(可接受 beatcube 作為輸入)

fmcw_window_apply · range_doppler_map · fmcw_range_profile · beamform_delay_sum · beamform_doa

同類別(simulate)


*Provenance: rangedoppler.py — RANGEDOPPLER 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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