typed op• 数据种类:beatcube → beatcube
• 调用:fullseye.apply(img, "tb_fmcw_window_apply", a=0.5, b=0.5)(2-D 的模型是一张图 + 两个标量旋钮 a,b∈[0,1])

*图为在 128×128 合成输入上实际运行的输出。左为输入,右为输出。点云以俯视散点显示(亮度 = z),一维序列为折线,体数据为沿 z 的最大值投影,视频为中间帧,复数图像为幅值;无法成像的返回值直接显示数值。*
*旋钮 a 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*
*旋钮 b 不改变输出(实测: 0.1 / 0.5 / 0.9 相同)。*
阶段(前置算子 → 本算子,从左到右):
▸ tb_fmcw_window_apply: stages (docs site)
换别的图像(合成场景 / 照片 / 硬币。上排为输入,下排为对应输出。旋钮取默认):
▸ tb_fmcw_window_apply: other inputs (docs site)
沿差频立方体的距离和/或多普勒轴施加周期性窗函数。
> 以下的详细说明为原文 —— 摘要与标题已翻译。
The sidelobes of a rectangular (unwindowed) transform are -13.3 dB, so a
strong target buries a weak one 20 dB down at a completely different range.
Windowing trades main-lobe width for sidelobe level; the published figures
(Harris 1978, Table 1) and the levels measured in this repository on a
single bin-centred target are:
========== ============== ============== ==================
window published PSL measured PSL measured -3 dB lobe
========== ============== ============== ==================
rect -13.3 dB -13.25 dB 0.885 bin
hann -31.5 dB -31.47 dB 1.438 bin
hamming -42.7 dB -42.45 dB 1.301 bin
blackman -58.1 dB -58.11 dB 1.641 bin
========== ============== ============== ==================
Measured by transforming each window on its own with 2^18-point zero padding
and taking the highest lobe past the first null — that *is* the definition of
peak sidelobe level, so these are the module's own numbers, not copied ones.
Hamming lands 0.25 dB off the published figure because the published one is
for the optimal 0.53836/0.46164 pair; the 0.54/0.46 coefficients written here
are the textbook ones and this is what they actually give.
What it buys, measured end to end: a target 45 dB below a strong one, seven
range bins away, is undetectable unwindowed (its cell sits 24.6 dB down
in the leakage skirt and is not even a local maximum) and becomes a clean
local maximum at -43.6 dB with `hann`. That comparison is step 4 of
`examples/fmcw_range_doppler.py`.
*axis* is named by role — `"range"` (fast time, the last axis),
`"doppler" (slow time, the middle axis) or "both"` — never by number,
because a transposed cube is the mistake this naming is defending against.
The window is *not* folded into :func:range_doppler_map: keeping it a
separate op is what lets the sidelobe table above be measured as a
difference, and keeps the transform op a pure 2-D FFT.
Returns a new complex cube of the same shape. Raises `ValueError` on a
real-valued or malformed cube, or an unknown *window* / *axis*.
Typed bridge of the rangedoppler op `fmcw_window_apply into the 2-D evolution registry: the same implementation, called under the op(v, a, b) convention. This op has no tunable parameter; a and b` are unused.
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
下面的程序已确认可以运行(与图相同的输入)。在 Studio 帮助中,此块会变成按钮,可当场加载并运行。
img_to_beatcube 0.50 0.50 tb_fmcw_window_apply 0.50 0.50
▸ Load this pipeline · Load & run
下面的示例调用的是底层账本算子 fmcw_window_apply。此桥接算子只是把同一实现适配为 fn(v, a, b) 约定,行为完全相同(只是调用形式不同)。
• fmcw_range_doppler — py -3.11 examples/fmcw_range_doppler.py
beatcube 作为输入)identity · tb_range_doppler_map · tb_fmcw_range_profile · tb_beamform_delay_sum
typed)tb_points_to_voxel · tb_estimate_point_normals · tb_iss_keypoints · tb_project_points · tb_render_point_depth · tb_statistical_outlier_removal · tb_radius_outlier_removal · tb_voxel_grid_downsample
*Provenance: ops.py — 2D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.