NR PUSCH(四) Frequency hopping

article/2025/11/6 2:23:43

微信公众号同步更新,欢迎关注同名modem协议笔记

上篇PUSCH 介绍了频域分配方式resource allocation type0/1/2,其中type 0 RBG位图的分配方式比较灵活,type 2对应的interlaced RB 本身就是一种频域的离散化,都可以实现类似的效果;但type1由于分配的是连续的RB,所以就需要通过跳频的方式实现频域的离散化,进而提升抗干扰能力,降低截获概率,有效抗衰落,从而有效提高通信质量。跳频主要在R16 版本38.214 6.3章节中描述,是根据时域的PUSCH repetition Type A和B 进行区分,由于R16增加了2-step RA 的内容,跳频也做了相应的修改。enable 跳频时,对于PUSCH repetition Type A ,可以进行intraslot 和interslot跳频;而PUSCH reptition Type B 可以进行interslot和interRepetition 类型的跳频,这里只提下具体后面再看。先看下RRC 层PUSCH repetition Type A和B 的跳频配置。

5b441ad830af4a7a8429c4d7c909f0e8.png

ConfiguredGrantConfig 下的frequencyHopping 对应的是pusch-RepTypeA 的配置,可以配置为intraSlot和interSlot,缺省时就认为frequency hopping时disable状态;

ConfiguredGrantConfig ->rrc-ConfiguredUplinkGrant 对应的是Type 1CG的配置,pusch-RepTypeIndicator可以配置为pusch-RepTypeA 或B,配置为pusch-RepTypeB时,跳频方式由frequencyHoppingPUSCH-RepTypeB 决定,frequencyHoppingPUSCH-RepTypeB 可以配置为interslot和interRepetition,如果frequencyHoppingPUSCH-RepTypeB缺省,默认CG Type 1的frequency hopping disable。

a17634a0a86048c3a5a30a5ebc612ecc.png

pusch-Config 也可以配置frequencyHopping相关的参数,其中frequencyHopping(intra-Slot和inter-Slot)和frequencyHoppingOffsetLists是PUSCH-RepTypeA DCI 0_0/0_1调度时跳频所用参数,当frequencyHopping缺省时,则认为PUSCH-RepTypeA不进行跳频;pusch-RepTypeIndicatorDCI-0-1-r16则用于指定DCI 0_1的PUSCH-RepType,

frequencyHoppingDCI-0-1-r16 是PUSCH-RepTypeB DCI 0_1调度时跳频所用参数,缺省时,默认DCI 0_1 disable 跳频;同理,pusch-RepTypeIndicatorDCI-0-2-r16用于指示DCI 0_2 的PUSCH-RepType,frequencyHoppingDCI-0-2-r16 对应DCI 0_2调度时跳频所用参数,PUSCH-RepTypeB 配置为interRepetition和interSlot,PUSCH-RepTypeA 配置为intraSlot和interSlot,不配置requencyHoppingDCI-0-2-r16时,默认pusch-RepTypeB下的DCI 0_2 disable跳频。

如上所述跳频主要需要确定pusch-RepType和 frequencyHoppingOffset,最后根据一定的规则就可以确定具体形式。现在具体看下PUSCH repetition Type A 和B的frequency hopping内容。

PUSCH repetition Type A

09a52c1596b447aba3dba79f1b870801.png

PUSCH repetition Type A 网络端会针对不同的场景进行配置和上面的RRC层参数相关:(1)DCI 0_2:通过在RRC层pusch-Config中配置frequencyHoppingDCI-0-2;(2)其他DCI:pusch-Config配置frequencyHopping;(3)ConfiguredGrant 传输:在ConfiguredGrantConfig中配置frequencyHopping。

跳频方式可以配置为intra-slot 跳频及inter-slot跳频,其中intra-slot跳频适用于single slot及multi-slot PUSCH 传输;inter-slot跳频适用于multi-slot PUSCH传输。

在frequency resource allocation type 2场景,即NR-U场景,PUSCH不需要跳频,其实interlace RB 的定义方式已经是一种跳频方式,不需要再额外规定跳频。

