Physical hybrid ARQ indicator channel
[
returns
a matrix, sym
] = ltePHICH(enb
,hiset
)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.
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.
enb
— Cell-wide settingsCell-wide settings, specified as a scalar structure. enb
contains
the following fields.
NDLRB
— Number of downlink resource blocksNumber of downlink resource blocks, specified as a positive integer.
Data Types: double
NCellID
— Physical layer cell identityPhysical layer cell identity, specified as a nonnegative integer.
Data Types: double
CellRefP
— Number of cell-specific reference signal antenna portsNumber 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'
.
Data Types: char
| string
NSubframe
— Subframe numberSubframe number, specified as a nonnegative integer.
Data Types: double
Ng
— HICH group multiplier'Sixth'
| 'Half'
| 'One'
| 'Two'
HICH group multiplier, specified as 'Sixth'
, 'Half'
, 'One'
,
or 'Two'
.
Data Types: char
| string
DuplexMode
— Duplex mode'FDD'
(default) | optional | 'TDD'
Duplex mode, specified as 'FDD'
or 'TDD'
.
Data Types: char
| string
TDDConfig
— Uplink or downlink configurationUplink 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
hiset
— HARQ indicator setHARQ 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
sym
— PHICH symbolsPHICH 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
info
— PHICH subframe resourcing information about output symbolsPHICH 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
.
NREG
— Number of resource element groups assigned to all PHICHNumber of resource element groups assigned to all PHICH, returned as a positive integer.
Data Types: uint64
NRE
— Number of resource elements assigned to all PHICHNumber of resource elements assigned to all PHICH, returned as a positive integer.
Data Types: uint64
NPHICH
— Number of individual PHICH availableNumber of individual PHICH available, returned as a positive integer.
Data Types: uint64
NGroups
— Number of PHICH groupsNumber of PHICH groups, returned as a positive integer.
Data Types: int8
NMappingUnits
— Number of PHICH mapping unitsNumber of PHICH mapping units, returned as a positive integer.
Data Types: int8
NSequences
— Number of orthogonal sequences in each PHICH groupNumber of orthogonal sequences in each PHICH group, returned as a positive integer.
Data Types: int8
PHICHDuration
— PHICH durationPHICH duration, returned as an integer.
Data Types: int8
ActiveHISet
— Active HARQ indicator setActive 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 NGroup
≥ info
.NGroups
.
If hiset
is empty, ActiveHISet
is
returned as an empty matrix, [ ].
Data Types: int8
Data Types: struct
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.
[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.
ltePHICHDecode
| ltePHICHIndices
| ltePHICHInfo
| ltePHICHPRBS
| ltePHICHPrecode
You have a modified version of this example. Do you want to open this example with your edits?