Documentation

nrPUSCHCodebook

生成PUSCH预编码矩阵

Description

example

w= nrPUSCHCodebook(nLayers,nPorts,tpmi)returns the physical uplink shared channel (PUSCH) precoding matrix for codebook-based transmission.nLayersis the number of layers,nPortsis the number of antenna ports, andtpmiis the transmitted precoding matrix indicator (TPMI). By default, this function disables transform precoding. The returned matrix,w, is the transpose of the precoding matrix defined in TS 38.211 Section 6.3.1.5[1]. The matrix orientation ofwallows the precoding operation to be performed by matrix multiplication on the output of thenrLayerMapfunction andw.

w= nrPUSCHCodebook(___,transformPrecode)指定转换我预编码作为一个逻辑值n addition to the input arguments in the previous syntax. WhentransformPrecodeis set totrue, the function applies the transform precoding defined in TS 38.211 Section 6.3.1.4[1].

Examples

collapse all

Modulate a random sequence of binary values of length 600 by using 64-QAM modulation. Split the modulated symbols into two layers.

modulation ='64QAM'; nlayers = 2; in = randi([0 1],600,1); data = nrSymbolModulate(in,modulation); y = nrLayerMap(data,nlayers);

Generate the PUSCH precoding matrix for four antennas, two layers, and the specified TPMI.

nports = 4; tpmi = 7; w = nrPUSCHCodebook(nlayers,nports,tpmi)
w =2×4 complex0.5000 + 0.0000i 0.0000 + 0.0000i 0.5000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.5000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.5000i

Precode the layered modulation symbols by using the codebook matrix.

z = y * w
z =50×4 complex-0.0772 - 0.3858i 0.3858 - 0.5401i -0.0772 - 0.3858i 0.5401 + 0.3858i -0.3858 + 0.0772i -0.5401 - 0.0772i -0.3858 + 0.0772i 0.0772 - 0.5401i -0.5401 - 0.2315i -0.2315 + 0.0772i -0.5401 - 0.2315i -0.0772 - 0.2315i -0.3858 + 0.2315i -0.2315 - 0.0772i -0.3858 + 0.2315i 0.0772 - 0.2315i -0.0772 - 0.3858i 0.5401 + 0.2315i -0.0772 - 0.3858i -0.2315 + 0.5401i -0.5401 + 0.5401i -0.0772 + 0.2315i -0.5401 + 0.5401i -0.2315 - 0.0772i -0.3858 + 0.2315i -0.0772 + 0.5401i -0.3858 + 0.2315i -0.5401 - 0.0772i -0.3858 + 0.5401i 0.5401 + 0.3858i -0.3858 + 0.5401i -0.3858 + 0.5401i -0.2315 + 0.0772i 0.2315 - 0.5401i -0.2315 + 0.0772i 0.5401 + 0.2315i -0.2315 - 0.0772i 0.3858 - 0.3858i -0.2315 - 0.0772i 0.3858 + 0.3858i ⋮

Input Arguments

collapse all

Number of transmission layers, specified as an integer from 1 to 4. For more information, see TS 38.211 Section 6.3.1.3.

Data Types:double

Number of antenna ports, specified as1,2, or4. For more information, see TS 38.211 Section 6.3.1.5.

Data Types:double

Transmitted precoding matrix indicator, specified as an integer from 0 to 27. The valid range oftpmidepends on the specified number of transmission layers,nLayers, and number of antenna ports,nPorts. For more information, see TS 38.211 Tables 6.3.1.5-1 to 6.3.1.5-7.

Data Types:double

Transform precoding, specified asfalseortrue. For more information, see TS 38.211 Section 6.3.1.4.

Data Types:double|logical

Output Arguments

collapse all

PUSCH precoding codebook, returned as a complex matrix of sizenLayers-by-nPorts. IfnLayersandnPortsare both1, thenwis1. Otherwise, the function returns the transpose of the matrix selected from Tables 6.3.1.5-1 to 6.3.1.5-7 in TS 38.211[1].

Data Types:double
Complex Number Support:Yes

References

[1]3GPP TS 38.211. “NR; Physical channels and modulation.”3rd Generation Partnership Project; Technical Specification Group Radio Access Network.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

See Also

Functions

Introduced in R2019a