Frequency hopping offset 的确定

494bd5b1930345c7a37a6fb87c1dc118.png

当使用Resource Allocation type 1时(即分配连续一段RB),不管transform precoding开不开,当DCI format frequency hopping field 设置为1 或者RAR UL grant 对应的DCI format frequency hopping field 设置为1 或Configured grant type 1有配置frequency HoppingOffset时,UE就要enable跳频, 其他情况下,不启用跳频。

0093f6b63ea2481f9b83e7b706254c38.png

对于RAR UL grant/fallbackRAR UL grant/TC-RNTI加扰的DCI 0_0,需要根据DCI field Frequency domain resource assignment 和Frequency hopping flag  及UL BWP的size 共同决定跳频具体情况。Frequency hopping flag =1 代表要进行PUSCH 跳频,Initial UL bwp size < 50 PRBs,DCI field Frequency domain resource 最高 bit位对应N_UL_hop,查38.213 Table 8.3-1,即可确定第2跳的Frequency offset,N_UL_hop=0 时,第2跳的Frequency offset为N_BWP_size/2(向下取整);N_UL_hop=1 时,第2跳的Frequency offset为N_BWP_size/4(向下取整)。Initial UL bwp size >= 50 PRBs,DCI field Frequency domain resource 最高 2bit位对应N_UL_hop,N_UL_hop=00 时,第2跳的Frequency offset为N_BWP_size/2(向下取整);N_UL_hop=01 时,第2跳的Frequency offset为N_BWP_size/4(向下取整);N_UL_hop=10 时,第2跳的Frequency offset为-N_BWP_size/4(向下取整);N_UL_hop=11 为Reserved情况;具体对应关系如下。

c91042190f6f4b73a444bea97721b100.png

除去RAR UL grant/fallbackRAR UL grant/TC-RNTI加扰的DCI 0_0的情况,对于resource allocation type 1的频域分配,其他DCI0_0/0_1或由DCI 0_0/0_1激活的Configured type 2 PUSCH 传输,frequency offsets由pusch-Config中的frequencyHoppingOffsetLists 提供;对于DCI0_2或由DCI 0_2激活的Configured type 2 PUSCH 传输,frequency offsets由pusch-Config中的frequencyHoppingOffsetListsDCI-0-2提供。

Frequency hopping flag =1 代表要进行PUSCH 跳频:当激活的BWP<50 PRBs时,RRC 层配置的frequencyHoppingOffsetLists中最多配置2个offset值,根据DCI field Frequency domain resource assignment的最高1bits 从offsetLists中确定用于跳频offset,例如最高bit位为0,则取第一个值,否则第二个值;当激活的BWP>=50 PRBs时,RRC 层配置的frequencyHoppingOffsetLists中最多配置4个offset值,根据DCI field Frequency domain resource assignment的最高2bits(正好最多对应4个值)从offsetLists中确定用于跳频offset,例如,最高bit位为00,则取第一个值,最高bit位为01,则取第二个值,最高bit位为10,则取第三个值,最高bit位为11,则取第四个值。其余bit 就用于具体的频域资源分配,没有enable 跳频时,所有的bit都用于频域资源分配;注意:对于DCI 0_1/0_2,如果Frequency Domain Resource Assignment 的MSB(最高bit位)用于指定Allocation type(RRC层配置为dynamic switch时),则N_UL_hop对应的就是剩余bits的MSB。Resource Allocation Type 1频域资源分配详见NR PUSCH(三) 频域资源。

N_UL_hop和frequencyHoppingOffsetLists具体关系如下。

915fedf94eef46969841b6b52245a9bf.png

Configured grant type 1 PUSCH 传输和MsgA PUSCH 的frequency offset 都有RRC 层参数配置。configured grant type 1 PUSCH 传输:ConfiguredGrantConfig->rrc-ConfiguredUplinkGrant->frequencyhoppingoffset,最开始部分已经介绍,下面看下Msg A PUSCH的 frequency hopping。

 

Msg A PUSCH Frequency hopping offset

fe542154fd2b4f548623329b0917e478.png

