前端与传输
OpenISAC 采用 C++ 与 Python 分层架构:C++ 后端负责上下行无线收发、多通道感知和实时基带处理,Python 交互层负责可视化、实验控制、数据记录和自定义感知算法。这样既保留实时性能,也让实验者无需修改无线处理主流程即可观察或扩展系统。
- 实时层:执行上下行 OFDM 调制/解调、同步、通信编解码和多通道感知处理,并保持各 USRP 数据流连续。
- 交互层:显示多通道单站感知、双站感知和通信链路状态,调整支持在线更新的参数,并接收用于进一步分析的数据。
这种分层意味着关闭或替换某个可视化界面时,无线链路和基带流水线仍由后端独立管理。Python 前端既可以与后端运行在同一台主机上,也可以通过网络连接远端 BS 或 UE。
数据与控制路径
Section titled “数据与控制路径”通信 payload 与交互数据使用不同的传输路径:
- 通信数据面:下行 payload 通过 UDP 进入 BS、从 UE 输出;上行 payload 通过 UDP 进入 UE、从 BS 输出。
- 感知与状态面:多通道单站数据、双站感知结果、上行信道/时延谱以及运行状态通过 ZeroMQ 发布。
- 控制面:Python 通过 ZeroMQ 查询或更新运行参数,包括多通道增益、对齐和支持在线调整的感知设置。
BS 多通道感知按照共同的帧起始符号索引聚合,在一条消息中携带通道数量、通道标识和各通道等长数据,从而保持跨通道时间一致性。感知输出仍支持后端实时处理与 Python 旁路两种方式,用户可以根据传输带宽、刷新需求和算法验证阶段选择合适的数据粒度。
面向实验的收益
Section titled “面向实验的收益”无线定时、TDD/FDD 调度、多路连续收发和缓冲管理始终留在实时层,避免绘图或交互操作阻塞基带流水线;Python 层则可以独立迭代。由此,同一套 BS/UE 后端既能直接用于双向通信与多通道感知演示,也能作为新型阵列或通感算法的在线数据源和验证平台。