NR PUSCH(五) DMRS

news2025/1/13 2:56:00

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

PUSCH DMRS和PDSCH DMRS内容基本一样,但也有不同的地方,例如PUSCH 可能需要Transform precoding,port 对应0~11(DMRS configured type2)等等。先简单看看Transformprecoding的相关内容,Transformprecoding主要集中在38.211 6.3.1.4。Transformprecoding enable与否与PUSCH 使用的波形有关系,disable时对应的是cyclic Prefix OFDM,enable时对应的是DFT-s-OFDM,更具体的DFT-s-OFDM适合远距离传输,而CP-OFDM,如果使用较大的功率发送,由于PAPR的原因,难以保证信号的稳定性,所以CP-OFDM适用于距离较近的传输。在enable Transformingprecoding(DFT-s-OFDM)时只支持 one layer传输,disable Transformingprecoding(CP-OFDM)时,最大可支持四层传输,但是实际中由于硬件的限制,目前UE只能最大支持上行2 layer传输。一般在NR中 FR1优先使用DFT-s-OFDM,FR2中使用CP-OFDM,当然这个也和具体场景有关系,总之,UE根据网络带下来的参数,听指挥就好。

除此之外Transformprecoding enable与否还和PUSCH DMRS的序列生成有关, enable时采用低均峰比序列,disable时 采用伪随机序列,后面再具体看。

 

如何确定PUSCH 是否有enable transform precoding?其相关规定就在38.214 6.1.3,接下来就来看一看。

38.214 6.1.3 UE procedure for applying transform precoding on PUSCH

310250865b934f42b12baa17f4141768.png

对于RAR UL grant/fallbackRAR UL grant/TC-RNTI加扰的DCI 0_0调度的PUSCH,需要根据RRC 层参数msg3-transformPrecoder决定,配置时只能设置为enable,不配置缺省时,就默认disable transform precoding。

78d6478c742a4853ab46bee5ebf7eb72.png

Msg A PUSCH的传输,UE要根据RRC层参数msgA-TransformPrecoder 决定(可以配置成enable 或者disable),如果msgA-TransformPrecoder没有配置,则根据msg3-transformPrecoder 决定是否enable transform precoder。

1308e836d0c54580bcda4c6698c35be8.png

对于C-RNTI/MCS-C-RNTI/SP-CSI-RNTI/CS-RNTI(NDI=1)加扰的PDCCH调度的PUSCH传输:

如果是DCI 0_0, 根据msg3-transformPrecoder决定;否则根据pusch-Config中的transformPrecoder决定,如果transformPrecoder缺省,根据msg3-transformPrecoder进行配置。

750207e3865845e2b09bb4528cd79635.png

对于Configured grant场景,根据ConfiguredGrantConfig中的transformPrecoder决定,如果transformPrecoder缺省,根据msg3-transformPrecoder进行配置。

 

确定完transformPrecoding具体情况后,接下来就可以看PUSCH DMRS相关内容,PUSCH DMRS具体描述在38.211 6.4.1.1,在此之前,先大概看下RRC层PUSCH DMRS相关的内容。

 

PUSCH DMRS时域特性

1 前置DM-RS 位于PDSCH 符号的前面(占用1-2个符号):

PUSCH mapping Type A(PUSCH 起始位置0-3,占用3-14个符号)

   前置DM-RS 在时隙内的起始位置为2或3,默认为2 在MIB中配置

   前置DM-RS 在时隙内可以占用1或2个符号,默认1个

  由RRC层配置参数中的maxLength和DCI相关字段决定。

前置DMRS参数在MIB中配置:

4b356b1b038c4e85ad94c296449af265.png

3b814ef5133747d2a0e38723e6601cb6.png

 

2 Additional DMRS

bb587f101f884f479d8cad119bb6f688.png

c977a2f786b840ccbd0d3cb66e5e628d.png

dmrs-AdditionalPosition位于PUSCH 符号的中间,占用1-2符号 适用于UE移动场景,需要时域上更多的DMRS进行信道估计;由RRC层参数DMRS-UplinkConfig中 配置起始位置,不配置时默认为pos2

 

