Main Content


PUCCH format 3 transmission UCI encoding



cw = lteUCI3Encode(ucibits) returns a column vector of coded UCI bits, cw, resulting from processing of control information, ucibits for PUCCH format 3. The ucibits is a vector of concatenated HARQ-ACK bits and any appended periodic CSI bits and/or scheduling request (SR) bits.

The UCI processing is defined in TS 36.212 [1], Section, and consists of a (32,O) block code, where O is the number of bits in ucibits. The coded bit vector, cw, is 48 bits long.


collapse all

Encode and decode HARQ-ACK feedback for PUCCH format 3.

Create a Tx ACK vector. Encode the vector using PUCCH format 3. Turn logical bits into 'LLR' data.

txAck = [1;0;0;1];
cw = lteUCI3Encode(txAck);
cw(cw == 0) = -1;

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 = 4x1 logical array


Input Arguments

collapse all

Concatenated HARQ-ACK bits, periodic CSI bits, and Scheduling Request (SR) bit, specified as a logical vector containing from 1 to 22 bits. ucibits represents the [a0, a1, ... aN-1] bit sequence as described in TS 36.212 [1], Section

Data Types: logical | double

Output Arguments

collapse all

Coded UCI bits, returned as a 48-by-1 integer column vector. This coded bit vector is 48 bits long.

Data Types: int8


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

Version History

Introduced in R2014a