Main Content

lteRIDecode

Rank indication channel decoding

Description

[out,blkerr] = lteRIDecode(chs,in) performs the block decoding on soft input data, in. The input is assumed to be encoded using the procedure defined for RI in TS 36.212 [1], Section 5.2.2.6 for given channel transmission configuration, chs. The function returns the decoded output, out, as a vector of length ORI, the number of uncoded RI bits transmitted.

The block decoding will be performed separately on each soft input data using a maximum likelihood (ML) approach, assuming that in has been demodulated and equalized to best restore the originally transmitted values.

The RI decoder performs different types of block decoding depending upon the number of uncoded RI bits to be recovered. For ORI less than 3 bits, the decoder assumed the bits are encoded using the procedure defined in TS 36.212 [1], Section 5.2.2.6. For decoding 3 to 11 RI bits, the decoder assumes the bits are block encoded using the procedure defined in TS 36.212 [1], Section 5.2.2.6.4. For decoding between 12 and 22 bits, the decoder performs the inverse procedure described in TS 36.212 [1], Section 5.2.2.6.5. For decoding more than 22 bits, the decoder performs rate-matching, tail-biting Viterbi decoding, and 8-bits CRC decoding, which is the inverse procedure described in Section 5.2.2.6.

example

Examples

collapse all

Decode coded rank indication (RI) soft input bits for a 64QAM channel transmission configuration.

Generate rank indication bits and initialize the channel transmission configuration structure. Encode logical RI bits and turn logical bits into 'LLR' data. Decode the RI bits.

ri = [1;0;1];
chs.Modulation = '64QAM';
chs.QdRI = 1;
chs.ORI = length(ri);
chs.NLayers = 1;
codedRI = lteRIEncode(chs,ri);
codedRI(codedRI == 0) = -1
codedRI = 6x1 int8 column vector

    1
   -1
    1
   -1
   -1
    1

decRI = lteRIDecode(chs,codedRI)
decRI = 3x1 logical array

   1
   0
   1

Input Arguments

collapse all

Channel transmission configuration, specified as a structure. Multiple codewords can be parameterized by two different forms of the chs structure. Each codeword can be defined by separate elements of a 1-by-2 structure array, or the codeword parameters can be combined together in the fields of a single scalar, or 1-by-1, structure. Any scalar field values apply to both codewords and a scalar NLayers is the total number. See UL-SCH Parameterization for further details.

Modulation format, specified as 'QPSK', '16QAM', '64QAM', or '256QAM'. Use double quotes for string. It there are two blocks, use a cell array of character vectors or a string array. Each element of the arrays is associated with a transport block.

Data Types: char | string | cell

Number of uncoded RI bits, specified as a nonnegative integer. The RI decoder performs different types of block decoding depending upon the number of uncoded RI bits to be recovered.

For ORI less than 3 bits, the decoder assumed the bits are encoded using the procedure defined in TS 36.212 [1], Section 5.2.2.6.

For decoding 3 to 11 RI bits, the decoder assumes the bits are block encoded using the procedure defined in TS 36.212 [1], Section 5.2.2.6.4.

For decoding between 12 and 22 bits, the decoder performs the inverse procedure described in TS 36.212 [1], Section 5.2.2.6.5.

For decoding more than 22 bits, the decoder performs rate-matching, tail-biting Viterbi decoding, and 8-bits CRC decoding, which is the inverse procedure described in Section 5.2.2.6.

Data Types: double

Number of transmission layers, specified as 1, 2, 3, or 4.

Data Types: double

Data Types: struct

RI input bits, specified as a numeric vector or a cell array of numeric vectors. The block decoding will be performed separately on each soft input data using a maximum likelihood (ML) approach assuming that in has been demodulated and equalized to best restore the originally transmitted values.

Data Types: double | cell

Output Arguments

collapse all

Decoded output, returned as a logical column vector. The vector length is determined by the value of ORI.

Data Types: logical

Block error, returned as a logical scalar. If the number of transmitted bits is 22 or fewer, blkerr is 0. Otherwise, blkerr is a logical value that reports if a decoding error has occurred.

Data Types: logical

References

[1] 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.

Version History

Introduced in R2014a

expand all