Documentation

lteRIEncode

Rank indication channel encoding

Syntax

Description

example

out = lteRIEncode(chs,in) returns the coded rank indication (RI) bits after performing block coding, as defined for RI in TS 36.212 [1], Section 5.2.2.6. in should be a vector or cell array containing up to 15 RI bits. out contains the encoded bits in the same form.

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.

Since the RI bits are carried on all defined codewords, a single input will result in a cell array of encoded outputs if multiple codewords are parameterized. This allows for easy integration with the other functions.

The RI coder performs different types of block coding depending upon the number of RI bits in vector in. If in consists of one element, it uses TS 36.212 [1], Table 5.2.2.6-3. If in consists of two elements, it uses TS 36.212 [1], Table 5.2.2.6-4 for encoding. The placeholder bits, x and y in the tables, are represented by –1 and –2, respectively.

Similarly, for 3 to 11 bits, the RI encoding is performed as per TS 36.212 [1], Section 5.2.2.6.4. For greater than 11 bits, the encoding is performed as described in TS 36.212 [1], Section 5.2.2.6.5.

Examples

collapse all

Encode RI Bits for One Codeword

Generate the coded rank indication (RI) bits for a single codeword.

riBit = 0;
chs.Modulation = '64QAM';
chs.QdRI = 1;
chs.NLayers = 1;
codedRi = lteRIEncode(chs,riBit)
codedRi =

    0
   -2
   -1
   -1
   -1
   -1

Encode RI Bits for Two Codewords

Generate the coded rank indication (RI) bits for a two codewords on 3 layers.

riBit = 0;
chs.Modulation = {'64QAM' '64QAM'};
chs.QdRI = 1;
chs.NLayers = 3;
codedRi = lteRIEncode(chs,riBit)
codedRi{:}
codedRi = 

    [6x1 int8]    [12x1 int8]


ans =

    0
   -2
   -1
   -1
   -1
   -1


ans =

    0
   -2
   -1
   -1
   -1
   -1
    0
   -2
   -1
   -1
   -1
   -1

Input Arguments

collapse all

chs — PUSCH-specific parameter structurescalar structure | structure array

PUSCH-specific parameter structure, specified as a scalar structure or a structure array. chs contains the following fields.

QdRI — Number of coded RI symbolsnonnegative numeric scalar | nonnegative numeric vector

Number of coded RI symbols, specified as a nonnegative numeric scalar or vector (Q'_RI).

Data Types: double

Modulation — Modulation format'QPSK' | '16QAM' | '64QAM' | cell array of strings

Modulation format, specified as a string or cell array of strings. If there are 2 blocks, each string in the cell array is associated with each transport block.

Data Types: char | cell

NLayers — Number of transmission layers1 (default) | optional | 2 | 3 | 4

Number of transmission layers, specified as a positive numeric scalar. Optional.

Data Types: double

Data Types: struct

in — RI input bitslogical vector of length 1 to 15 | cell array of logical vectors

RI input bits, specified as a logical vector of length 1 to 15 or a cell array of logical vectors. Each vector can contain up to 15 RI bits apiece.

Data Types: cell | double

Output Arguments

collapse all

out — Encoded output bitsinteger column vector | cell array of integer column vectors

Encoded output bits, returned as a integer column vector or a cell array of integer column vectors, in same form as in. If the PUSCH-specific parameter structure chs defines multiple codewords, out is a cell array.

Data Types: int8 | cell

References

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

Introduced in R2014a

Was this topic helpful?