跳转到内容

UE YAML 参考

UE 从启动时的当前工作目录读取 UE.yaml。建议先复制与硬件和场景匹配的 config/UE_*.yaml 模板,再在副本上修改。配置不会在运行中自动重载;修改后需要重启 UE。

下表按 YAML 顶层结构排列,并使用 uplink.arq_enabled 这样的完整路径区分同名字段。“典型值”用于说明常见配置,不代表所有模板的默认值。可选配置节省略时,程序使用解析器默认值。

帧结构、上下行双工、频率和资源映射等联动参数必须与 BS 配置一致。

参数类型/单位典型值说明
radio.radio_backendstringuhd无线设备输入/输出后端。uhd 使用 USRP,sim 使用信道仿真器,xr1710g 使用 CPU 纯接收后端。
radio.xr1710g_shmstring/xr1710g-live外部单路主机接收程序的 POSIX 共享内存名称。
radio.xr1710g_center_freqfloat / Hz2442000000必填:从 XR1710G 控制器读取的实际源 LO;此字段不执行射频调谐。
radio.xr1710g_attach_timeout_sfloat / s5等待主机接收服务的时间,范围 0–3600 秒。
radio.xr1710g_pll_commandstring""可选的常驻 PLL 控制命令,在接收电脑执行。留空使用软件 NCO;配置后通过硬件 LO 微调校正 ±100 kHz 内的频偏,见下方接入说明。

CPU 纯接收 UE 可选择 radio.radio_backend: xr1710g。 支持的采样率、控制方式和时间戳限制见 XR1710G 接入说明。

参数类型/单位典型值说明
simulation.sessionstringoisac_simBS、UE 和 ChannelSimulator 共用的仿真会话名称;三者必须一致。
simulation.enable_comm_rxbooltrue仿真器生成通信 RX 路径。
simulation.enable_sensing_rxbooltrue仿真器生成感知 RX 路径。
simulation.enable_uplinkboolfalse仿真器转发 UE 到 BS 的上行流。
simulation.pacing_enabledbooltrue按实时采样速率调节仿真输出节奏。
simulation.noise_power_dbfsfloat / dBFS-100每个 RX 通道的 AWGN 功率。
simulation.snr_control_enableboolfalse通过缩放干净仿真信号维持 target_snr_db。
simulation.target_snr_dbfloat / dB40开启 SNR 控制时的目标 SNR。
simulation.control_portint10002ChannelSimulator 控制端口。
simulation.cfo_hzfloat / Hz0UE 下行 RX 校正前的 BS→UE 初始载波频偏。UE→BS 初始频偏符号相反,FDD 下还会按上下行载频比缩放;之后随 UE 上行 TX retune 动态更新残余 CFO。
simulation.sample_rate_offset_ppmfloat / ppm0UE 相对 BS 的采样钟偏差。
simulation.timing_offset_samplesint / samples0固定整数采样延迟。
simulation.array_spacing_mfloat / m0.04283ULA 物理阵元间距。
simulation.array_spacing_lambdafloat0.5按波长归一化的旧版 ULA 间距。
simulation.ring_capacity_samplesint262144每条共享内存数据流的环形缓冲区容量。
simulation.steering_override_filestring""可选的阵列流形矩阵文件;留空时按 angle_deg 生成 ULA 阵列流形。配置该文件后,angle_deg 不再参与阵列响应计算,角度对应的幅相响应需预先写入矩阵。
simulation.comm_multipath_taps[]object[]可选通信抽头延迟线的静态多径抽头,字段为 delay_samples、gain_db、phase_deg。
simulation.targets[]object[]可选单站点目标。
simulation.bistatic_targets[]object[]可选双站/通信点目标。
参数类型/单位典型值说明
rf_sampling.sample_ratefloat / Hz50000000基带采样率。
rf_sampling.bandwidthfloat / Hz50000000模拟带宽。
rf_sampling.rx_gainfloat / dB10UE 下行 RX 增益。
rf_sampling.rx_agc_enablebooltrue开启 UE 下行硬件 RX AGC。
rf_sampling.rx_agc_low_threshold_dbfloat / dB14滤波后时延谱主峰低于该阈值时提高增益。
rf_sampling.rx_agc_high_threshold_dbfloat / dB16主峰高于该阈值时降低增益。
rf_sampling.rx_agc_max_step_dbfloat / dB1单次 RX AGC 最大步进。
rf_sampling.rx_agc_update_framesint4两次 AGC 更新之间最少处理帧数。
参数类型/单位典型值说明
usrp_device.device_argsstringaddr=...USRP 设备参数,例如网络地址。
usrp_device.clock_sourcestringexternalUE 时钟源:internal、external 或 gpsdo。
usrp_device.time_sourcestringinternalUE 时间/PPS 源。空值按 internal 处理;pps_phase 要求它与 clock_source 都显式为 external。