MsgA pusch 只有intra slot 跳频,跳频offset 由MsgA-PUSCH-Config->guardPeriodMsgA-PUSCH及msgA-intraSlotFrequencyHopping和msgA-HoppingBits 共同决定。

msgA-intraSlotFrequencyHopping 只能配置成enable,缺省就默认disable。参照38.213 Table 8.3-1  将N_UL,hop替换成msgA-HoppingBits ,即可确定msgA的frequency offset。如果还有配置guardPeriodMsgA-PUSCH的话,那msgA第一跳和第二跳的符号间隔就是guardPeriodMsgA-PUSCH(0~3符号)。RRC层配置及msgA-HoppingBits与第二跳offset的关系如下。

3f82f59a48bd4b7ea297eeefcaac9315.png

3532bdc402e94edd87a89dd64b5fa9c0.png

Frequency hopping 

UE得到Frequency hopping offset后,就可以确定具体的跳频方式。

6eabcd66a7f74743863f559385581abb.png

对于intra-slot 跳频,频域第一跳起点对应的就是PUSCH的起始RB,根据resource allocation type 1(RIV)或者msgA PUSCH资源分配确定,第二跳的起点由公式(RBstart+RBoffset) mod N_size_BWP确定;第一跳占用的符号为N_PUSCH,s_symb/2(向下取整),第二跳对应的符号为N_PUSCH,s_symb -N_PUSCH,s_symb/2(向下取整),其中N_PUSCH,s_symb/2 为PUSCH 传输在一个时隙内占用的符号数,时频域示图如下。

8412882db44d446bb19ebed8e45fa257.png

4f58664988bd4e3f8c2eb054d42ca54d.png

对于inter-slot 跳频,频域RB的确定方式与intra-slot相同,只不过需要根据时隙号确定传输占用的RB范围,奇数时隙对应RBstart,偶数时隙对应(RBstart+RBoffset) mod N_size_BWP,时频域示图如下。

10cc9ffe31c24f5c82633f73e0f621b7.png

 

Frequency hopping for PUSCH repetition Type B

f852db49e51f463a8acc2f5a19196aa6.png

对于PUSCH repetition Type B,跳频只能配置成Inter-repetition 或inter-slot frequency hopping。PUSCH repetition type B和A 有很多内容重复,具体原理一样,唯一的区别就是Inter-repetition的跳频情况,后面类似内容可以略过。

26229560dc75454a88cc585795495c33.png

当使用Resource Allocation type 1时,不管transform precoding开不开,当DCI format frequency hopping field 设置为1 或Configured grant type 1有配置frequency HoppingOffsetPUSCH-RepTypeB时,UE就要enable跳频, 其他情况下,不启用跳频。

a83b7dcf6b8049ce80209c32ed0c4dcc.png

resource allocation type 1, 由DCI 0_1调度的PUSCH或由DCI 0_1激活的CG Type 2时,Frequency offset由RRC pusch-Config中的frequencyHoppingOffsetLists 提供;由DCI 0_2调度的PUSCH或由DCI 0_2激活的CG Type 2时,Frequency offset由RRC pusch-Config中的frequencyHoppingOffsetListsDCI-0-2 提供。Frequency hopping flag =1 代表要进行PUSCH 跳频:当激活的BWP<50 PRBs时,RRC 层配置的frequencyHoppingOffsetLists中最多配置2个offset值,根据DCI field Frequency domain resource assignment的最高1bits 从offsetLists中确定用于跳频offset,最高bit位为0,则取第一个值,否则第二个值;当激活的BWP>=50 PRBs时,RRC 层配置的frequencyHoppingOffsetLists中最多配置4个offset值,根据DCI field Frequency domain resource assignment的最高2bits(正好最多对应4个值)从offsetLists中确定用于跳频offset,最高bit位为00,则取第一个值,最高bit位为01,则取第二个值,最高bit位为10,则取第三个值,最高bit位为11,则取第四个值。其余bit 就用于具体的频域资源分配。

Inter-repetition frequency hopping

