Documentation

lteACKDecode

HARQ-ACK channel decoding

Syntax

Description

example

out = lteACKDecode(chs,in) performs the block decoding on soft input data, in, assumed to be encoded using the procedure defined for HARQ-ACK in TS 36.212, Section 5.2.2.6 [1] for given PUSCH channel transmission configuration chs. The decoded output, out, is a vector of length OACK, the number of uncoded HARQ-ACK bits transmitted.

    Note:   If NBundled is 0, TDD ACK-NACK descrambling is disabled.

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 chs.NLayers is the total number. See UL-SCH Parameterization for further details.

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

The HARQ-ACK decoder performs different type of block decoding depending upon the number of uncoded HARQ-ACK bits to be recovered (OACK). For OACK less than 3 bits, the decoder assumes the bits are encoded using the procedure defined in TS 36.212, Section 5.2.2.6 [1].

For decoding between 3 and 11 HARQ-ACK bits, the decoder assumes the bits are block encoded using the procedure defined in TS 36.212, Section 5.2.2.6.4 [1]. For greater than 11 bits, the decoder performs the inverse procedure described in TS 36.212, Section 5.2.2.6.5 [1].

Examples

collapse all

Decode HARQ-ACK Channel

This example shows the block decoding of 3 coded HARQ-ACK information bits.

Create input and initialize channel structure. Encode bits and turn logical bits into soft data compatible with log-likelihood ratio check. Perform bit decoding.

in = [1;0;1];
chs = struct('Modulation','16QAM','QdACK',2,'OACK',length(in));

encodedBits = lteACKEncode(chs,in);
encodedBits = (double(encodedBits)-0.5)*sqrt(2.0)

decodedBits = lteACKDecode(chs,encodedBits)
Warning: Using default value for parameter field NLayers (1) 
Warning: Using default value for parameter field NBundled (0) 

encodedBits =

    0.7071
   -0.7071
    0.7071
   -0.7071
   -0.7071
    0.7071
   -0.7071
    0.7071

Warning: Using default value for parameter field NLayers (1) 
Warning: Using default value for parameter field NBundled (0) 

decodedBits =

     1
     0
     1

Input Arguments

collapse all

chs — PUSCH-specific channel transmission configurationscalar structure | structure array

PUSCH-specific channel transmission configuration, specified as a structure or a structure array, which contains the following parameter fields.

Parameter FieldRequired or OptionalValuesDescription
ModulationRequired

('QPSK', '16QAM', '64QAM') String or cell array of strings.

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

OACKOptional

nonnegative scalar integer, 0 (default)

Number of uncoded HARQ-ACK bits.

The HARQ-ACK decoder performs different type of block decoding depending upon the number of uncoded HARQ-ACK bits to be recovered (OACK). For OACK less than 3 bits, the decoder assumes the bits are encoded using the procedure defined in TS 36.212, Section 5.2.2.6 [1]. For decoding between 3 and 11 HARQ-ACK bits, the decoder assumes the bits are block encoded using the procedure defined in TS 36.212, Section 5.2.2.6.4 [1]. For greater than 11 bits, the decoder performs the inverse procedure described in TS 36.212, Section 5.2.2.6.5 [1].

NLayersOptional

1 (default), 2, 3, 4

Number of transmission layers.

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.

in — Soft input datanumeric vector

Soft input data, specified as a numeric vector. The input data is assumed to be encoded using the procedure defined for HARQ-ACK in TS 36.212, Section 5.2.2.6 [1].

Output Arguments

collapse all

out — Decoded HARQ-ACK channelnumeric column vector

Decoded HARQ-ACK channel output, returned as an OACK-by-1 column vector.

Data Types: double

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?