PUSCH DMRS 序列

针对是否有enable  transform precoding  有不同的序列生成方式,先看下disable transform precoding 的情况。

38.211 6.4.1.1.1.1                 Sequence generation when transform precoding is disabled

f6becf8ce3e84303a120a5ebb42281ab.png

disable transform precoding 时,序列对应的是伪随机序列,需要赋初值。

ef61cb0e58cb4e159ea99ec343642bbc.png

序列初始化需要用到 N_ID_0 或N_ID_1,当PUSCH 是由DCI 0_1或0_2调度及configured grant 场景时,N_ID_0 和N_ID_1由DMRS-UplinkConfig中的scramblingID0和scramblingID1 提供;当PUSCH 是由C-RNTI ,MCS-C-RNTI 或CS-RNTI 加扰的DCI0_0 调度时,在DMRS-UplinkConfig中的只会配置scramblingID0,对应N_ID_0的值;对于Type-2RA场景 msgA对应的PUSCH occasion ,scramblingID0 和scramblingID1的值 由msgA-DMRS-Config中的msgA-ScramblingID0 和msgA-ScramblingID提供。否则公式中N_ID相关的参数就由N_cell_ID提供。

aa0fd37f209f4e64a9ada33d878f3aac.png

n_SCID的确定:如果DCI0_1/0_2调度时中,有DMRS sequence initialization field,就取该值;对于Configured grant type 1 PUSCH 传输,由RRC层参数dmrs-SeqIntialization提供;其他情况 n_SCID=0.

e0ddd206d1474a028cf81ff60c65890e.png

enable transform precoding时,使用的是 Low-PAPR序列。

4ed1cf6767f0401d844ac02402791a7e.png

c95f6ee028124a3a8a6c2d72b508840b.png

enable transform precoding时 采用的序列需要根据配置确定,如果有接下来描述的参数配置时 就采用 Low-PAPR sequence generation type 2 其中fe9f3d0e1b804602b63be71ca725daf6.png :

1 序列初始化需要用到 N_ID_0 或N_ID_1,当PUSCH 是由DCI 0_1或0_2(antenna ports 不为0 bit)调度及configured grant 场景时,N_ID_0 和N_ID_1由DMRS-UplinkConfig中的pi2BPSK-scramblingID0和pi2BPSK-scramblingID1提供;

2 当PUSCH 是由C-RNTI ,MCS-C-RNTI 或CS-RNTI 加扰的DCI0_0 调度或者DCI 0_2(antenna ports 是0 bit的场景)时,在DMRS-UplinkConfig中的只会配置pi2BPSK-scramblingID0,对应N_ID_0的值;否则 其余场景,公式中N_ID相关的参数就由N_cell_ID提供。

3 n_SCID的确定:如果DCI0_1/0_2(antenna ports 不为0 bit)调度时,与antenna ports field有关系,38.212 有相关场景的描述,根据描述取对应的值;对于Configured grant type 1 PUSCH 传输,由RRC层参数antennaPort提供;其他情况 n_SCID=0.

 

没有上述参数配置时,采用 Low-PAPR sequence generation type 1,其中bc99e169a21947439c1422493134b9de.png 。Low-PAPR sequence在38.211 5.2.2有具体描述,这里没有展开写,不过在NR PUUCH (一) PUCCH format 0/1中有做了简单介绍,感兴趣可以看下。

0f882970717448a8882b94794e58a038.png

如NR PUCCH(一) PUCCH format 0/1中所述,要确定具体的低均峰比序列还需要确定u和v。u=(fgh+n_RS_ID) mod 30,u的确定与n_RS_ID和fgh有关系,先看下n_RS_ID,n_RS_ID取值分几种情况:

1 RRC层没有配置dmrs-UplinkTransformPrecoding或配置了dmrs-UplinkTransformPrecoding但不是用pi/2-BPSK调制,且此时的PUSCH不是RAR UL grant及TC-RNTI加扰的DCI 0_0场景,