91425efbf93d4e6d97ddbd0c828a793d.png

inter-repetition 跳频需要根据 nominal repetition 的次数决定 每次repetition 传输的跳频位置,每次repetition也都定义对应各自符号period ,每次nominal repetition 的时域period详见NR PUSCH(二) 动态调度时域资源,最终映射图示如下。

3fa108b05bf843e5a4ab63743e9ba5b9.png

Inter-slot frequency hopping

0f5646585a884ec383cdc5102eabc1e7.png

inter-slot frequency hopping和PUSCH Repetition Type A情况相同,不赘述。

7e93d07423a94bd3b4e426faef95f9d9.png

 

 

 


http://chatgpt.dhexx.cn/article/erPJclr1.shtml

相关文章

halcon中阈值分割算子用法

1.threshold(Image : Region : MinGray, MaxGray : )&#xff1a;通过给定的阈值区间对图像进行分割 效果图&#xff1a; read_image (Audi2, audi2) fill_interlace (Audi2, ImageFilled, odd) threshold (ImageFilled, Region, 0, 90) 2.binary_threshold(Image : Region : …

De-interlace 反交错 简介

<script type"text/javascript"> </script> <script type"text/javascript"> </script> 为了更好的理解新的逐行扫瞄的概念&#xff0c;必须先弄清楚电视传输的一些基本知识&#xff0c;一副图像是如何传输的&#xff0c;它与新的…

pygame加载png出现known incorrect sRGB,Interlace handling should be turned on when using png_read_image问题

使用pygame加载png出现libpng warning: iCCP: known incorrect sRGB profile和Interlace handling should be turned on when using png_read_image警告的问题 一、解决Interlace handling should be turned on when using png_read_image警告 最近使用Python实现强化学习走迷…

计算机视觉之旅(Day3)

对不起大家&#xff0c;opencv的坑我尽量在年底更完&#xff0c;C的坑已经基本更完了&#xff0c;在没有进一步深入学习C之前可能这个系列已经算完了。不多说&#xff0c;我看看机器视觉的基本内容吧。 &#xff08;一&#xff09;基本构成 传统的机器视觉系统是由待测目标、…

交错(拉丝)(Interlace) 与 反胶卷过带

第一部分——交错&#xff08;拉丝&#xff09;&#xff08;Interlace&#xff09;的产生 引用了相当多网友的分析与结论&#xff0c;恕我不能依次注明。分析主要来自“[SilkyBible] 视频知识系列”&#xff0c;就主要概念的主要影响因素进行了一点分析。如果有错误&#xff0c…

二分法之最大子段和

1.问题描述&#xff1a;给定一个数组&#xff0c;找出其中可以构成最大数的子段&#xff0c;子段和是由连续的子段构成的&#xff1b;给定有n个整数(可能为负整数)组成的序列a1,a2,...,an,求该序列连续的子段和的最大值。 2.设计思路&#xff1a;对于一个连续的子段和&#xf…

java动态规划求最大子段和_动态规划-最大子段和

2018-01-14 21:14:58 一、最大子段和问题 问题描述&#xff1a;给定n个整数(可能有负数)组成的序列a1&#xff0c;a2&#xff0c;...&#xff0c;an&#xff0c;求该序列的最大子段和。如果所有整数都是负数&#xff0c;那么定义其最大子段和为0。 方法一、最大子段和的简单算法…

四种方法求解最大子段和问题

题目描述 给定一段长度为n的序列&#xff0c;我们需要找到其中一个连续的子段&#xff0c;使这个子段中各个元素加和最大&#xff0c;如果这个数组中全为负整数&#xff0c;我们就定义这个子段和为0. 题目分析 首先我们的目的是找一个局部的子段但加和是全局最大&#xff0c;…

最大子段和问题(分治法和动态规划)

什么是最大子段和&#xff0c;通俗点讲&#xff1a; 最大子段和就是给了一些数&#xff0c;然后你从中找了几个连续的数&#xff0c;这组连续的数的和比任意一组连续的数的和都大&#xff0c;那么你找的这几个连续的数的和就是这些数的最大子段和。 通俗的听不懂你就看这里&am…