只要 usrp_device.clock_source 非空,CPU、CUDA 和 HIP UE 都会在任何 stream 开始前执行严格的 device-time 对齐,该步骤与所选 sync_tracking.ocxo_mode 无关。 这也包括 time_source: internal;time_source 只选择 PPS 输入,不再决定是否 执行启动对齐。启动过程先观察一次 PPS 跳变,再武装 set_time_next_pps(0),并等待 device time 计数器确实回跳且 time_last_pps=0;PPS 缺失、backend 不支持或验证 失败都会中止启动。对 gpsdo,对齐会有意 用零点替换原有的类 UTC device-time epoch。该步骤对齐软件时间原点,但 X310 在 200 MHz master clock 下仍保留 5 ns 的 PPS 捕获量化。

参数类型/单位典型值说明
ofdm_frame.fft_sizeint1024OFDM FFT 点数。
ofdm_frame.cp_lengthint / samples128循环前缀长度。
ofdm_frame.sync_posint1同步符号索引。
ofdm_frame.enable_sec_sync_symbolboolfalse期望 sync_pos-1 处存在重复 ZC 同步符号。
ofdm_frame.enable_cfo_training_sequenceboolfalse使用 sync_pos+1 CFO training field 解析 CFO alias。
ofdm_frame.cfo_training_period_samplesint / samples16CFO training 重复周期。
ofdm_frame.num_symbolsint100每帧 OFDM 符号数。
ofdm_frame.sensing_symbol_numint100参与感知的符号数。
ofdm_frame.frame_queue_sizeint32解调 RX 帧队列容量。
ofdm_frame.zc_rootint29Zadoff-Chu 根。
ofdm_frame.pilot_positionsint[][571,...]梳状导频子载波索引。
ofdm_frame.midframe_pilot_symbolsint[][]可选帧内 BPSK 导频符号。
ofdm_frame.midframe_pilot_seedint1296453708确定性帧内 BPSK 导频种子。
参数类型/单位典型值说明
cuda.cuda_precision_profilestringfp32fp32 完全保留现有路径;mixed_fp16 对批量 OFDM FFT/IFFT 和 GPU LDPC 消息使用 FP16,信道估计、跟踪、均衡、感知和 LLR 生成仍使用 FP32。不支持的 FP16 FFT 形状会自动回退 FP32。
cuda.cuda_demod_pipeline_slotsint3CUDA 解调流水线 slot 数。
cuda.cuda_ldpc_decoder_backendstringgpuCUDA 解调使用的 LDPC 解码后端:gpu 或 cpu。
cuda.cuda_ldpc_worker_buffersint3CUDA LDPC 异步批处理工作缓冲区数。
cuda.cuda_ldpc_cross_frame_flush_framesint2CUDA LDPC batch decode 前最多累计帧数。
cuda.cuda_ldpc_cross_frame_flush_usfloat / us1000CUDA LDPC 跨帧 batch 最长等待时间。
参数类型/单位典型值说明
ldpc.decoder_iterationsint12CPU LDPC 最大迭代次数,必须大于等于 1;保留 syndrome 提前结束。
ldpc.nms_normalization_factorfloat0.75CPU NMS 归一化系数,有限值且在 (0, 1] 内;Q16 模式使用 0.125 的整数倍。
ldpc.fixed_pointboolfalse使用 int16/Q16 CPU LDPC 解码路径。
ldpc.fixed_point_scaleint16int16 饱和前的 LLR 缩放。