如果在DMRS-UplinConfig中有配置nPUSCH-Identity时,n_RS_ID=nPUSCH-Identity;

2 配置了dmrs-UplinkTransformPrecoding且用pi/2-BPSK调制,但PUSCH传输对应的不是msg3传输及CSS 的DCI 0_0调度时,n_RS_ID=N_n_SCID_ID

3 其他情况n_RS_ID=N_cell_ID。

上面有句话“ RRC层没有配置dmrs-UplinkTransformPrecoding或配置了dmrs-UplinkTransformPrecoding但不是用pi/2-BPSK调制”读起来很难理解,那先看RRC层参数 这里配置dmrs-UplinkTransformPrecoding带的参数只能是pi2BPSK-Scrambling0/1(用于pi2-BPSK调制场景),那配置了dmrs-UplinkTransformPrecoding但不是用pi/2-BPSK调制,对应的具体是什么配置情况?其实在配置dmrs-UplinkTransformPrecoding时,pi2BPSK-Scrambling0/1 是可以不配置的,不配置默认就用n_cell_id。

u=(fgh+n_RS_ID) mod 30 现在n_RS_ID确定好了,还要确定fgh 和v才能最终确定低均峰比序列。

d4375306de9a466f93951b4fc4af1622.png

fgh和v的确定方式和group sequence hopping的配置有关系:1 group和sequence hopping都没有enable时,fgh=v=0; 2 enable group hopping 但是sequence hopping disable时,fgh由上面的公式确定,v=0;3 sequence hopping enable但是group hopping disable时,v由公式确定,fgh=0。

06d1b7378f6346118066811c6de1cca4.png

hopping 的确定仍然取决于RRC 层参数:1 RAR UL grant 或TC-RNTI加扰的DCI 0_0场景,sequence hopping 默认disable,group hopping由参数groupHoppingEnabledTransformPrecoding确定。

2 其他场景,RRC 层参数sequencyHopping 和sequencyGroupHopping 决定hopping mode;如果没有配置的话,就设定成Msg3 采用的hopping mode。(公式中用的l在single-symbol场景对应的是DMRS占用的symbol number,在double-symbol DMRS场景,l对应的是double-symbol DMRS的第一个symbol number)

那msg3 的hopping mode 是什么样的?msg 3对应的就在上面1的描述中,msg3 的sequencyHopping是disable的,group hopping由参数groupHoppingEnabledTransformPrecoding确定。

PUSCH DMRS资源映射

67416424ab1d470f98947740bb3512b4.png

具体映射的过程还要考虑DMRS type,PUSCH DMRS 支持type1和type 2 两种配置,RRC 配置dmrs-type 的时候只能配置为type2,不配置就默认为type1。

disable transform precoding时,DMRS资源映射对应Type1 和Type2,需要由RRC层参数DMRS-UplinkConfig中的dmrs-type决定,RRC层配置dmrs-Type时,只能配置成type2,缺省时,默认用type1.

f78a5e791fdf4f8f8d9927d8dd122540.png

enable transform precoding时 对应DFT-s-OFDM,此时只能采用type 1的映射方式,且对应单layer传输(j固定为0,j 为layer number)。

type1和type2可以通过映射公式中的K简单区分,k代表的是子载波number,PUSCH 和PDSCH 资源映射公式一模一样,可以参考NR PDSCH(四) DMRS 中两种type的推导结果,type 1的DMRS 密度明显高于type2,这也就决定着type1的信道估计特性优于type2。不过这里还是顺手按照PDSCH DMRS的内容照抄推了下,主要区别在于PUSCH DMRS port对应的是0~11(configured type 2)。

586d8a6deb6d475db1734f4a84e017b7.png

对比上面的表格可以看出:

Type1 1个时域符号支持最大4个正交端口,2个时域符号支持最大8个正交端口;

Type2 1个时域符号支持最大6个正交端口,2个时域符号支持最大12个正交端口;

Type1 DMRS被分为了2个CDM group ;type2 DMRS被分成了3个CDM group。

 

