siren_signal — DRIVE decide op

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

• 呼叫: import fullseye as fs; fs.ledger.siren_signal(duration: 'float', fs: 'float', *, f_high: 'float' = 960.0, f_low: 'float' = 770.0, period: 'float' = 1.3, source_start=(-60.0, 10.0), source_velocity=(15.0, 0.0), mics=((0.0, 0.0),), c: 'float' = 343.0, spreading: 'bool' = True, mic_velocity=(0.0, 0.0), mic_track=None) -> 'Dict[str, object]'(要直接呼叫實作,import drivedecide; drivedecide.siren_signal(duration: 'float', fs: 'float', *, f_high: 'float' = 960.0, f_low: 'float' = 770.0, period: 'float' = 1.3, source_start=(-60.0, 10.0), source_velocity=(15.0, 0.0), mics=((0.0, 0.0),), c: 'float' = 343.0, spreading: 'bool' = True, mic_velocity=(0.0, 0.0), mic_track=None) -> 'Dict[str, object]';從台帳取用則 opsdrive.get("siren_signal"))

用法

合成靜止麥克風聽到的移動救護車警笛(雙音交替)的聲音。

聲源 p(τ) = source_start + source_velocity·τ(2D、等速直線),發出的聲音為 sin φ(τ),φ 是讓高音 f_high 與低音 f_low 各以 period/2 交替鳴響的連續相位。麥克風 m 在時刻 t 聽到的聲音,是發聲時刻 τ 滿足

c (t − τ) = |p(τ) − m| ⇔ (c² − |u|²) s² + 2 (q·u) s − |q|² = 0, s = t − τ ≥ 0, q = p(t) − m

時的 sin φ(τ)(振幅在 spreading 時為 r_ref / r,r_ref = 最初的距離)。未使用都卜勒公式 (僅用到達時刻的幾何),因此是 doppler_track 門的獨立路徑。

mic_velocity = 麥克風(及搭載它的本車)的等速度(相對於空氣 = 地面。無風)。麥克風依 m(t) = m₀ + u_L t 運動。上式在令 q = p(t) − m(t) 時保持相同形式成立(c(t − τ) = |p(τ) − m(t)|、p(τ) = p(t) − u s)。進入 2 次方程式的 只有接收時麥克風的位置(聲源為等速),因此麥克風可以沿任意路徑運動:

逐樣本給出 mic_track = (位置 (k, n, 2),速度 (k, n, 2))時,會用它取代 mics / mic_velocity (搭載在減速並向左靠的本車上的麥克風。速度僅用於 dτ/dt 的閉式解)。

回傳值:t(n,)、signals(麥克風數, n)、tau(同)、f_emit(同,發出的頻率)、v_radial(同, 接近方向的距離變化率 −d|p(τ) − m(t)|/dt「換算為聲源視線速度的值」c(1 − 1/D),D = dτ/dt。麥克風靜止時與發聲時的 −ṙ 相同)、range_rate(同,接收時幾何距離 |p(τ) − m(t)| 的時間導數。負 = 接近)、f_true(同,= f_emit · dτ/dt。閉式解 dτ/dt = (c + r̂·u_L)/(c + r̂·u_S),r̂ = (p(τ) − m(t))/r 的單位向量)。

參考(範例資料、文獻)

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

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

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

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

• poc_driving_decisions — py -3.11 examples/poc_driving_decisions.py

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

course_layout · course_occupancy · course_contains · world_build · world_camera · world_move · lidar_scan · rss_longitudinal_same

同類別(decide)

mirror_reflection_matrix · mirror_virtual_camera · mirror_aim_normal · convex_mirror_fov · mirror_blind_zone · check_sequence_score · signal_phase_plan · signal_state


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

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