Main Content

lteULSCH

Uplink shared channel

Description

[cwout,chinfo] = lteULSCH(ue,chs,trblkin) performs complete UL-SCH transport coding and UCI coding on the input information bits, trblkin, and returns the complete codewords in the output, cwout. It encodes both a single transport block or pair of blocks, contained in a cell array, for the case of spatial multiplexing schemes transmitting two codewords, represented by input trblkin without any UCI data. The lowest order information bit of trblkin should be mapped to the most significant bit of the transport block, as defined in TS 36.321 Section 6.1.1 [3]. The encoding process also includes the channel interleaving. The transport encoding includes type-24A CRC calculation, code block segmentation and type-24B CRC attachment, turbo encoding, rate matching, block concatenation, and channel interleaving. For more information, see TS 36.212 Sections 5.2.2.1 to 5.2.2.5 and 5.2.2.8 [2]. Parameter information relating to the underlying UL-SCH and UCI coding is available in structure chinfo.

The output chinfo is a structure containing information related to the UL-SCH coding process.

For multiple transport blocks, each structure in the array corresponds to one of the blocks. This output is also available from the lteULSCHInfo function.

example

[cwout,chinfo] = lteULSCH(ue,chs,trblkin,opts) allows for the merging of the input chs structure fields into chinfo at the output.

If the UL-SCH encoding is for a retransmission of a previously sent transport block, use the three “Init” fields, 'InitPRBSet', 'InitCyclicPrefixUL', and 'InitShortened'. If any of these fields are absent, their values are assumed to be the same as the values for the associated current subframe fields, 'PRBSet', 'CyclicPrefixUL', and 'Shortened'.

opts is an optional input parameter which enables the concatenation or merging of the chs input structure fields into the fields returned by chinfo. This parameter is useful for combining the high-level configuration parameters with the fine-grained ones used in the encoding process.

opts allows additional control of the contents and format of the chinfo output.

[cwout,chinfo] = lteULSCH(ue,chs,trblkin,cqi,ri,ack,opts) encodes and multiplexes the UCI input data, CQI, RI, and ACK, along with the information bits, trblkin, in the codeword, cwout. For more information, see TS 36.212 Sections 5.2.2.6 to 5.2.2.8 [2]. Any of the trblkin, cqi, ri, or ack vectors can be empty if that data is not present. If trblkin is empty, only UCI on UL-SCH/PUSCH is processed, according to TS 36.212 Section 5.2.4 [2]. The coding of the UCI can be controlled through the additional fields, BetaACK, BetaCQI, BetaRI, and NBundled, in the chs input structure. Setting NBundled to 0 disables the TDD HARQ-ACK bundling scrambling; therefore, it is off by default.

Examples

collapse all

Create coded information bits for a 3 MHz, Uplink A3-3 FRC.

Create an UL RMC configuration structure. Initialize the optional fields for a ue-specific setting structure. Default settings are used if you don't initial optional fields. Create a transport block bit stream, trBlk.

rmc = lteRMCUL('A3-3');
ue.CyclicPrefixUL = 'Normal';
ue.Shortened = 0;
trBlk = randi([0,1],rmc.PUSCH.TrBlkSizes(1),1);

Generate UL-SCH codewords for the A3-3 FRC.

cw = lteULSCH(ue,rmc.PUSCH,trBlk);

Input Arguments

collapse all

UE-specific settings, specified as a structure with the following fields.

Parameter FieldRequired or OptionalValuesDescription
CyclicPrefixULOptional

'Normal' (default), 'Extended'

Current cyclic prefix length

ShortenedOptional

0 (default), 1

Option to shorten the subframe by omitting the last symbol, specified as 0 or 1. If 1, the last symbol of the subframe is not used. For subframes with possible SRS transmission, set Shortened to 1 to maintain a standard compliant configuration.

Channel-specific transmission configuration, specified as a structure that can contain the following parameter fields.

Parameter FieldRequired or OptionalValuesDescription
ModulationRequired'QPSK', '16QAM', '64QAM', or '256QAM'

Modulation type, specified as a character vector, cell array of character vectors, or string array. If blocks, each cell is associated with a transport block.

NLayersOptional

1 (default), 2, 3, 4

Total number of transmission layers associated with the transport block or blocks.

RVRequired

Integer vector (0,1,2,3). A one or two column matrix (for one or two codewords).

Specifies the redundancy version for one or two codewords used in the initial subframe number, NSubframe. This parameter field is only for informational purposes and is read-only.

This parameter field is not required if trblkin is [], which signifies that the UL-SCH is carrying only UCI and no transport data.

PRBSetRequired

Integer column vector or two-column matrix

0-based physical resource block indices (PRBs) for the slots of the current PUSCH resource allocation. As a column vector, the resource allocation is the same in both slots of the subframe. As a two-column matrix, it specifies different PRBs for each slot in a subframe.

The following three 'Init' fields should be used if the UL-SCH encoding is for a retransmission of a previously sent transport block. If any of these fields are absent, its value is assumed to be the same as the value for its associated current subframe field.
  InitPRBSetOptional

1- or 2-column integer matrix, PRBSet (default)