下面来推导下CDM group,端口与subcarrier 间的映射关系。

先看Type1

e811896b90974e218a99d20dce9ef934.png

 

具体的映射关系如下:

CDM group 0 port 0/1/4/5 k=0/2/4/6/8/10

CDM group 1 port 2/3/6/7 k=1/3/5/7/9/11

 

根据上面的计算看到不同的port会映射到相同的频域资源上,也可以看出delta决定着频域资源,delta相同意味着频域资源相同,这时候就需要对时频域按照码分的方式进行复用。

798485628bbe46849e3923fefaad823d.png

单符号DMRS(一列频域资源)对应 port 0~3,时域码分用不到(全为+1);0/1频域资源相同,这时就需要频域码分来解决2个port的复用问题。

双符号DMRS 对应port 0~7,0/1/4/5 频域资源相同,这时候就需要结合频域和时域的码分来解决4port的复用问题。

从数学上看,这里是用排列组合的方式来解决8 port 的复用问题,Delta(0,1)2个数值区分频域资源,频域码分(k'=0,k'=1)2个数值区分频域复用,时域码分(l'=0,l'=1)2个数值区分时域复用,这样就可以区分2*2*2=8种情况,正好对应的8 port。

 

结合上面的推导结果和Table 6.4.1.1.3-1 ,single symbol DMRS ,4port 码分及子载波占用情况如下

5c1ca7998ee744e9959713a5ecf7b064.png

double symbol 时频域码分的情况如下

09e71c5763e940a69abbcfbca721954d.png

Type2 与type1 情况类似,主要通过Table6.4.1.1.3-2确定。

fe3a4224119b473b8cf0db51dadf89b2.png

单符号支持天线端口0-5,双符号支持天线端口0-11。 

Delta 3个数值区分频域资源,k' 取2个值区分频域复用,l'取2个值区分时域复用,共3*2*2=12 种情况,正好供12 port复用。

这里有12个port,并不代表UE可以进行12layer传输,NR UL UE最多支持4layer传输,所以要从基站的角度看这12 port,例如基站可以分别让3个UE 进行4 layer传输,或者同时让6个UE 2 layer传输,目前UE 最多也只能支持UL 2 layer传输,具体分配方式主要在DCI field"Antenna port" 中体现。

Type2 资源映射的推导过程

519cc277f0fc4e97ad70e04e44db33e8.png

 

映射关系

CDM group 0 port 0/1/6/7  k=0/1/6/7

CDM group 1 port 2/3/8/9  k=2/3/8/9

CDM group 2 port 4/5/10/11  k=4/5/10/11

从上可知Type2 DMRS被分成了3个CDM group,此举也是为了支持更多port复用,相比于Type 1明显降低了频域密度。

其他内容参考Type 1,不再赘述。

5fc59217ff64480b91238cab7883c9de.png

值得注意的是在进行预编码时,需要乘上一个beta值以便满足传输power的要求,这个beta值跟DCI field Antenna ports指定的Number of DM-RS CDM groups without data和DMRS configuration type关系,具体取值在38.214 Table 6.2.2-1中,如上。

接下来再看下其他参数的意思。

866f7914add643fd8d475a41f3719db2.png

资源映射的目的就是将序列结合port的复用情况,映射到具体的RE上。k代表子载波index,l代表时域符号index,所以k和l结合起来就代表具体的RE,PUSCH 中参考点k和l 及l0的定义与PDSCH 有所不同。

在transformprecoding disable时,参考点k是CRB 0 的subcarrier 0;transformprecoding enable时,参考点k对应的PUSCH 资源的最低RB的subcarrier 0。  

l及l0的位置需要根据PUSCH mapping type 区分:

PUSCH mapping type A: disable 跳频时,l 就是时隙开始对应的符号;enable 跳频时,l对应的是每一跳开始的符号;l0 则由RRC 层参数dmrs-TypeA-Position 提供,dmrs-TypeA-Position 可以配置为pos2,和pos3,配置为pos2时l0=2, 配置为pos3 时,l0=3。