这两项用于 UE 下行的 CPU 译码,float32 和 Q16 共用设置。省略时使用 12 次迭代和系数 0.75。已有 YAML 的显式值继续生效;要在已有配置中使用这组默认值,请更新这两项。可在 Web 配置控制台 的 LDPC decode 中修改,保存后重启后端。Q16 支持 0.125、0.25、0.375、0.5、0.625、0.75、0.875、1.0;LLR 比例仅在 fixed_point: true 时参与计算。增加迭代次数可能改善纠错,同时增加弱信号时的计算量。

参数类型/单位典型值说明
downlink.center_freqfloat / Hz2400000000UE 下行 RF 中心频率。
downlink.rx_wire_formatstringsc16UE 下行接收的 UHD 样本格式。
downlink.rx_channelint0UE 下行 RX 通道索引。
downlink.equalizer_modestringmmse下行均衡器反演模式:zf 或 mmse。
downlink.channel_tracking_modestringpilot_phase每符号梳状导频跟踪模式。
downlink.equalizer_mag_floorfloat1e-6信道反演时 `
downlink.channel_tracking_min_pilot_snrfloat1e-4回退前要求的最小梳状导频残差权重。
downlink.arq_enabledboolfalse在 UE 接收端开启下行 ARQ。
downlink.arq_ordered_deliveryboolfalse缓存下行数据包,再按序输出 UDP。
downlink.arq_window_packetsint256下行 ARQ 接收/重排窗口;有效范围为 1–32767。
downlink.arq_feedback_interval_msint / ms10下行 ARQ ACK 反馈的最小时间间隔。
参数类型/单位典型值说明
uplink.enabledboolfalseUE 上行/双工总开关。
uplink.duplex_modestringtdd必须与 BS 一致:tdd 窗口上行或 fdd 整帧上行。
uplink.center_freqfloat / Hz2500000000仅 FDD 使用的上行载波;TDD 使用下行中心频率。
uplink.idle_waveformstringrandom_qpskUE 空闲上行波形:random_qpsk 或 zero。
uplink.symbol_startint90TDD 上行起始符号。
uplink.symbol_countint10TDD 上行窗口长度。
uplink.guard_symbolsint1TDD 上行前置 guard 符号数。
uplink.tx_gainfloat / dB0UE 上行 TX 增益。
uplink.tx_channelint0UE 上行 TX 通道索引。
uplink.wire_format_txstringsc16UE 上行发送的 UHD 样本格式。
uplink.ue_timing_advanceint / samples50UE 上行发送 timing advance。
uplink.debug_self_channelboolfalse从接收窗口估计 UE 本机发送泄漏信道,用于 TADV 调试。
uplink.ertm_to_enableboolfalse开启 eRTM 时偏测量负载的接收处理和 TO 日志。
uplink.ertm_timing_metricstringdelay_magnitude差分 TO 指标:抗相位失配的 delay_magnitude,或相干复信道相关的 maximum_likelihood。
uplink.ertm_delay_oversample_factorint10eRTM 时延谱 IFFT 过采样倍数。
uplink.ertm_dl_rf_delay_samplesfloat / samples67.0eRTM 方程中的下行 RF 链路校准延迟。
uplink.ertm_ul_rf_delay_samplesfloat / samples67.0eRTM 方程中的上行 RF 链路校准延迟。
uplink.ertm_debug_output_enabledboolfalse开启 UE 侧 eRTM debug ZMQ 频谱输出。
uplink.ertm_report_interval_framesint / frames32BS eRTM report 间隔;对比日志时应与 BS 保持一致。
uplink.arq_enabledboolfalse在 UE 发射端开启上行 ARQ。
uplink.arq_window_packetsint256上行 ARQ 最多允许的未确认数据包数;有效范围为 1–32767。
uplink.arq_retransmit_timeout_msint / ms100上行 ARQ 重传超时。
uplink.arq_max_retriesint5上行最大重传次数;0 表示窗口内不限次数。

真实无线设备开启 timed uplink 时,CPU、CUDA 和 HIP UE 会在启动阶段读取设备实际的 RX/TX 采样率。两者相差超过 1 Hz 会在创建工作线程前中止启动,因为精确的上行身份映射 要求收发方向使用同一采样时间网格。

参数类型/单位典型值说明
sync_tracking.sync_queue_sizeint32同步搜索 batch 队列容量。
sync_tracking.sync_cfo_alias_search_range_hzfloat / Hz800000同步 alias 解析覆盖的 CFO 范围。
sync_tracking.reset_hold_sfloat / s0.5坏 delay 或配置要求的前导字段不匹配连续持续多久后,硬 reset 回同步搜索。
sync_tracking.software_syncbooltrue开启软件同步跟踪。
sync_tracking.predictive_delaybooltrue使用基于 CFO 的预测性时延补偿。
sync_tracking.hardware_syncboolfalse开启硬件同步模式。
sync_tracking.hardware_sync_ttystring/dev/ttyUSB0硬件同步控制器串口设备。
sync_tracking.desired_peak_posint20定时对齐逻辑使用的目标时延峰位置。
sync_tracking.ocxo_modestringautoauto、freq、phase 保留原 TO 锚定语义;pps_phase 显式选择 PPS 相位锁定。
sync_tracking.ocxo_dac_ppm_per_lsbfloat9.71e-7标定后的 DAC 每 LSB 对应 ppm(MV197)。
sync_tracking.ocxo_dac_zero_wordint4933670 ppm 对应的 DAC 码字。
sync_tracking.ocxo_dac_state_filestring.openisac_ocxo_dac_state.yaml保存 DAC 已确认 OK 的最后一个 SF 码字。相对路径按 UE 当前工作目录解析;空值关闭跨重启持久化。
sync_tracking.ocxo_max_abs_ppmfloat / ppm0.45OCXO 绝对命令限幅。
sync_tracking.ocxo_actuator_max_slew_ppm_per_sfloat / ppm/s0.01执行器硬斜率限制;实际执行量会反馈给控制器。
sync_tracking.ocxo_coarse_*多项见预设启动单目标粗调:Mode A 平均 residual CFO;Mode B 在 coarse 窗内对 Alignment 连续化后的 TO_clock 与绝对帧序号做线性回归。
sync_tracking.ocxo_fll_fast_*, ocxo_fll_slow_*多项见预设快/慢 FLL:Mode A 使用 residual CFO,Mode B 使用滚动 TO_clock 回归得到的钟 SFO,并带阈值滞回和 dwell。
sync_tracking.ocxo_fll_slow_kpfloat0.1Slow FLL 比例增益。
sync_tracking.ocxo_fll_slow_kifloat0.007Slow FLL 积分增益。
sync_tracking.ocxo_fll_slow_max_slew_ppm_per_sfloat / ppm/s0.005Slow FLL 命令变化率上限。
sync_tracking.ocxo_fll_slow_enter_abs_ppmfloat / ppm0.0005从 Fast FLL 进入 Slow FLL 的残差阈值。
sync_tracking.ocxo_phase_setpoint_modestringfreeze_on_lock原 auto/phase 的目标:进入 Phase 时冻结 TO_clock、取零或使用固定值。
sync_tracking.ocxo_phase_setpoint_fixed_samplesfloat / samples0.0setpoint mode 为 fixed 时的原 TO_clock 固定目标。
sync_tracking.ocxo_phase_*多项见预设Phase 增量式 PI:原 auto/phase 使用 setpoint-TO_clock,pps_phase 使用 wrap 后的 P_U-P_B;进退判据仍使用 TO_clock 钟 SFO 回归。
sync_tracking.ocxo_pps_initial_ap_enablebooltrue保留的旧键名。在 pps_phase 中,每次 FllSlow -> Phase 都启动一次 PPSOUT 对齐事务,再放行 SF Phase 跟踪。关闭时启动日志会告警:大 residual 只能由限斜率 PI 处理,可能收敛很慢。
sync_tracking.ocxo_pps_initial_ap_max_abs_nsfloat / ns500000000AP 绝对限幅,与 PPSDO 硬件范围一致。
sync_tracking.ocxo_pps_initial_ap_settle_sfloat / s2.0AP 最短稳定时间;同时必须等到更新后的 eRTM/PPS 观测。
sync_tracking.ocxo_pps_initial_ap_command_timeout_sfloat / s3.0AP worker 的总墙钟预算,包含全部 JAMSYNCING 重试;aligner 额外等待 0.5 s 终态余量,worker 截止后不再发送该 AP。
sync_tracking.ocxo_pps_initial_ap_max_retriesint1AP 已接受但在 settle_s + command_timeout_s 内没有新 publication 时的有界重试次数(0..3);重试会等待新的有效观测并按残差重算 AP。
sync_tracking.ocxo_pps_initial_ap_deadzone_nsfloat / ns10.0进入 Phase 时 PPS 误差已落在该范围内则跳过 AP 和稳定等待。
sync_tracking.ocxo_pps_initial_ap_polarityint1P_U-P_B 为正时的 AP 命令符号。默认值采用 PPSOUT 台架实测确认的极性;不同硬件或固件极性仍可显式设为 -1。
sync_tracking.cfo_ewma_enablebooltrue对 residual CFO ppm 做 EWMA 预滤波,仅供 Mode A Coarse/FLL 使用。
sync_tracking.cfo_ewma_alphafloat0.02EWMA 对新样本权重(0..1;越大跟踪越快、噪声越大)。

硬件预设使用 ocxo_fll_slow_kp=0.1、ocxo_fll_slow_ki=0.007、 ocxo_fll_slow_max_slew_ppm_per_s=0.005 和 ocxo_fll_slow_enter_abs_ppm=0.0005,并保留 ocxo_fll_slow_deadzone_ppm=5.0e-5、ocxo_phase_kp=2.0e-4、 ocxo_phase_ki=1.0e-6 与 ocxo_phase_enter_sfo_abs_ppm=2.0e-4。 每次进入 Phase 的 PPSOUT AP 校正默认开启,并使用台架实测确认的正命令极性。

普通重新同步只重置 OCXO 观测、dwell 计时和控制阶段,不再向 DAC 写入零码字。 控制器从执行器保留的 command 重新起步;执行器在重新入锁后的第一条实际非零修正时 才重置 slew 时间基准,因此 search 时长不会放大第一步。每条 SF 收到 OK 后, 非实时串口 worker 会持久化更新 ocxo_dac_state_file;下次启动 UE/CUDAUE 进程时,DAC 与控制器都从该已确认的 raw word 恢复,而不是从零开始。正常退出时先结束串口 worker,再次保存最后一条实际收到 OK 的 SF word;更新但未确认的 queued word 不会被提升为下次启动的稳态值。 恢复时还要求文件中的串口设备、zero_word 和 ppm_per_lsb 与当前配置一致。文件缺失时 从校准零码字启动,并在命令确认后创建状态;文件损坏、设备或标定不匹配、word 越界时也 回退到零码字,但原文件保持不变,且本次进程关闭持久化,需修复或删除该文件后再重启。 该机制假定仅重启 UE 进程时外部 DAC 仍保持供电并保留原码字。

auto 和 phase 保留原来的 Phase anchor:PI 控制 setpoint - TO_clock,继续支持 freeze_on_lock、zero、fixed;这两个 模式不会读取 time_last_pps(),也不会进入 AP gate。

pps_phase 是单独的显式模式。对下行帧 N,eRTM 根据每份 ERTM5 报告 打包前实时刷新的 BS frame-0/PPS 锚点重建 r_B=B_N-P_B,根据 UE 帧边界 与 PPS 时间戳得到 r_U=U_N-P_U。Phase 误差为 wrap_1s(tau_DL_RF - TO_UE + r_B - r_U) = wrap_1s(P_U-P_B),目标为零。 该模式要求 sync_tracking.hardware_sync=true、uplink.ertm_to_enable=true, 并要求 usrp_device.clock_source 与 usrp_device.time_source 都显式配置为 external;空 time_source 按 internal 处理。任一条件不满足都会报配置错误。 BS 侧生成 PPS anchor 时也必须使用连接 PPSDO 的 external clock/time source。 BS anchor 的刷新频率由 uplink.ertm_report_interval_frames 的 eRTM 报告周期决定, 并在 TX/调制实时路径之外执行。每次 FllSlow -> Phase 时,AP gate 都会重新武装, 并根据最新有效 PPS residual 计算一次校正;在同一次 Phase 停留期间保持 Done, 普通 Phase 更新和 Freeze 不会重复 AP。若 Phase 退回 FLL 后再次进入,则允许一次 新的校正。AP 仅改变 PPSDO 的 PPSOUT,不会重设 USRP 时间、重锚 air-frame clock、清空 eRTM 状态或重新建立 TO。若旧 AP 仍处于 Queued/InFlight,新一次进入会 等待硬件回到 Idle,而不是把 Busy 当作终端失败;JAMSYNCING 重试仍属于同一次 AP 请求。

参数类型/单位典型值说明
sensing.sensing_delay_correction_modestringlos_tracking双站感知时延校正来源:los_tracking 或 ertm_absolute。
sensing.bi_enabledbooltrue开启双站感知处理。
sensing.bistatic_phase_referenceboolfalseLoS 相位参考,可改善较差时钟下的感知表现;要求收发机具有 LoS 且两者相对静止,重启 UE 生效。
sensing.phase_reference_min_coherencefloat0.05最低参考相干度,范围 (0, 1];开启相位参考时有效。
sensing.range_fft_sizeint1024距离向 FFT 点数。
sensing.doppler_fft_sizeint100多普勒向 FFT 点数。
sensing.view_range_binsint0后端距离-多普勒视图的距离维宽度;0 表示完整距离维。
sensing.view_doppler_binsint0后端距离-多普勒视图的多普勒维高度;0 表示完整多普勒维。
sensing.output_modestringdensedense 完整输出,或 compact_mask 选中 RE 输出。
sensing.on_wire_formatstringcomplex_float32感知负载的网络传输格式。
sensing.backend_processing_enabledboolfalse在支持时额外输出后端距离-多普勒、CFAR 和微多普勒处理结果。
sensing.symbol_strideint20dense 模式启动时默认 STRD。

该选项可在收发机使用独立时钟或时钟稳定性较差、同步后仍存在残余公共相位漂移时,改善双站感知的慢时间相干性和多普勒稳定性。启用前必须保证收发机之间有稳定的视距(LoS)直达路径,而且收发机两者相对静止。 被感知目标仍可运动。仅有非视距路径,或收发机之间存在相对运动时,不应启用:参考路径自身的运动也会被从测得的多普勒中减去。

在 UE Linux 主机的实际运行配置 UE.yaml 中合并以下字段:

sensing:
bi_enabled: true
output_mode: dense
sensing_delay_correction_mode: los_tracking
bistatic_phase_reference: true
phase_reference_min_coherence: 0.05

这是启动时读取的 YAML 配置开关,也可以在 Web 配置页编辑。保存后需重启 UE 才会生效,目前没有对应的在线启停命令。

相位校正在现有 CFO/SFO/时延及系统响应校正之后、MTI 之前,消除双站 CSI 的残余公共相位,适用于完整信道矩阵输出(dense)。

每个慢时间采样行用 Hamming 加权的直达径分量作为参考,对所有子载波施加模长为 1 的共轭旋转,保留幅度。参考跟随已知的 ALGN 显示平移:只在测量参考时抵消对应相位斜坡,输出仍保留用户指定的时延平移。平移变化会清空未完成的感知批次和 MTI/微多普勒历史,避免混合两个显示坐标。直达径需要静止且占主导:显示的多普勒相对于该参考路径;若参考路径运动,其运动也会被减去。此功能不校正射频采样时钟。

sensing.phase_reference_min_coherence 默认 0.05,范围为 (0, 1]。相干度定义为 |sum(w H)|² / (sum(w) sum(w |H|²)),其中 w 为 Hamming 权重,H 为抵消已知显示相位斜坡后的信道值。参考过弱、接近零或出现非有限值时,整批感知数据被丢弃并清空 MTI/微多普勒历史,通信样本不受影响。缺少慢时间采样点时会重建感知窗口和历史,以保持多普勒处理所需的均匀时间轴。

修改这些 YAML 字段后重启 UE,在 UE Linux 主机启动日志中确认 static LoS phase reference enabled before MTI。若频繁出现 weak/invalid LoS phase reference,说明该路径不适合作为参考,应关闭此功能或改善直达径信号。

参数类型/单位典型值说明
resource_preview.data_resource_blocks[]object[]可选payload / sensing-pilot RE 矩形;每项包含 kind、symbol_start、symbol_count、subcarrier_start、subcarrier_count。
resource_preview.mask_blocks[]object[]可选compact 感知 RE 矩形;每项包含 symbol_start、symbol_count、subcarrier_start、subcarrier_count。
参数类型/单位典型值说明
measurement.measurement_enableboolfalse开启内部 PRBS 测量检查。
measurement.measurement_modestringinternal_prbs测量检查模式。
measurement.measurement_run_idstring""写入测量 CSV 的 run ID。
measurement.measurement_output_dirstring""测量 CSV 输出目录。
measurement.measurement_payload_bytesint / bytes1024期望的测量 payload 字节数。
measurement.measurement_prbs_seedint0x5A重建确定性 PRBS payload 的种子。
measurement.measurement_packets_per_pointint1每个测量 epoch 期望 packet 数。
measurement.measurement_max_packets_per_frameint1每帧最多检查的测量 packet 数;0 表示不限。
参数类型/单位典型值说明
network_output.udp_input_ipstring / IPv40.0.0.0UE 上行业务 UDP 输入绑定 IP。
network_output.udp_input_portint50002UE 上行业务 UDP 输入端口。
network_output.udp_output_ipstring / IPv4""UE 解码下行 UDP 输出目标 IP;空字符串使用 runtime.default_out_ip。
network_output.udp_output_portint50001UE 解码下行 UDP 输出端口。
network_output.udp_egress_pacer_enabledboolfalse开启解码 UDP 输出速率调节。
network_output.udp_egress_pacer_target_mbpsfloat / Mbps0UDP 输出目标速率;0 时自动估计。
network_output.udp_egress_pacer_queue_packetsint10240UDP 输出调速队列的数据包容量。
network_output.udp_egress_pacer_max_delay_msfloat / ms0最大排队时间;0 关闭按年龄丢包。
network_output.bi_sensing_output_enabledbooltrue开启双站感知 ZMQ 输出。
network_output.bi_sensing_ipstring / IPv40.0.0.0双站感知/control ZMQ 绑定 IP。
network_output.bi_sensing_portint8889双站感知 PUB 端口。
network_output.control_portint10001运行时控制 ZMQ ROUTER 端口。
network_output.channel_ipstring / IPv40.0.0.0信道估计 PUB IP。
network_output.channel_portint12348信道估计 PUB 端口。
network_output.pdf_ipstring / IPv40.0.0.0Delay-spectrum PUB IP。
network_output.pdf_portint12349Delay-spectrum PUB 端口。
network_output.constellation_ipstring / IPv40.0.0.0星座图 PUB IP。
network_output.constellation_portint12346星座图 PUB 端口。
network_output.self_channel_ipstring / IPv40.0.0.0UE self-channel debug PUB IP。
network_output.self_channel_portint12350UE self-channel debug PUB 端口。
network_output.self_pdf_ipstring / IPv40.0.0.0UE self-delay-spectrum debug PUB IP。
network_output.self_pdf_portint12351UE self-delay-spectrum debug PUB 端口。
network_output.ertm_debug_ipstring / IPv40.0.0.0UE eRTM debug PUB IP。
network_output.ertm_debug_portint12362UE eRTM debug PUB 端口。
network_output.ocxo_debug_ipstring / IPv40.0.0.0OCXO debug ZMQ PUB 绑定 IP。
network_output.ocxo_debug_portint12347OCXO debug ZMQ PUB 端口。
参数类型/单位典型值说明
cpu_cores.downlink_cpu_coresint[][1,2,3]UE 下行核心:RX、处理、bit processing。
cpu_cores.demod_worker_cpu_coresint[][]UE CPU demod worker 核;空列表启动一个不绑定 worker。
cpu_cores.ldpc_worker_cpu_coresint[][]UE CPU LDPC decode worker 核;空列表启动一个不绑定 worker。
cpu_cores.sensing_cpu_coresint[][4]UE 双站感知核心。
cpu_cores.uplink_cpu_coresint[][]UE 上行核心:LDPC 编码、调制、TX 发送、UDP 接收。
cpu_cores.main_cpu_coreint-1主线程 CPU 核;-1 表示不绑定。
参数类型/单位典型值说明
runtime.default_out_ipstring / IPv4127.0.0.1特定输出 IP 为空时,UDP 输出使用的默认目标 IP。

硬件同步启用时,OCXODBG3 ZeroMQ 数据包保留以下 16 个固定通道:

通道信号通道信号
0模值 CFO(Hz)8当前阶段窗口的 TO_clock 回归钟 SFO(ppm)
1解模糊 CFO(Hz)9累计 Alignment(samples)
2原始 residual CFO(ppm)10Alignment 前馈(samples)
3滤波后的控制 CFO(ppm)11期望 OCXO 步进(ppm)
4OFDM delay-track SFO(ppm;仅信道补偿)12实际 OCXO 步进(ppm)
5原始 TO_UE(samples)13已应用 OCXO command(ppm)
6连续 TO_clock(samples)14粗调未完成量(ppm)
7当前 Phase 误差:原 setpoint-TO_clock 或 pps_phase 的 P_U-P_B(samples)15stage(0..4:Coarse、Fast、Slow、Phase、Freeze)

数据包是固定 152 字节的小端帧:magic、版本、通道数、序号、Unix 纳秒源时间戳, 随后为原有 16 个 float32 和 typed PPS diagnostic trailer。trailer 与 CSV 追加 r_bs_samples、r_ue_samples(float64)、bs_last_pps_ticks、 bs_t0_to_pps_ticks、ue_last_pps_ns(精确 int64)、bs_tick_rate 和 sample_rate(float64)。这些字段用于区分 BS anchor、UE PPS latch 与 TO 造成的相位跳变;绝对 timestamp 不经过 float32。viewer 仍兼容旧 OCXODBG2 数据包。使用 python3 scripts/plot_ocxo_debug.py 启动滚动查看器; --channels 6,7,8,13,15 可指定初始显示通道,--record capture/ocxo.csv 可在启动时记录 CSV。自动文件名按天使用 ocxo_debug_YYYYMMDD_01.csv,同日 依次递增为 _02、_03。无论界面勾选哪些曲线,文件始终保存全部通道。除周期状态包外, 控制、阶段切换、TO jump 和 Alignment 会立即额外发布事件包,避免单帧 delta 通道被降采样遗漏。

性能剖析与诊断日志共用层级化 logging.*。性能项路径以 _profiling 结尾(默认关闭,需显式打开,例如 demod_profiling: info)。

资源映射说明:

  • resource_preview.data_resource_blocks 通常应在 BS 和 UE 之间保持一致,包括 kind。
  • 内置 ZC 同步符号、可选 CFO training field、梳状导频和帧内 BPSK 导频优先级高于资源块配置。
  • resource_preview.mask_blocks 只控制 compact 感知导出。output_mode=compact_mask 时运行时 STRD 会被忽略,因为采样图样已经由 mask 定义。
  • compact 感知 payload 以 CompactSensingFrameHeader 开头,后面跟固定顺序的原始 complex<float> 数据。