乐于分享
好东西不私藏

【MATLAB源码】5G-A:DCI 1-1 Rel18 解析软件

【MATLAB源码】5G-A:DCI 1-1 Rel18 解析软件

🚀 5G NR DCI 1-1 协议深度可视分析平台

基于 3GPP TS 38.212 的工业级协议解析引擎完整频域/时域资源分配 + 多天线端口解析 + 动态BWP切换支持


📌 为什么需要 DCI 1-1 可视化分析?

DCI Format 1-1 是 5G NR 中用于调度 PDSCH 的主力 DCI 格式,相比 1-0 增加了大量复杂的调度参数(如 FDRA Type 0/1 切换、多天线端口配置、TCI 状态指示等)。其高度可变的 Payload 长度和复杂的 RRC 依赖性使得手动解析极具挑战。本平台提供了一站式的可视化解决方案。

痛点 (传统方式)
本平台解决方案 (DCI 1-1 Analyzer)
🔢 复杂的资源分配
✅ RIV 与 Bitmap 自动解析:直接解码 Type 0 (Bitmap) 与 Type 1 (RIV) 频域分配,计算 PRB 起始与长度
📡 多天线配置迷宫
✅ 端口语义直显:自动查表解析 Antenna Ports 字段,显示 DMRS 端口号与 CDM 组
🔄 BWP 切换隐蔽
✅ 动态状态追踪:识别 BWP Indicator,结合 FDRA 长度变化判定 BWP 切换行为
📉 RRC 配置依赖
✅ 全参数上下文:支持 30+ 项 RRC 参数配置(如 CORESET 0, rbg-Size, dmrs-Type 等)

🎯 核心价值

🔬 科研教学价值

  • 复杂协议可视化:将 FDRA Type 0/1、VRB-to-PRB 映射等抽象概念转化为直观的 GUI 交互。
  • MIMO 场景覆盖:完整支持单/多 TCI 状态、DMRS 端口配置,适合 MIMO 算法研究。
  • 算法验证:验证 UE 端 DCI 解码与资源解映射算法的正确性。

💼 工程应用价值

  • 调度问题排查:快速定位 MCS/RV 调度异常、HARQ 进程冲突。
  • 配置一致性检查:通过 Sanity Check 发现 RRC 配置与 DCI 长度不匹配的问题。
  • 报告归档:一键生成 Markdown 格式的详细分析报告,自动包含 RRC 配置快照。

⚡ 技术亮点

🌊 DCI 1-1 深度解析架构

特性
说明
关键实现
混合资源分配
支持 Type 0, Type 1 及 Dynamic Switch
dci1_1_derive_semantics

 中的动态分支处理
智能填充检测
自动识别 Payload 末尾填充位
基于 ceil(log2(...)) 的精确长度计算与对齐
交互式位图
比特与字段的双向索引
patch

 对象回调 + uitable 联动高亮 (Pixel-Perfect)
RIV 解码引擎
内置标准 RIV 逆算法
decode_riv

 函数提供 O(1) 复杂度的资源解算

📊 实测解析能力

基于标准测试用例实测结果

场景
RNTI
Payload 长度
关键字段解析
结论
常规数据调度
C-RNTI
~50+ bits
FDRA, MCS, NDI, RV
✅ 精准 PDSCH 调度
SPS 激活/释放
CS-RNTI
同上
HARQ=0, RV=00, NDI=0
✅ SPS 语义识别
BWP 切换
C-RNTI
变长
BWP Indicator, FDRA
✅ 跨 BWP 调度支持

🖥️ 运行环境

  • MATLAB 版本: R2023a 或更高 (推荐 R2024b)
  • 依赖工具箱: 基础 MATLAB 

📁 核心功能模块

DCI 1-1/├── src/│   ├── DCI11AnalyzerApp.m       # 🚀 交互式 GUI 核心引擎│   ├── dci1_1_parse.m           # 🧠 协议解析算法内核│   ├── dci1_1_derive_semantics.m # 🔍 语义推导与 RIV 解码│   ├── dci1_1_field_specs.m     # 📏 3GPP 字段定义库 (TS 38.212)│   └── create_rrc_context.m     # ⚙️ RRC 配置上下文生成器├── docs/│   └── GUI_使用手册.md          # 📄 本文档└── tests/                       # ✅ 自动化测试套件

📄 文档体系

本平台提供 “界面+算法” 双重指引:

📘 用户手册

界面操作指引、配置参数说明、结果解读指南。

📒 标准映射

3GPP 协议原文对照,字段长度计算公式,RIV 编码原理。


💻 核心代码展示

🔥 资源分配语义解析 (src/dci1_1_derive_semantics.m)

functiondciInfo = compute_resource_allocation(dciInfo, rrc)if rrc.resourceAllocation == 'dynamicSwitch'% MSB 决定 Type 0 或 Type 1if bits(1) == 0            dciInfo.RA_Type = 'Type 0';            dciInfo.Bitmap = bits(2:end);else            dciInfo.RA_Type = 'Type 1';            dciInfo.RIV = decode_riv(bits(2:end), rrc.N_UL_BWP);endendend

🌟 交互式高亮引擎 (src/DCI11AnalyzerApp.m)

% 比特块点击回调functionbitPatchClicked(app, index, ~)% 1. 查找对应字段    fieldName = findFieldByBit(app.CurrentDciInfo, index);% 2. 表格行高亮    rowIdx = findRowIdx(app.FieldTable.Data, fieldName);    app.FieldTable.Selection = rowIdx;% 3. 更新详情视图    updateDetailView(app, rowIdx);end

🎬 极速上手

>> cd('src');>> app = DCI11AnalyzerApp;

解析三部曲:

  1. 配置:在左侧面板设置 N_RB_DLRBG Size 等 RRC 参数(或使用预设模板)。
  2. 输入:粘贴 Hex 字符串 0xABC... 或二进制流。
  3. 运行:点击 ▶ 解析 DCI,即刻获取专业报告。

🛒 获取方式

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 【MATLAB源码】5G-A:DCI 1-1 Rel18 解析软件

评论 抢沙发

7 + 3 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