PUSCH mapping type B:

disable跳频时,l就是调度的PUSCH资源的起始符号;enable跳频时,l对应每一跳开始的符号;PUSCH mapping type B 时 l0一直为0.

e0300e9b86174c3795acb6f8eef773bc.png

DMRS符号位置需要根据38.211 Table 6.4.1.1.3-3 Table 6.4.1.1.3-4 Table 6.4.1.1.3-6中的l_和ld 确定:

1 intra-slot frequency hopping disable: PUSCH mapping type A ,ld对应时隙第一个符号与调度的PUSCH资源的最后一个符号的符号间隔; PUSCH mapping type B,ld对应的就是PUSCH资源的符号长度

2 对于38.211 Table 6.4.1.1.3-6,enable intra-slot frequency hopping时,ld对应的就是每一跳的符号长度。

3 RRC 层没有配置maxLength 或msgA-MaxLength时,根据single symbol Table 6.4.1.1.3-3和Table 6.4.1.1.3-6确定DMRS的位置。

4 MsgA-MaxLength=len2 时,msgA PUSCH 采用double-symbol DMRS。

5 RRC 层参数dmrs-AdditionalPosition 不为'pos0' 且enable intra-slot freuqency hopping时,在根据 38.211 Table 6.4.1.1.3-6设置DMRS时,需要假设每一跳dmrs-AdditionalPosition=pos1。

6 如果maxLength 配置为'len2',就由DCI 0_1/0_2 的antenna port field 决定采用single-symbol还是double-symbol DMRS,38.212 DCI 0_1 /0_2 antenna port field 根据配置的不同情况,调用DCI 0_1 Table 7.3.1.1.2-6~23不同的表,进而确定是使用single-symbol还是double-symbol,例如下表 根据配置dmrs-Type=1 maxLength=2 rank=1时 确定 采用38.212 Table 7.3.1.1.2-12 ,之后再根据antenna port field 的value确定参数设置PUSCH DMRS。而rank value的确定与ul 传输模式相关,当为non codebook传输时,根据DCI field SRS resource indicator确定;当为codebook传输时,根据DCI field Precoding information and number of layers确定,具体情况下一篇PUSCH UL Transmission schemes再说。

59e5111772a24b56afe100c75ab3b112.png

再看下dmrs AdditionalPosition的描述。

4effab377cc0493c8d9bdf967d238517.png

PUSCH mapping type A:

1 当dmrs-TypeA-Position =pos2时,dmrs-AdditionalPosition 才可以配置成pos3。

2 当dmrs-TypeA-Position =pos2时,才能使用38.211 Table 6.4.1.1.3-4中ld=4 的配置。

 

msgA使用PUSCH mapping type A时:

1 当dmrs-TypeA-Position =pos2时,msgaA-DMRS-AdditionalPosition 才可以配置成pos3。

2 在处理msgA DMRS时,直接将Table 6.4.1.1.3-3 ~Table 6.4.1.1.3-6 中的dmrs-AdditionalPosition 替换成msgA-DMRS-AdditionalPosition 后再使用

3 msgA的场景只能使用PUSCH DMRS configuration type 1。

 

msgA使用PUSCH mapping type B时:

1 在处理msgA DMRS时,直接将Table 6.4.1.1.3-3 ~Table 6.4.1.1.3-6 中的dmrs-AdditionalPosition 替换成msgA-DMRS-AdditionalPosition 后再使用

2 msgA的场景只能使用PUSCH DMRS configuration type 1。

 

好了参数的含义和要求过完了,下面来看几个例子。

220caf6340624c158c02720b3a3d4067.png

UE 配置为 single-symbol DMRS 且intra-slot frequency hopping disable,ld=14 ,PUSCH mapping type B及dmrs-AdditionalPosition=pos3时,根据38.211 Table 6.4.1.1.3-3 确定PUSCH DMRS的位置为l0,3,6,9,根据规定PUSCH mapping type B l0=0,则时频域映射如上。

