Main Content


Physical uplink control channel format 3



sym = ltePUCCH3(ue,chs,bits) returns a matrix containing Physical Uplink Control Channel (PUCCH) format 3 symbols given a structure of UE-specific settings, a structure with channel transmission configuration settings, and a vector of coded hybrid ARQ (HARQ) values, bits.


[sym,info] = ltePUCCH3(ue,chs,bits) also returns a PUCCH information structure array, info.


collapse all

Generate PUCCH format 3 modulated symbols.

Initialize ue and chs configuration structures. Generate and view PUCCH Format 3 symbols.

ue.NCellID = 0;
ue.NSubframe = 0;
ue.RNTI = 1;
ue.CyclicPrefixUL = 'Normal';
ue.Shortened = 0;

chs.ResourceIdx = 0;

sym = ltePUCCH3(ue,chs,ones(48,1));
ans = 5×1 complex

   1.6330 - 1.2247i
  -0.7071 + 0.7071i
  -0.5577 + 0.1494i
   0.4082 - 0.0000i
  -0.5577 - 0.9659i

Generate the physical uplink control channel (PUCCH) format 3 symbols for two transmit antenna paths and display the information structure.

Initialize parameters for a UE-specific configuration structure and a channel configuration structure. Generate PUCCH1 symbols and information outputs.

ue.NCellID = 1;
ue.RNTI = 1;
ue.NSubframe = 0;
ue.CyclicPrefixUL = 'Normal';
ue.Shortened = 0;

chs.ResourceIdx = [0 3];

[pucch3Sym,info] = ltePUCCH3(ue,chs,[]);

Because there are two antennas, the symbols are output as a two-column vector, and the info output structure contains two elements.

ans = 6×2 complex

   0.0000 + 2.4495i   0.0000 + 2.4495i
   0.0000 - 0.0000i   0.0000 - 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i
   0.0000 - 0.0000i   0.0000 - 0.0000i
   0.0000 + 0.0000i   0.0000 + 0.0000i

ans = 1×2

     1     2

View the contents of the second info structure element.

ans = struct with fields:
    NCellCyclicShift: [64 192 46 212 191 71 91 84 25 105]
          OrthSeqIdx: [3 4]
             Symbols: [1.0000 + 0.0000i 1.0000 + 0.0000i ... ]
             OrthSeq: [5x2 double]
           NSymbSlot: [5 5]

Input Arguments

collapse all

UE-specific configuration settings, specified as a structure that can contain these fields.

Parameter FieldRequired or OptionalValuesDescription

Integer from 0 to 503

Physical layer cell identity


0 (default), scalar integer

Radio network temporary identifier (RNTI) value (16 bits)


0 (default), nonnegative scalar integer

Subframe number


'Normal' (default), 'Extended'

Cyclic prefix length


0 (default), 1

Option to shorten the subframe by omitting the last symbol, specified as 0 or 1. If 1, the last symbol of the subframe is not used. For subframes with possible SRS transmission, set Shortened to 1 to maintain a standard compliant configuration.

Data Types: struct

Channel transmission configuration, specified as a structure containing these fields.

PUCCH Resource Indices, specified as an integer or vector of integers with values from 0 to 549. There is one index for each transmission antenna. These indices determine the cyclic shift and orthogonal cover used for transmission. (nPUCCH(3)).

Data Types: struct

Coded HARQ-ACK bits, specified as a nonnegative integer column vector of length 48. TS 36.211 [1], Table 5.4-1 specifies the vector length for PUCCH format 3 is Mbit = 48. bits is expected to be the block of bits b(0)...b(Mbit–1)specified in TS 36.211 [1], Section 5.4.2A. bits is also expected to be generated by performing uplink control information (UCI) channel coding as described TS 36.212 [2], Section For PUCCH format 3, UCI includes encoding of concatenated HARQ-ACK bits and any appended periodic CSI bits plus Scheduling Request (SR) bit when present.

Data Types: double

Output Arguments

collapse all

PUCCH format 3 symbols, returned as matrix. The symbols for each antenna are in the columns of sym, with the number of columns determined by the number of PUCCH resource indices specified in chs.ResourceIdx.

Example: [ 0.7071 + 0.7071i,...]

Data Types: double
Complex Number Support: Yes

PUCCH format 3 information, returned as a structure array with elements corresponding to each transmit antenna and containing these fields.

Cell-specific cyclic shift for each OFDM symbol, returned as a vector. (ncscell)

Orthogonal sequence index for each slot, returned as a two-element vector. (noc)

Modulated data symbols for each OFDM symbol, returned as a vector. (d)

Example: [0.7071 + 0.7071i,...]

Orthogonal sequence of each slot, returned as a numeric matrix. Each column in the matrix contains the orthogonal sequence (wnoc) for each slot.


When ue.Shortened = 1, transmissions are shortened, and the second column of info.OrthSeq has a zero in the last row because the spreading factor for the second slot is 4 instead of 5.

Example: [1.000 + 1.000i,...]

The number of OFDM symbols in each slot, returned as a vector of integers. ([NSF,0PUCCHNSF,1PUCCH])

Data Types: struct


[1] 3GPP TS 36.211. “Evolved Universal Terrestrial Radio Access (E-UTRA); Physical Channels and Modulation.” 3rd Generation Partnership Project; Technical Specification Group Radio Access Network. URL:

[2] 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