Documentation

ltePHICH

Physical hybrid ARQ indicator channel

Syntax

  • [sym,info] = ltePHICH(enb,hiset)
    example

Description

example

[sym,info] = ltePHICH(enb,hiset) returns a matrix, sym, of complex modulation symbols generated by the set of Physical Hybrid ARQ Indicator Channels (PHICH) in a subframe. The channel processing includes the stages of BPSK modulation, scrambling, orthogonal sequence spreading, REG alignment, layer mapping and precoding, followed by PHICH group summation and mapping unit creation. The optional returned structure, info, contains control resourcing information about the output symbols. See ltePHICHInfo for details and further background.

The control region of a subframe can contain up to NPHICH separate PHICH, each carrying a single hybrid ARQ (HARQ) acknowledgment (ACK) or negative acknowledgment (NACK). The number of rows of sym is the number of resource elements (NRE). Each column of the NRE-by-CellRefP matrix sym contains the per-antenna symbols for the combined set of PHICHs, where NPHICH, returned as info.NPHICH, is defined via the settings in the enb structure.

The R-by-3 input matrix, hiset, configures up to NPHICH individual PHICH that are combined together in the output. Each row of hiset defines a single PHICH in terms of [nGroup,nSeq,hi], where nGroup is the PHICH group index number, nSeq is the sequence index number within the group, and hi is 1 or 0 representing ACK or NACK, respectively. These indices are 0-based. In terms of info structure fields, the following conditions apply.

The output matrix, sym, always contains info.NRE symbols to map into the total PHICH resource allocation, even if less than the full set of NPHICH channels are configured.

Examples

collapse all

Generate PHICH Complex Modulation Symbols

Generate physical HARQ indicator channel (PHICH) complex modulation symbols for three different HARQ indicator (HI) sets. An HI set is comprised of the PHICH group index number, the sequence number within the group, and an ACK/NACK.

In a system subframe (normal CP) with enb.NDLRB = 50 and enb.Ng = 'Half', 16 PHICH are available split between 2 PHICH groups of 8 sequences. These are mapped to NRE=24 resource elements. Modulate a NACK (hi=0) onto the third orthogonal sequence (nSeq=2) of the second group (nGroup=1).

enb = lteRMCDL('R.7');
out1 = ltePHICH(enb,[1,2,0]);
out1(1:4)
     0
     0
     0
     0

Next, add in an ACK on the last sequence of the first group.

enb = lteRMCDL('R.7');
out2 = ltePHICH(enb,[1,2,0;0,7,1]);
out2(1:4)
   0.7071 - 0.7071i
   0.7071 - 0.7071i
  -0.7071 + 0.7071i
   0.7071 - 0.7071i

Finally, provide an empty matrix for hiset.

enb = lteRMCDL('R.7');
out3 = ltePHICH(enb,[]);
size(out3)
    24     1

The result is a 24-by-enb.CellRefP matrix of zeros.

Input Arguments

collapse all

enb — Cell-wide settingsscalar structure

Cell-wide settings, specified as a scalar structure. enb contains the following fields. The TDDConfig parameter field is only required if DuplexMode is set to 'TDD'.

NDLRB — Number of downlink resource blockspositive integer

Number of downlink resource blocks, specified as a positive integer.

Data Types: double

NCellID — Physical layer cell identitynonnegative integer

Physical layer cell identity, specified as a nonnegative integer.

Data Types: double

CellRefP — Number of cell-specific reference signal antenna ports1 | 2 | 4

Number of cell-specific reference signal antenna ports, specified as 1, 2, or 4.

Data Types: double

CyclicPrefix — Cyclic prefix length'Normal' (default) | Optional | 'Extended'

Cyclic prefix length, specified as 'Normal' or 'Extended'. Optional.

Data Types: char

NSubframe — Subframe numbernonnegative integer

Subframe number, specified as a nonnegative integer.

Data Types: double

Ng — HICH group multiplier'Sixth' | 'Half' | 'One' | 'Two'

HICH group multiplier, specified as a string.

Data Types: char

DuplexMode — Duplex mode'FDD' (default) | Optional | 'TDD'

Duplex mode, specified as 'FDD' or 'TDD'. Optional.

Data Types: char

TDDConfig — Uplink or downlink configuration0 (default) | Optional | 1 | 2 | 3 | 4 | 5 | 6

Uplink or downlink configuration, specified as a nonnegative scalar integer between 0 and 6. Optional. Only required if DuplexMode is set to 'TDD'.

Data Types: double

Data Types: struct

hiset — HARQ indicator setnumeric matrix

HARQ indicator set, specified as a numeric matrix of size R-by-3. With this input matrix, you can configure up to NPHICH individual PHICH that are combined together in the output. Each row of hiset defines a single PHICH in terms of [nGroup,nSeq,hi], where nGroup is the PHICH group index number, nSeq is the sequence index number within the group and hi is 1 or 0 representing ACK or NACK, respectively. These indices are 0-based.

Data Types: double
Complex Number Support: Yes

Output Arguments

collapse all

sym — PHICH complex modulation symbolsnumeric matrix

PHICH complex modulation symbols, returned as a numeric matrix. Each column of this NRE-by-CellRefP matrix contains the per-antenna symbols for the combined set of PHICHs, where info.NPHICH is defined via the settings in the enb structure.

Data Types: double
Complex Number Support: Yes

info — Control resourcing information about output symbolsscalar structure

Control resourcing information about the output symbols, returned as a scalar structure. info contains the following fields.

NRE — Number of resource elements assigned to all PHICHpositive integer

Number of resource elements assigned to all PHICH, returned as a positive integer.

Data Types: uint64

NREG — Number of resource element groups assigned to all PHICHpositive integer

Number of resource element groups assigned to all PHICH, returned as a positive integer.

Data Types: uint64

NPHICH — Number of individual PHICH availablepositive integer

Number of individual PHICH available, returned as a positive integer.

Data Types: uint64

NGroups — Number of PHICH groupspositive integer

Number of PHICH groups, returned as a positive integer.

Data Types: int8

NMappingUnits — Number of PHICH mapping unitspositive integer

Number of PHICH mapping units, returned as a positive integer.

Data Types: int8

NSequences — Number of orthogonal sequences in each PHICH grouppositive integer

Number of orthogonal sequences in each PHICH group, returned as a positive integer.

Data Types: int8

PHICHDuration — PHICH durationinteger

PHICH duration, returned as an integer.

Data Types: int8

Data Types: struct

Introduced in R2014a

Was this topic helpful?