496f54b616e94b5e9bf3d356a7b2fff2.png

UE 配置为 single-symbol DMRS 且enable intra-slot frequency hopping,ld=7(enable intra-slot frequency hopping时,ld对应的就是每一跳的符号长度,即第一跳和第二跳的符号都为7) ,PUSCH mapping type B及dmrs-AdditionalPosition=pos1时,根据38.211 Table 6.4.1.1.3-6 确定PUSCH 第一跳 DMRS的位置为0,4, 第二跳DMRS的位置同样为0,4,则时频域映射如上。

5861fea831b140108c26abefbe5cbabe.png

UE 配置为 double-symbol DMRS 且intra-slot frequency hopping disable,ld=14 ,PUSCH mapping type B及dmrs-AdditionalPosition=pos1时,根据38.211 Table 6.4.1.1.3-4 确定PUSCH DMRS的位置为l0,9,根据规定PUSCH mapping type B l0=0,则时频域映射如上。

 

相关概念都介绍完了,最后就来看看PUSCH DMRS的具体调度及资源映射情况。

0d0f34d00ba244ae8890a986a60f0388.png

对于既不是DCI 0_1/0_2(C-RNTI,CA-RNTI.SP-CSI-RNTI,MCS-C-RNTI加扰)调度的PUSCH,也不是configured grant PUSCH 传输,更不是Type 2 RA过程(2-step RA)的PUSCH,UE 要使用单前置 type 1 DMRS 配置,在DMRS port 0上传输PUSCH;对于DMRS占用的符号上未使用的RE,UE也不能用于PUSCH传输,除非disable transform precoding时 正好PUSCH调度的符号<= 2 个OFDM 符号的情况。additional DMRS仍然要根据38.211 Table 6.4.1.1.3-3(frequency hopping disabled)和Table 6.4.1.1.3-6(frequency hopping enable)中的参数进行配置。frequency hopping disabled 时,dmrs-AdditionalPosition =pos2且在PUSCH传输period最多只能有2个additional DMRS符号; frequency hopping enabled 时,dmrs-AdditionalPosition =pos1 且在PUSCH传输period最多只能有1个additional DMRS符号。

2b752ef62b19494dae31f3a0b5ed1743.png

对于CS-RNTI加扰的DCI 0_0 调度的PUSCH,UE 要根据DMRS-UplinkConfig中的dmrs-Type 采用单前置DMRS,在port 0上传输,这时候在DMRS 占用的符号上剩余的RE 不能用于PUSCH 传输,除非disable transform precoding时 正好PUSCH调度的符号<= 2 个OFDM 符号的情况。 additional DMRS仍然要根据38.211 Table 6.4.1.1.3-3(frequency hopping disabled)和Table 6.4.1.1.3-6(frequency hopping enable)中的参数进行配置。

如上规定基本上概述了DCI 0_0的使用场景,而对于DCI 0_1/0_2 的DMRS 配置情况,就要根据DCI field Antenna ports 确定具体配置情况;更具体的先根据transform precoder是否enable ,dmrs-type和maxLength ,rank等参数确定antenna ports field所占用的bits,再根据antenna port 的value 结合38.212 Table 7.3.1.1.2-6 ~ Table 7.3.1.1.2-23 中的情况进行配置,具体规则可以看38.212 7.3.1.1.2 format 0_1 和7.3.1.1.3 format 0_2 的内容;DCI 0_0是没有antenna ports field ,其DMRS配置根据上面的叙述就可以确定。

 

PUSCH DMRS 和PDSCH DMRS 基本内容类似,这篇没有那篇详细,但是基本内容也都有涉及,可以对比看下。最后以几个例子做尾,表格中的number of CDM groups without data of values代表不可以传输PUSCH data的CDM group, 1, 2, 3 分别代表CDM groups {0}, {0,1}, {0, 1,2} 。

5ff14964b948457490573ae0c619ee6c.png

