CSDN_Blog_Post
5G NR 频点计算工具 — 一个开箱即用的 NR 配置参数计算器
基于 3GPP TS 38.104/38.211/38.213 协议实现,支持 FR1/FR2 全频段,GUI + 命令行双模式,开箱即用。
频点计算工具链接
一、项目简介
在 5G NR 网络规划与测试中,频点配置是一项繁琐且容易出错的工作。我们需要根据中心频率、带宽、SCS 等参数,精确计算出 PointA ARFCN、SSB GSCN、k_SSB、offsetToPointA、CORESET#0、SearchSpace#0 等一系列配置参数。
这款NR 频点计算工具正是为解决这一痛点而生——它严格遵循 3GPP 协议规范,支持FR1(Sub-7 GHz)和FR2(毫米波)全频段,提供GUI 图形界面和命令行两种使用方式,开箱即用。
二、功能亮点
- ✅PointA 计算:根据中心频点和带宽精确计算 DL PointA ARFCN
- ✅SSB 位置确定:自动计算 SSB 的 ARFCN、GSCN、k_SSB 偏移量
- ✅CORESET#0 推荐:遍历协议定义的所有候选项,推荐最优配置
- ✅SearchSpace#0 选项:提供 PDCCH Monitor 周期完整可选参数表
- ✅Channel Raster 检查:验证中心频点是否符合信道栅格要求
- ✅频段自动识别:根据频率自动标注 NR Band(如 n78、n77)
- ✅FR1/FR2 全覆盖:支持 15/30/60kHz(FR1)和 60/120/240kHz(FR2)SCS
- ✅NTN 扩展频段:内置 n254/n255/n256 等 NTN 频段支持
- ✅GUI + 命令行:适合不同使用场景
三、安装使用说明
方式 1:直接运行 EXE(推荐)
无需安装 Python 环境,直接双击下载的可执行文件:
dist/NR_频点计算工具.exe打开图形界面后,输入参数(中心频点或 GSCN),点击"计算"即可。
方式 2:命令行运行
python nr_freq_calc.py--center308400--scs30--ssb-scs30--bw20常用参数:
| 参数 | 说明 | 默认值 |
|---|---|---|
--center N | DL 中心 ARFCN | 必填 |
--gscn N | SSB GSCN | 可选 |
--ssb-arfcn N | SSB 中心 ARFCN | 可选 |
--scs N | SCS(kHz), 15/30/60/120/240 | 30 |
--ssb-scs N | SSB SCS(kHz), 15/30/120/240 | 30 |
--bw N | 带宽(MHz) | 20 |
--duplex | 双工模式 FDD/TDD | FDD |
--coreset0 N | 指定 CORESET#0 索引 | 自动推荐 |
--searchspace0 N | 指定 SearchSpace#0 索引 | 0 |
实用示例:
# 根据 GSCN 计算python nr_freq_calc.py--gscn3843# 指定 DL 中心 + SSB ARFCN + CORESET#0python nr_freq_calc.py--center308400--ssb-arfcn307470--coreset02# FR2 高带宽场景python nr_freq_calc.py--gscn22268--scs120--ssb-scs120--bw200# FR1 FDD 场景python nr_freq_calc.py--center676020--scs15--ssb-scs15--bw5--duplexFDD方式 3:作为 Python 模块导入
fromnr_freq_calcimportcalculate,format_results results=calculate({"center":308400,"scs":30,"ssb_scs":30,"bw":20})print(format_results(results))四、GUI 界面使用指南
启动图形界面后,输入流程非常简单:
1. 设置基本参数
- SCS:子载波间隔(15/30/60/120/240 kHz)
- SSB SCS:同步信号子载波间隔
- 带宽:频道带宽(5/10/20/100 MHz 等)
- 双工模式:FDD 或 TDD
2. 输入频点信息
- DL ARFCN / Freq(MHz):下行中心频点,两者填其一即可(自动换算同步)
- SSB ARFCN / Freq(MHz) / GSCN:SSB 位置,三者填其一即可
3. 可选参数
- CORESET#0:留空则自动推荐最优值
- SearchSpace#0:按需指定索引
4. 点击"计算"
下方结果区将显示完整的 NR 频点配置信息,包括:
- Carrier Configuration(PointA、中心频点、上下边缘 NRB)
- SSB Configuration(GSCN、SC0、Lmax 模式)
- offsetToPointA(偏移量计算细节)
- Channel Raster 检查结果
- CORESET#0 候选列表(含推荐标记)
- SearchSpace#0 可选参数表
- Summary(复制粘贴用的摘要)
五、输出结果解读
Carrier Configuration
- DL PointA ARFCN:下行参考点,所有 CRB 编号基于此
- DL Center ARFCN:实际使用的中心频点(可能与输入略有偏移,以对齐 PRB 网格)
- NRB:可用物理资源块数量
SSB Configuration
- SSB GSCN:全局参考信道号,包含 N、M 分解值
- SSB SCS:子载波间隔类型(Case A/B/C/D/E)
- Lmax:最大 SSB 发射波束数
CORESET#0
列出所有适合当前配置的 CORESET#0 候选项,第一个为系统推荐的优选值。
六、支持频段
内置完整的 3GPP NR 频段数据库(TS 38.101-1 Table 5.2-1 + NTN bands from 38.101-5),涵盖:
FR1 频段(Sub-7 GHz):n1/n2/n3/n5/n7/n8/n12-n14/n18/n20/n25-n29/n30/n34/n38-n53/n65-n71/n74/n77-n85/n90-n95/n96
FR2 频段(mmWave):n101/n102/n104/n254-n256
NTN 扩展频段:n254/n255/n256
七、常见问题
Q: 为什么计算结果中的 DL Center ARFCN 和我输入的不一样?
A: PointA 必须对齐到 PRB 网格(ARFCN mod SCS/ΔF = 0),因此中心频点会被微调至最近的合法值。结果中会显示具体的 Delta 值。
Q: 支持的 SCS 组合有哪些?
A: FR1 支持 15/30/60 kHz;FR2 支持 60/120/240 kHz。SCS 和 SSB SCS 的组合需符合协议约束。
Q: 如何在 NTN 场景下使用?
A: 工具已内置 NTN 扩展频段(n254/n255/n256),正常使用 GUI 或命令行输入对应频率即可。
八、获取源码
- Gitee 仓库:https://gitee.com/diligt/tools
- 项目结构:
nr_freq_tool/ ├── nr_freq_calc.py # 计算引擎(可单独命令行运行或模块导入) ├── nr_param_input.py # GUI 图形界面(PyInstaller 入口) ├── nr_calc_param_all.py # 辅助计算函数集合 ├── magic-lamp_39027.ico # 程序图标 ├── dist/ │ └── NR_频点计算工具.exe # 打包好的独立可执行文件 └── README.md # 详细文档
九、依赖与环境
Python 源码方式:
- Python 3.9+
- tkinter(Python 标准库自带)
打包 EXE(仅需 PyInstaller):
pipinstallpyinstaller python-mPyInstaller--onefile--noconsole^--icon="magic-lamp_39027.ico"^ --add-data"magic-lamp_39027.ico;."^--name"NR_频点计算工具"nr_param_input.py如果觉得这个工具对你有所帮助,欢迎 Star / Fork / Issue 交流!