最大子段求和

3种算法&#xff1a;最大子段求和 一、问题分析 问题&#xff1a;给定有n个整数(可能为负整数)组成的序列 a 1 , a 2 , . . . , a n , a_1,a_2,...,a_n, a1​,a2​,...,an​,求该序列连续的子段和的最大值。 如果该子段的所有元素和是负整数时定义其最大子段和为0。 简易算法…

最大子段和问题(3种方法)

给定由n个整数(可能为负整数)组成的序列a1&#xff0c;a2&#xff0c; a3… &#xff0c; an&#xff0c; 寻找它的某个连续子段&#xff0c;使得其和最大。例如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和为20。 1、最大字段和问题的简单算法 (1)枚举法求解&#xff1…

最大子段和(动态规划算法)

最大子段和&#xff08;动态规划算法&#xff09; 文章目录 最大子段和&#xff08;动态规划算法&#xff09;一、思路二、伪代码三、C代码四、输入实例 一、思路 D[i]表示从i开始的最大字段和。&#xff08;但我们不是从前往后找字段结束位置&#xff09; 根据递推公式&#x…

最大子段和——用蛮力算法,分治策略,动态规划算法三种求法(C语言)

目录 一、题目 二、算法求解 1、蛮力算法 伪代码 算法分析 程序 2、分治策略 伪代码 算法分析 程序 3、动态规划算法 伪代码 算法分析 程序 一、题目 设A<a1,a2,...,an>是n个整数的序列&#xff0c;称<ai,....,aj>为该序列的连续子序列&#xff0c;其…

归并排序 java实现_java实现归并排序

归并排序 归并排序&#xff0c;指的是将两个已经排序的序列合并成一个序列的操作。 归并操作的过程如下&#xff1a; 申请空间&#xff0c;使其大小为两个已经排序序列之和&#xff0c;该空间用来存放合并后的序列 设定两个指针&#xff0c;最初位置分别为两个已经排序序列的起…

Java八大算法:归并排序

一、什么是归并排序&#xff1f; 1.概念 归并排序&#xff08;Merge sort&#xff09;是建立在归并操作上的一种有效的排序算法&#xff0c;归并排序对序列的元素进行逐层折半分组&#xff0c;然后从最小分组开始比较排序&#xff0c;合并成一个大的分组&#xff0c;逐层进行…

归并排序(Java代码实现)

基本思想&#xff1a; 将两个或两个以上的有序表合并成一个有序表的过程。常用的归并为2-路归并&#xff0c;就是将两个有序表合为一个有序表。 过程&#xff1a; 先来看一张示意图&#xff1a; 可以看出&#xff0c;归并排序分为分解和合并两个步骤。 分解就是将原数组分解…

归并排序(Java实现)

归并排序&#xff08;Merge Sort&#xff09;是建立在归并操作上的一种有效&#xff0c;稳定的排序算法&#xff0c;该算法是采用分治法&#xff08;Divide and Conquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先…

归并排序java详解

import java.util.Arrays;public class Mergesort {public static void main(String[] args) {int arr[]{8,4,5,7,1,3,6,2};int temp[]new int[arr.length];//归并排序需要一个额外空间mergeSort(arr,0,arr.length-1,temp);System.out.println("归并排序后" Arrays.t…

java归并排序(含归并排序代码)

目录 一&#xff1a;归并排序的思想 二&#xff1a;归并排序代码 三&#xff1a;归并排序结果​ 一&#xff1a;归并排序的思想 归并排序&#xff08;Merge Sort&#xff09; 当我们要排序这样一个数组的时候&#xff0c;归并排序法首先将这个数组分成一半。如图&#xff1a…

归并排序java代码实现

归并排序,是一种分治算法。利用递归&#xff0c;将一个大的数据集合分解成小的子集合。将子集合排好序后&#xff0c;再合并起来。归并排序不是原地排序算法,因为它使用到了临时空间&#xff0c;这也是归并排序没有快速排序应用广泛的主要原因&#xff0c;虽然归并排序的时间复…