PUCCH format 3 transmission UCI decoding


  • ucibits = lteUCI3Decode(cw,n)



ucibits = lteUCI3Decode(cw,n) returns a column vector of decoded UCI bits, ucibits, resulting from decoding the soft bit column vector, cw. Where the output vector ucibits is expected to contain n bits. ucibits is empty if no HARQ-ACK bits are detected.

The decoder uses a maximum likelihood (ML) approach, assuming that cw has been demodulated using ltePUCCH3Decode, whose input had already been equalized to best restore the originally transmitted complex values. Specifically, this function assumes that cw is properly scaled to reflect a QPSK constellation (± sqrt(2)/2 amplitude for real and imaginary parts). If multiple decoded UCI bit vectors have a likelihood equal to the maximum, ucibits is a matrix where each column represents one of the equally likely bit vectors. If a minimum likelihood threshold is not met, ucibits is empty.


collapse all

Encoding and decoding HARQ-ACK feedback for PUCCH Format 3

This example shows how to encode and decode an ACK using PUCCH format 3 transmission UCI decoding.

Create a Tx ACK vector. Encode the vector using PUCCH format 3. Convert the logical bits into soft data.

txAck = [1;0;0;1];

cw = lteUCI3Encode(txAck);

cw = (double(cw)-0.5)*sqrt(2.0);

Decode the received data using the PUCCH format 3 UCI decoder. Verify that the Rx ACK vector matches the Tx ACK vector.

rxAck = lteUCI3Decode(cw,length(txAck))
rxAck =


Input Arguments

collapse all

cw — Soft bits to decodenumeric column vector

Soft bits to decode, specified as a numeric column vector.

Data Types: int8 | double

n — Number of bits to returnpositive scalar integer (1...22)

Number of bits to return, specified as a positive scalar integer from 1 through 22.

Data Types: double

Output Arguments

collapse all

ucibits — Concatenated HARQ-ACK bits, periodic CSI bits, and Scheduling Request (SR) bitlogical column vector

Concatenated HARQ-ACK bits, periodic CSI bits, and Scheduling Request (SR) bit, returned as a logical column vector. ucibits represents the [a0, a1, ... aN-1] bit sequence as described in TS 36.212 [1], Section The number of bits returned, N, is defined by the input argument n.

ucibits is empty if no UCI bits are detected.

Data Types: logical


[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:

Introduced in R2014a

Was this topic helpful?