PRB indices used in the initial transmission PUSCH allocation. If this field is absent, its value is assumed to be the same as the value for the associated current subframe field, PRBSet.

  InitCyclicPrefixULOptional

'Normal', 'Extended', CyclicPrefixUL (default)

Cyclic prefix length of initial transmit subframe. This is the length used during the first transmission of this transport block. If this field is absent, its value is assumed to be the same as the value for the associated current subframe field, CyclicPrefixUL.

  InitShortenedOptional

0, 1, Shortened (default)

Initial transmit subframe shortened flag. If 1, the initial transmit subframe was shortened for possible SRS. If this field is absent, its value is assumed to be the same as the value for the associated current subframe field, Shortened.

The coding of the UCI can be controlled through the following additional fields.
  BetaCQIOptional

numeric scalar, 2.0 (default)

Modulation and coding scheme (MCS) offset for CQI and PMI bits

  BetaRIOptional

numeric scalar, 2.0 (default)

Modulation and coding scheme (MCS) offset for RI bits

  BetaACKOptional

numeric scalar, 2.0 (default)

Modulation and coding scheme (MCS) offset for HARQ-ACK bits. This field was previously named BetaHI; if this field is absent but BetaHI is present, it is used as before.

  NBundledOptional

0 (default), 1, …, 9

TDD HARQ-ACK bundling scrambling sequence index. When set to 0, the function disables the TDD HARQ-ACK bundling scrambling. Therefore, it is off by default.

Input transport blocks, specified as a numeric vector or a cell array of numeric vectors.

Data Types: double | cell

Options to control output contents and format, specified as a character vector, cell array of character vectors, or string array. You may choose any of the option listed in this table. Use double quotes for string.

OptionValuesDescription
Channel parameter merging 'nochsconcat' (default)Do not concatenate chs input structure into chinfo.
'chsconcat' Concatenate chs input structure into chinfo.
Output structure format 'cwseparate' (default)Information values for each codeword are output in separate elements of the 1-by-ncodewords structure array chinfo.
'cwcombined' Information values for each codeword are combined into the fields of a single scalar, or 1-by-1, structure.

Data Types: char | string | cell

CQI input data, specified as a numeric vector. Part of the UCI data.

Data Types: double

RI input data, specified as a numeric vector. Part of the UCI data.

Data Types: double

HARQ-ACK input data, specified as a numeric vector. Part of the UCI data.

Data Types: double

Output Arguments

collapse all

Complete output codewords, returned as an integer column vector or a cell array of integer column vectors.

Data Types: int8 | cell

Parameter information relating to the underlying UL-SCH and UCI coding, returned as a structure or a structure array. If two transport blocks are encoded, chinfo is a structure array of two elements, one for each block. Alternatively, you can create code block segmentation fields in this structure independently, by calling the lteULSCHInfo function. chinfo contains the following fields.

Parameter FieldDescriptionValuesData Type
C

Total number of code blocks

nonnegative scalar integerint32
Km

Lower code block size (K–)

nonnegative scalar integerint32
Cm

Number of code blocks of size Km (C–)

nonnegative scalar integerint32
Kp

Upper code block size (K+)

nonnegative scalar integerint32
Cp

Number of code blocks of size Kp (C+)

nonnegative scalar integerint32
F

Number of filler bits in first block

nonnegative scalar integerint32
L

Number of segment cyclic redundancy check (CRC) bits

nonnegative scalar integerint32
Bout

Total number of bits in all segments

nonnegative scalar integerint32
G

Number of coded and rate matched UL-SCH data bits

nonnegative scalar integerint32
Qm

Number of bits per symbol

nonnegative scalar integerint32
Gd

Number of coded and rate matched UL-SCH data symbols (G′)

nonnegative scalar integerint32
OCQI

Number of uncoded channel quality information (CQI) bits

nonnegative scalar integerint32
ORI

Number of uncoded symbols for RI

nonnegative scalar integerint32
OACK

Number of uncoded symbols for ACK/NACK

nonnegative scalar integerint32
QdCQI

Number of coded symbols for CQI (Q’_CQI)

nonnegative scalar integerint32
QdRI

Number of coded symbols for RI (Q’_RI)

nonnegative scalar integerint32
QdACK

Number of coded symbols for ACK/NACK (Q’_ACK)

nonnegative scalar integerint32
NRE

Number of resource elements (REs) used for PUSCH transmission

nonnegative scalar integerint32
NLayers

Number of layers associated with one codeword

nonnegative scalar integerint32
Modulation

Modulation scheme associated with one codeword

'QPSK', '16QAM', '64QAM'char
RV

RV value associated with one codeword

scalar integerint32

References

[1] 3GPP TS 36.104. “Evolved Universal Terrestrial Radio Access (E-UTRA); Base Station (BS) Radio Transmission and Reception.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

[2] 3GPP TS 36.212. “Evolved Universal Terrestrial Radio Access (E-UTRA); Multiplexing and channel coding.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

[3] 3GPP TS 36.321. “Evolved Universal Terrestrial Radio Access (E-UTRA); Medium Access Control (MAC) protocol Specification.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL: https://www.3gpp.org.

Version History

Introduced in R2014a