Main Content

ltePHICH

Physical hybrid ARQ indicator channel

Description

[sym] = ltePHICH(enb,hiset) returns a matrix, sym, of symbols generated by the set of physical hybrid ARQ indicator channels (PHICH) in a subframe, given the cell-wide settings configuration structure, enb, and HARQ indicator set, hiset. For more information, see PHICH Generation.

[sym,info] = ltePHICH(enb,hiset) also returns an info structure, containing control resourcing information about the output symbols.

example

Examples

collapse all

Generate physical HARQ indicator channel (PHICH) 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.

Create a cell-wide settings configuration structure with a single antenna (enb.CellRefP=1), normal CP, fifty downlink resource blocks (enb.NDLRB=50), and a one sixth HICH group multiplier (enb.Ng='Sixth'). For this system configuration, 16 PHICH are available. The available PHICH are split between two groups of eight sequences. The sequences are mapped to info.NRE=24 resource elements. Calling lteRMCDL with RMC R.7 provides the desired configuration structure.

Generate PHICH symbols with various HI set configurations.

PHICH Symbols for Empty HI Set

Generate ltePHICH output for an empty HI set.

enb = lteRMCDL('R.7');
[sym,info] = ltePHICH(enb,[])
sym = 24×1 complex

   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
      ⋮

info = struct with fields:
             NREG: 6
              NRE: 24
           NPHICH: 16
          NGroups: 2
    NMappingUnits: 2
       NSequences: 8
    PHICHDuration: 1
      ActiveHISet: []

sizeSym = size(sym)
sizeSym = 1×2

    24     1

ltePHICH returns an NRE-by-CellRefP matrix of zeros. The transmission configuration is one antenna, as shown by the second dimension of the sym matrix. The info output structure is populated based on inputs to ltePHICH.

PHICH Symbols for Single HI Set

Modulate a NACK (hi=0) onto the third orthogonal sequence (nSeq=2) of the second group (nGroup=1). Generate PHICH symbols specifying the HI set as [nGroup=1 nSeq=2 hi=0].

enb = lteRMCDL('R.7');
sym = ltePHICH(enb,[1 2 0])
sym = 24×1 complex

   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
      ⋮

sizeSym = size(sym)
sizeSym = 1×2

    24     1

The result remains an NRE-by-CellRefP matrix.

PHICH Symbols for Multiple HI Sets

For the second PHICH, add an ACK (hi=1) on the last sequence (nSeq=7) of the first group (nGroup=0). Generate PHICH symbols specifying the HI sets as [[nGroup=1 nSeq=2 hi=0]; [nGroup=0 nSeq=7 hi=1]].

enb = lteRMCDL('R.7');
[sym,info] = ltePHICH(enb,[[1 2 0];[0 7 1]])
sym = 24×1 complex

   0.7071 - 0.7071i
   0.7071 - 0.7071i
  -0.7071 + 0.7071i
   0.7071 - 0.7071i
   0.7071 - 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
  -0.7071 + 0.7071i
      ⋮

info = struct with fields:
             NREG: 6
              NRE: 24
           NPHICH: 16
          NGroups: 2
    NMappingUnits: 2
       NSequences: 8
    PHICHDuration: 1
      ActiveHISet: [2x3 double]

sizeSym = size(sym)
sizeSym = 1×2

    24     1

The result remains an NRE-by-CellRefP matrix.

Input Arguments

collapse all

Cell-wide settings, specified as a scalar structure. enb contains the following fields.

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

Data Types: double

Physical layer cell identity, specified as a nonnegative integer.

Data Types: double

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

Data Types: double

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

Data Types: char | string

Subframe number, specified as a nonnegative integer.

Data Types: double

HICH group multiplier, specified as 'Sixth', 'Half', 'One', or 'Two'.

Data Types: char | string

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

Data Types: char | string

Uplink or downlink configuration, specified as a nonnegative scalar integer from 0 through 6. This argument is only required if DuplexMode is set to 'TDD'.

Data Types: double

Data Types: struct

HARQ indicator set, specified as an R-by-3 numeric matrix. R is the number of rows. Each row of hiset defines a single PHICH in terms of [nGroup,nSeq,hi].

  • nGroup is the PHICH group index number.

  • nSeq is the sequence index number within the group.

  • hi is 1 or 0 representing hybrid ARQ indicator ACK or NACK, respectively.

The nGroup and nSeq indices are zero-based. For more information, see PHICH Generation.

Data Types: double
Complex Number Support: Yes

Output Arguments

collapse all

PHICH symbols, returned as an NRE-by-CellRefP numeric matrix. NRE is the number of resource elements, and CellRefP is the number of cell-specific reference signal antenna ports. Each column of sym contains the per-antenna symbols for the combined set of PHICHs. 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. For more information, see PHICH Generation.

Data Types: double
Complex Number Support: Yes

PHICH subframe resourcing information about the output symbols, returned as a scalar structure. info contains the following fields. For background on the info structure, see ltePHICHInfo.

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

Data Types: uint64

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

Data Types: uint64

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

Data Types: uint64

Number of PHICH groups, returned as a positive integer.

Data Types: int8

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

Data Types: int8

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

Data Types: int8

PHICH duration, returned as an integer.

Data Types: int8

Active HARQ indicator set, returned as an N-by-3 matrix. N is the number of rows with a valid hiset defined. ActiveHISet contains only rows that define a valid HARQ indicator set, even if the input hiset has rows in which NGroupinfo.NGroups. If hiset is empty, ActiveHISet is returned as an empty matrix, [ ].

Data Types: int8

Data Types: struct

More About

collapse all

PHICH Generation

The physical hybrid ARQ indicator channel (PHICH) processing includes the stages of BPSK modulation, orthogonal sequence spreading, scrambling, resource element group (REG) alignment, layer mapping, precoding, PHICH group summation, and mapping unit creation. For details, see TS 36.211 [1], Section 6.9.

The control region of a subframe can contain up to info.NPHICH separate PHICH, each carrying a single hybrid ARQ (HARQ) acknowledgment (ACK), or negative acknowledgment (NACK). Settings in the enb structure define NPHICH.

The input hiset specifies an R-by-3 matrix, configuring individual PHICH that are combined in the output. R is the number of rows. Each row of hiset defines a single PHICH in terms of [nGroup,nSeq,hi]. In the info structure fields, the following conditions apply for the sets of hybrid indicators defined:

  • nGroup < info.NGroups

  • nSeq < info.NSequences

To generate PHICH symbol, ltePHICH uses the rows of hiset in which nGroup < info.NGroups. These rows are present in info.ActiveHISet. Any other rows present in hiset are ignored.

References

[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: https://www.3gpp.org.

Version History

Introduced in R2014a