此例,number of CDM groups without data =2 即 CDM group 0和1  都不能用于传输PUSCH data;Number of front-load symbols=2 即double symbol 前置DMRS;而rank =2 只用到了CDM group 0中的port 0和4 对应的RE,并没有用到 CDM group 1,但CDM gourp 1对应的RE资源也不能用于PUSCH传输,从网络侧角度看CDM group 1 可能配置给了另一个UE,虽然从UE角度看是2 layer传输,但是网络侧进行的是4 layer传输。

3c4c99bbc92f4c509737b62d7e34ed5b.png

如果配置value 0,即number of CDM groups without data =1 即 CDM group 0不能用于传输PUSCH data;Number of front-load symbols=1 即single symbol 前置DMRS;rank=2  用到 CDM group 0中的port 0和1,这种情况,CDM groupg 1中的 RE可以用于传输PUSCH data。

70c738bf3c5f46f69f1fdf0963255896.png

DMRS type 2 如果配置value 0,即number of CDM groups without data =1 即 CDM group 0不能用于传输PUSCH data;maxLength =1 即single symbol 前置DMRS;rank=2  用到 CDM group 0中的port 0和1 的RE,这种情况,CDM groupg 1中的 RE可以用于传输PUSCH data。

01c64ab5ea044df39727ceeb57f5cc45.png

DMRS type 2 如果配置value 4,即number of CDM groups without data =3 即 CDM group 0/1/2不能用于传输PUSCH data;maxLength =1 即single symbol 前置DMRS;rank=2  UE用到 CDM group 1中的port 2和3 的RE,这种情况,CDM groupg 0/1/2中的 RE都不可以用于传输PUSCH data。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Excel数据分析实战之开宗明义: Excel与数据分析实战

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结…

军用大数据 - Spark机器学习

文章目录第1关&#xff1a;Iris 分类任务描述相关知识1&#xff1a;观察数据集2&#xff1a;RFormula 特征提取3&#xff1a;pandas 的 concat 函数编程要求代码实现————————————————————————————————————————第2关&#xff1a;图片识…

网络原理 --- 传输层Ⅲ TCP协议中的滑动窗口,流量控制和拥塞控制

文章目录网络原理传输层TCP协议4.滑动窗口5.流量控制6.拥塞控制总结网络原理 介绍TCP/IP协议中每一层里面的核心内容~ 应用层传输层网络层数据链路层物理层 传输层TCP协议 4.滑动窗口 TCP能够保证可靠传输,但是失去了效率! 但是TCP希望能够在保证可靠性的前提下,尽可能地提…

达梦数据库在不修改SQL的情况下为SQL指定HINT

前言 在Oracle中可以使用outline、SQL PROFILE等手段去在无需修改SQL语句的情况下&#xff0c;来保证SQL执行计划在不同硬件环境下相同&#xff0c;从而保证SQL语句在不同环境的执行效率。那么&#xff0c;在达梦数据库中则可以使用SF_INJECT_HINT系统函数达到类似的效果。 SF…

Java学习笔记 --- 异常

一、基本介绍 Java语言中&#xff0c;将程序执行中发生的不正常情况称为“异常”。&#xff08;开发过程中的语法错误和逻辑错误不是异常&#xff09; 执行过程中所发生的异常事件可以分为两类 1、Error&#xff08;错误&#xff09;&#xff1a;Java虚拟机无法解决的严重问…

十月了,请问2022届的同学们都找到工作了吗?

今年的就业大环境就不多说了&#xff0c;大家都知道。一边是超千万规模的应届毕业生&#xff0c;叠加教培、地产等行业裁员&#xff1b;另一边则是疫情反复影响之下&#xff0c;企业瘦身裁员、停招、缩招。在白领性质的劳动力市场&#xff0c;劳动力供给严重大于需求&#xff0…

【C语言】解题训练

目录 字符串左旋 方法1 方法2 字符串旋转结果判断 方法1 方法2 杨氏矩阵 位段 题目1 题目2 联合体 题目1 题目2 有序序列合并 变种水仙花 找单身狗 字符串左旋 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; ABCD左旋一个字符得到…

纷享销客联合B.P商业伙伴携手30+企业CEO走进南天信息

