通信人家园

标题: [5GNR]5GNR Resource Grid开发笔记  [查看完整版帖子] [打印本页]

时间:  2018-12-7 13:12
作者: jeffyko     标题: [5GNR]5GNR Resource Grid开发笔记

本帖最后由 jeffyko 于 2019-3-20 21:28 编辑

Hi all,
为增进同学们关于5GNR方面的交流,现将<5GNR Resource Grid>开发项目的信息进行分享。
Note:本帖仅用于相关技术问题的讨论,项目进度仍然会在CSDN blog上发布。

《5GNR Resource Grid》项目从2018/2月开始,到2018/10月底完成需求分析,10/28号开始Coding(PyQt5 UI + Python backend),目前开发工作仍在持续进行中。
Note:本人对NR系统的理解也是逐步深入的,所以一些早期的开发笔记的里会存在一些谬误,时间关系可能未做更新。

最近几次的开发笔记链接如下

NG Toolset开发笔记--5GNR Resource Grid(41)  介绍PDSCH/PUSCH TBS计算实现细节
NG Toolset开发笔记--5GNR Resource Grid(40)  介绍Msg3 PUSCH相关实现细节
NG Toolset开发笔记--5GNR Resource Grid(39)  介绍时域SLIV相关实现细节
NG Toolset开发笔记--5GNR Resource Grid(38)  介绍频域RIV相关实现细节
NG Toolset开发笔记--5GNR Resource Grid(37//Milestone) 介绍UI的整体实现细节
开发笔记更新地址:blog.csdn.net/jeffyko


所有开发笔记及代码实现为本人版权所有,如需转载请务必注明来源,谢谢理解!




时间:  2018-12-16 14:39
作者: 芙蓉落叶

支持原创!
时间:  2018-12-25 17:48
作者: popliupop

谢谢分享
时间:  2019-3-1 09:14
作者: cyy1362

本帖最后由 jeffyko 于 2019-3-28 20:55 编辑

First alpha release of '5GNR resource grid' tool(ngapp_build20190320):
*UI complete
*recvSsb ok
*recvSib1 ok
*sendMsg1 ok
*recvMsg2 ok
*remaining functions are to be implemented

通过该工具,你可以:
(1) 了解到5GNR中Carrier/point-A/BWP等相互关系;
(2) 了解到5GNR中SSB及Type-0 CSS/CORESET0的相互关系;
(3) 了解到5GNR中如何接收RMSI(即SIB1);
(4) 了解到5GNR中PRACH配置,及SSB与PRACH的相互关系;
(5) 了解到5GNR随机接入过程中如何接收Msg2(即RAR);

Note:
(1) 工具涉及到较多的配置参数,需要对NR系统有一定程度的理解;也可移步至我的blog参阅相关内容;
(2) 压缩包解压路径中建议不要出现中文;
(3) 遇到dll缺失、程序崩溃或程序报错等问题而无法解决的,请提供:错误描述或错误截图、配置文件(ngapp/output/5gnr_grid_config_xxxx.cfg),通过邮件反馈给我。邮件地址及blog地址参见ngapp/Menu_Help/MenuItem_about
(4) 下载地址:
[已失效]
(5) User Manual: 点击'OK’按钮前请确认完成了下列配置:
tdd-ul-dl-config帧配置:
5gnr_manual_tddcfg.png
DCI 1_0 SIB1配置:
5gnr_manual_dci10_sib1.png
DCI 1_0 Msg2配置:
5gnr_manual_dci10_msg2.png
initial ul bwp, rach配置:
5gnr_manual_iniulbwp_rach.png





附件: 5gnr_manual_dci10_msg2.png (2019-3-20 08:58, 7.91 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=MzkwNzQ4fGU5ZjAxZmIzfDE3MzI1OTg5MDB8MHww

附件: 5gnr_manual_dci10_sib1.png (2019-3-20 08:58, 7.57 KB) / 下载次数 1
https://www.txrjy.com/forum.php?mod=attachment&aid=MzkwNzQ5fGJlODMxZDVjfDE3MzI1OTg5MDB8MHww

附件: 5gnr_manual_iniulbwp_rach.png (2019-3-20 08:58, 10.39 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=MzkwNzUwfDY0NmZjNDVkfDE3MzI1OTg5MDB8MHww

附件: 5gnr_manual_tddcfg.png (2019-3-20 08:58, 5.16 KB) / 下载次数 0
https://www.txrjy.com/forum.php?mod=attachment&aid=MzkwNzUxfGY0M2EwNzk1fDE3MzI1OTg5MDB8MHww
时间:  2019-3-20 09:51
作者: jeffyko

cyy1362 发表于 2019-3-1 09:14
First alpha release of '5GNR resource grid' tool(ngapp_build20190320):
*UI complete
*recvSsb ok
...

@cyy1362 sorry 才发现我是在编辑你的回复
时间:  2019-3-21 16:20
作者: cyy1362

本帖最后由 cyy1362 于 2019-3-21 16:21 编辑
jeffyko 发表于 2019-3-20 09:51
@cyy1362 sorry 才发现我是在编辑你的回复

呵呵。我使用了你的ngapp_build20190320,试着配了一些NR的参数,但是每次都配不成功,配完后都说有错误。能不能你设置一组默认的配置值(也就是 使用者不需要配置参数),初学者只要直接点击 Ok就能看到 资源映射的图呢?
时间:  2019-3-21 19:16
作者: jeffyko

cyy1362 发表于 2019-3-21 16:20
呵呵。我使用了你的ngapp_build20190320,试着配了一些NR的参数,但是每次都配不成功,配完后都说有错误。 ...

最好能把错误信息贴出来哈。你可以参照下面这组配置:
contents of ["freqBand"]: {'opBand': 'n77', 'duplexMode': 'TDD', 'maxDlFreq': 4200, 'freqRange': 'FR1'}
contents of ["ssbGrid"]: {'scs': '30KHz', 'pattern': 'Case C', 'minGuardBand240k': 'NA', 'kSsb': '0', 'nCrbSsb': '4'}
contents of ["ssbBurst"]: {'maxL': 8, 'inOneGroup': '00111111', 'groupPresence': 'NA', 'period': '20ms'}
contents of ["mib"]: {'sfn': '0', 'hrf': '0', 'dmrsTypeAPos': 'pos2', 'commonScs': '15KHz', 'rmsiCoreset0': '0', 'rmsiCss0': '0', 'coreset0MultiplexingPat': 1, 'coreset0NumRbs': 48, 'coreset0NumSymbs': 1, 'coreset0OffsetList': (2,), 'coreset0Offset': 2, 'coreset0StartRb': 0}
contents of ["carrierGrid"]: {'scs': '15KHz', 'bw': '10MHz', 'numRbs': '52', 'minGuardBand': '2'}
contents of ["pci"]: 0
contents of ["numUeAp"]: 4Tx
contents of ["tddCfg"]: {'refScs': '15KHz', 'pat1Period': '5ms', 'pat1NumDlSlots': '3', 'pat1NumDlSymbs': '10', 'pat1NumUlSymbs': '2', 'pat1NumUlSlots': '1', 'pat2Period': 'not used', 'pat2NumDlSlots': '', 'pat2NumDlSymbs': '', 'pat2NumUlSymbs': '', 'pat2NumUlSlots': ''}
contents of ["css0"]: {'aggLevel': '4', 'numCandidates': 'n4'}
contents of ["dci10Sib1"]: {'rnti': '0xFFFF', 'muPdcch': '0', 'muPdsch': '0', 'tdRa': '2', 'tdMappingType': 'Type A', 'tdK0': '0', 'tdSliv': '95', 'tdStartSymb': '2', 'tdNumSymbs': '9', 'fdRaType': 'RA Type1', 'fdRa': '00001011111', 'fdStartRb': '0', 'fdNumRbs': '48', 'fdVrbPrbMappingType': 'interleaved', 'fdBundleSize': 'n2', 'mcsCw0': '1', 'tbs': '1480'}
contents of ["dci10Msg2"]: {'rnti': '0x0001', 'muPdcch': '0', 'muPdsch': '0', 'tdRa': '3', 'tdMappingType': 'Type A', 'tdK0': '0', 'tdSliv': '86', 'tdStartSymb': '2', 'tdNumSymbs': '7', 'fdRaType': 'RA Type1', 'fdRa': '00001011111', 'fdStartRb': '0', 'fdNumRbs': '48', 'fdVrbPrbMappingType': 'interleaved', 'fdBundleSize': 'n2', 'mcsCw0': '2', 'tbScaling': '0', 'tbs': '1480'}
contents of ["dmrsSib1"]: {'dmrsType': 'Type 1', 'dmrsAddPos': 'pos2', 'maxLength': 'len1', 'dmrsPorts': '0', 'cdmGroupsWoData': '2', 'numFrontLoadSymbs': '1', 'tdL': [2, 6, 9], 'fdK': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
contents of ["dmrsMsg2"]: {'dmrsType': 'Type 1', 'dmrsAddPos': 'pos2', 'maxLength': 'len1', 'dmrsPorts': '0', 'cdmGroupsWoData': '2', 'numFrontLoadSymbs': '1', 'tdL': [2, 7], 'fdK': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
contents of ["iniUlBwp"]: {'bwpId': '0', 'scs': '15KHz', 'cp': 'normal', 'locAndBw': '14025', 'startRb': '0', 'numRbs': '52'}
contents of ["rach"]: {'prachConfId': '27', 'raFormat': '0', 'raX': 1, 'raY': (0,), 'raSubfNumFr1SlotNumFr2': (1, 3, 5, 7, 9), 'raStartingSymb': 0, 'raNumSlotsPerSubfFr1Per60KSlotFr2': 1, 'raNumOccasionsPerSlot': 1, 'raDuration': 0, 'scs': '1.25KHz', 'msg1Fdm': '2', 'msg1FreqStart': '0', 'raRespWin': 'sl4', 'totNumPreambs': '64', 'ssbPerRachOccasion': 'oneHalf', 'cbPreambsPerSsb': '4', 'msg3Tp': 'disabled', 'raLen': 839, 'raNumRbs': 6, 'raKBar': 7}
时间:  2019-3-21 19:32
作者: jeffyko

cyy1362 发表于 2019-3-21 16:20
呵呵。我使用了你的ngapp_build20190320,试着配了一些NR的参数,但是每次都配不成功,配完后都说有错误。 ...

整个工具的每一个小模块,如果不太熟悉,都容易导致错误配置。所以我特别说了,如果遇到错误无法解决的,请把配置情况发出来。
有几类错误比较常见:
(1)prach association period错误:比如prach configuration index = 0时,prach周期时160ms(x=16),且只有一个prach occasion/subframe,此时要msg1-FDM和ssb-per-rach-occasion要进行特殊配置,比如msg1-FDM=8,ssb-per-rach-occasion>=1。
(2)msg1与ssb RE重叠错误:此时需要看下log打印中monitorPdcch中选择的issb是多少,然后在grid settings--ssb burst---inOneGroup中相应的比特位从1改为0,即不配置索引为issb的SSB。
时间:  2019-3-26 16:27
作者: jeffyko

更新ngapp_build20190326,方便工具调测:
https://blog.csdn.net/jeffyko/article/details/88818520
时间:  2019-3-28 17:00
作者: jeffyko

本帖最后由 jeffyko 于 2019-3-28 17:00 编辑
jeffyko 发表于 2019-3-26 16:27
更新ngapp_build20190326,方便工具调测:
https://blog.csdn.net/jeffyko/article/details/88818520

更新ngapp_build20190327,新增“导入配置文件”功能:链接:https://pan.baidu.com/s/17hM1KFpXD5bXG5QQtrPD0w
提取码:rdbm


时间:  2019-3-28 19:13
作者: jeffyko

jeffyko 发表于 2019-3-28 17:00
更新ngapp_build20190327,新增“导入配置文件”功能:链接:https://pan.baidu.com/s/17hM1KFpXD5bXG5QQ ...


下列3组配置,供参考。
5gnr_grid_example_configurations.zip (3.32 KB, 下载次数: 25)


附件: 5gnr_grid_example_configurations.zip (2019-3-28 19:12, 3.32 KB) / 下载次数 25
https://www.txrjy.com/forum.php?mod=attachment&aid=MzkxNzkwfDZlNmNmOTQyfDE3MzI1OTg5MDB8MHww
时间:  2019-4-16 11:05
作者: Luzhiqian

楼主你好。 我完成配置后点OK提示的错误是
-->inside prepNrGrid
Traceback (most recent call last):
  File "ngnrgridui.py", line 10309, in onOkBtnClicked
  File "ngnrgridui.py", line 10498, in prepNrGrid
ValueError: invalid literal for int() with base 10: ''
因为对python完全没有了解,求帮忙。感谢。
时间:  2019-4-16 11:11
作者: wxc20071241

buguo
时间:  2019-4-16 11:17
作者: jeffyko

Luzhiqian 发表于 2019-4-16 11:05
楼主你好。 我完成配置后点OK提示的错误是
-->inside prepNrGrid
Traceback (most recent call last):

可能是UI上有参数没有配置。
如果是初学,建议你用build0327版本中的,“advanced settings”-- import existing configurationg功能吧,会省掉很多可能出现的参数配置错误。
10楼app链接,11楼配置文件
时间:  2019-4-16 11:26
作者: Luzhiqian

jeffyko 发表于 2019-4-16 11:17
可能是UI上有参数没有配置。
如果是初学,建议你用build0327版本中的,“advanced settings”-- import  ...

好的,谢谢
时间:  2019-4-19 15:10
作者: ezganfa

大神啊,膜拜了!只是看协议,就头晕了!好多概念都理不清楚啊!
时间:  2019-6-20 09:57
作者: 滚石唱片

本帖最后由 滚石唱片 于 2019-6-20 10:01 编辑

找到output文件了


时间:  2019-7-31 22:49
作者: jeffyko

Hi all,
ngapp_build20190730 has been released:
https://blog.csdn.net/jeffyko/article/details/97806132
时间:  2019-8-6 17:05
作者: sarah_haha


初学者,大神,大膜拜了!感谢!

时间:  2019-9-17 14:57
作者: wind399357046

大神,大膜拜了
时间:  2019-12-4 16:20
作者: simatianrun

大神,学习了~
时间:  2019-12-27 04:26
作者: sailor888

谢谢楼主分享!
时间:  2020-1-8 23:51
作者: kongwenhua

参考一下,自己配置的有错误

时间:  2020-1-29 18:29
作者: yuhan.hu

多谢楼主的无私分享,学习一下~

时间:  2020-2-14 14:54
作者: BelleQ

謝謝分享
时间:  2020-4-8 14:21
作者: cyqisno1

楼主牛
感谢楼主
时间:  2020-5-16 15:12
作者: jason.zhang633

牛牛牛
时间:  2020-5-25 16:05
作者: rq0396

好东东,谢谢楼主!
时间:  2020-5-25 16:28
作者: rq0396

为什么NR没有excel文件?LTE和NB是好的
时间:  2020-5-25 20:50
作者: jeffyko

rq0396 发表于 2020-5-25 16:28
为什么NR没有excel文件?LTE和NB是好的

ngapp_build20200522链接:
链接:https://pan.baidu.com/s/14816YXH1QO5UiABYqdUgUA 提取码:gyqb
配置文件: 5gnr_grid_config_20190810112557.cfg.zip (2.36 KB, 下载次数: 1)


附件: 5gnr_grid_config_20190810112557.cfg.zip (2020-5-25 20:50, 2.36 KB) / 下载次数 1
https://www.txrjy.com/forum.php?mod=attachment&aid=NDQxNDg4fDU4ZDk1MjFmfDE3MzI1OTg5MDB8MHww
时间:  2020-6-4 10:47
作者: llxxff

这是个好帖
时间:  2020-6-7 02:22
作者: jeffyko

I'm planning to reimplement ngapp using Golang.
possible enhancement(s):
1, excel report --> csv report per frame so that goroutines can be used to realize concurrency.
2, per frame resource grid will be shown on ngapp tabWidget as a separate tab, user can select which frame(s) to be shown
3, time/freq-domain scale can be disabled if same scs is used for rmsi/ss6/bwp(s) and rach/bwp(s), for example 30khz for FR1 and 120khz for FR2.
4, default settings for Fr1 and Fr2 so that novice users can get the result grids w/o too much effort
5, simulate one gnb and several ues
6, configuration file will be json format, not pure text with suffix .cfg
7, import configuration file will automatically fill related ui fields properly
8, possibly parse rrcReconfiguration as input configurations
9, add a tool for ARFCN/GSCN/actual_freq_in_MHz conversion
10, add possible web/cloud deployment option (use go for backend, use docker/k8s for cloud deployment)
11, possibly support r16 features: two-steps rach, rim-rs and urllc enhancement etc. (requirement analysis not ready)
12, add a tool for nr SU peak throughput calculation
13, introduce unified error handling and logging
14,

@all, pls let me know if you have some crazy ideas, thanks
also, if you are familar with golang programming, have reasonable understanding of 3gpp r15/r16 specs and are interested in ngapp, pls contact me so that maybe we can work this out together.


时间:  2020-6-12 00:40
作者: wangqiqiqqiqiqi

太棒了,谢谢楼主
时间:  2020-6-21 12:49
作者: Jack_Lin

jeffyko 发表于 2020-5-25 20:50
ngapp_build20200522链接:
链接:https://pan.baidu.com/s/14816YXH1QO5UiABYqdUgUA 提取码:gyqb
配置 ...

分享已失效,请问哪里可以下载最新版本的?包括配置文件。谢谢
时间:  2020-6-22 18:00
作者: jeffyko

本帖最后由 jeffyko 于 2020-8-2 12:00 编辑
Jack_Lin 发表于 2020-6-21 12:49
分享已失效,请问哪里可以下载最新版本的?包括配置文件。谢谢
2020/8/2 update:
链接: https://pan.baidu.com/s/1UcNwWww13UHjvkhSIjoBCg 提取码: vtui
时间:  2020-10-15 19:10
作者: monolu

,代码在git有吗
时间:  2020-11-25 10:37
作者: 一代码宗师

能开源吗?
时间:  2023-4-2 16:11
作者: jeffyko

需求分析部分更新如下:

possible enhancement(s):

1, excel report --> csv report per frame so that goroutines can be used to realize concurrency.

2, per frame resource grid will be shown on ngapp tabWidget as a separate tab, user can select which frame(s) to be shown

>>2023/2/22REQ#1/#2 are fulfilled by xlsx reporting.


3, time/freq-domain scale can be disabled if same scs is used for rmsi/ss6/bwp(s) and rach/bwp(s), for example 30khz for FR1 and 120khz for FR2.

>>2023/2/22: Assume that SSB/RMSI/Carrier/BWP use the same SCS


4, default settings for Fr1 and Fr2 so that novice users can get the result grids w/o too much effort

5, simulate one gnb and several ues

>>2023/4/1: requirement removed

6, configuration file will be json format, not pure text with suffix .cfg

>>2023/2/22: yaml format


7, import configuration file will automatically fill related ui fields properly

>>2023/2/22: UI removed, only CMD approach implemented

8, possibly parse rrcReconfiguration as input configurations

9, add a tool for ARFCN/GSCN/actual_freq_in_MHz conversion

>>2023/2/22: OK


10, add possible web/cloud deployment option (use go for backend, use docker/k8s for cloud deployment)

>>2023/4/1: requirement removed

11, possibly support r16 features: two-steps rach, rim-rs and urllc enhancement etc. (requirement analysis not ready)

>>2023/2/22: update to R17

12, add a tool for nr SU peak throughput calculation

13, introduce unified error handling and logging

>>2023/2/22: OK



重构后的工具共享如下,使用手册待补充。

ngapp_win64_v0.23.040103.zip

链接: https://pan.baidu.com/s/1jLjhuXyByZl9xbsYBEsc5g 提取码: webs



典型的命令行使用方式(请将ngapp_xxx.exe替换为实际的ngapp程序名称,如ngapp_win64_v0.23.040103.exe):

(1) CMCC 700M配置

ngapp_xxx.exe nrrg gridsetting --band=n28 --bw=30MHz --scs=15KHz --gscn=1931 --dlArfcn=154600 --rmsiCoreset0=7 --rmsiCss0=4 --dmrsTypeAPos=pos2



(2) CMCC 2.6G配置

ngapp_xxx.exe nrrg gridsetting --band=n41 --bw=100MHz --scs=30KHz --gscn=6363 --dlArfcn=509004 --rmsiCoreset0=12 --rmsiCss0=0 --dmrsTypeAPos=pos2



导出的NRRG栅格在./logs目录下,命名为nrrg_export_timestamp.xlsx



工具仍然在重构中,功能会逐步完善。如有使用问题请CSDN联系或者站内留言。



时间:  2023-6-28 14:56
作者: shengfeng73

jeffyko 发表于 2023-4-2 16:11
需求分析部分更新如下:

possible enhancement(s):

百度网盘,链接已失效。能否重新分享一份?谢谢!




通信人家园 (https://www.txrjy.com/) Powered by C114