数字化智能化建设的当下&#xff0c;数字化服务商承担着承上启下的核心力量。企业数字化转型成为刚需&#xff0c;意味着ICT企业的市场前景持续乐观&#xff0c;但在疫情和竞争加剧之下&#xff0c;企业发展也遭遇增长的挑战&#xff0c;如何在数字中国的趋势之下&#xff0c;乘…

大学网课搜题公众号系统

大学网课搜题公众号系统 本平台优点&#xff1a; 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a; 题库&#xff1a;题库后台&#xff08;点击跳转&#xf…

【从小白到大白05】c和c++内存管理

c和c内存管理 文章目录c和c内存管理c内存管理方式new/delete操作内置类型new申请动态空间delete释放空间new和delete操作自定义类型operator new与operator delete函数new[]和delete[]定位new&#xff08;placement-new&#xff09;总结以上内存泄露以上就是全部内容啦&#xf…

WPS-JS宏开发-基础知识-03-三大基本结构

系统&#xff1a;Windows 11 软件&#xff1a;WPS表格11 本系列介绍一款类Excel的软件&#xff0c;WPS表格当然也是介绍其宏开发&#xff0c;不同的是&#xff0c;使用的JS宏会同样介绍多个系列&#xff0c;本系列介绍一些基础知识 Part 1&#xff1a; 三大逻辑结构 一个具体的…

如何给字符串字段加索引?

1.引例 现在的系统中&#xff0c;很多都会包含邮箱字段&#xff0c;那要如何给这个字段建立索引呢&#xff1f; 假设&#xff0c;现在维护了一个用户表&#xff0c;其中包含邮箱&#xff0c;定义如下&#xff1a; mysql>create table SUser(ID int primary key,email var…

OpenGL之多边形偏移、雾效、纹理映射

1.1 OpenGL中可以设置物体的点、线、面绘制模式。如果需要同时绘制多种模式&#xff0c;如下以面和线模式绘制两遍模型&#xff0c;可以看到线不连续&#xff0c;当镜头推远推近时会出现闪烁现象。 void glPolygonMode(GLenum face,GLenum mode);face :GL_FRONT&#xff0c;GL…

分治暴力求解最近点对问题 + 时间性能量化分析

Catalogue1 Intro2 Problem3 Time performance analysis4 Solution5 Reference1 Intro 本文旨在讨论分治和暴力在求解最近点对问题时的时间性能问题&#xff0c;关于解题部分不做过多讲解&#xff0c;只附上相关代码。 2 Problem 给定平面上N个点&#xff0c;找出其中的一对…

【Linux】第七章 进程控制(进程创建+进程终止+进程等待+进程替换+min_shell)

&#x1f3c6;个人主页&#xff1a;企鹅不叫的博客 ​ &#x1f308;专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接&#xff1a;代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

【路径规划-多式联运】基于遗传算法求解多式联运运输问题(考虑碳交易)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

字符串和编码那些事

一、字符编码 1. ASCII字符编码 因为计算机只能处理数字&#xff0c;如果要处理文本&#xff0c;就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特&#xff08;bit&#xff09;作为一个字节&#xff08;byte&#xff09; 由于计算机是美国人发明的&#…

【Apache Spark 】第 11 章使用 Apache Spark 管理、部署和扩展机器学习管道

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

编程神器Copilot逐字抄袭他人代码?

自面世后就饱受争议的 GitHub Copilot 编程神器最近又遭遇舆论风暴。 日前,德州农工大学的一位计算机科学教授 Tim Davis 在推特上发文称, GitHub Copilot 在没有标注来源也没有 LGPL 许可的情况下,输出了大量应该受版权保护的代码。 Tim Davis 还发了自己和 GitHub Copil…

90后汕头返种水稻 国稻种芯·中国水稻会:广东新农人田保姆

90后汕头返种水稻 国稻种芯中国水稻会&#xff1a;广东新农人田保姆 南方日报 张伟炜 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道&#xff1a;“5月稻谷病虫害防护非常…