Main Content

ltePHICHDecode

Physical hybrid ARQ indicator channel decoding

Description

[hi,symbols] = ltePHICHDecode(enb,hires,sym) performs the inverse of Physical Hybrid ARQ Indicator Channel (PHICH) processing given the cell-wide settings structure, enb, PHICH resources, hires, and the matrix of PHICH symbols, sym. It returns a column vector of hybrid ARQ indicator values, hi, and the received symbol constellation matrix, symbols. The channel inverse processing includes deprecoding, descrambling, despreading and symbol demodulation. For details, see TS 36.211 [1], Section 6.9 and ltePHICH.

example

[hi,symbols] = ltePHICHDecode(enb,hires,sym,hest,noiseest), where hest contains the channel estimate, and noiseest contains the noise estimate.

  • For the TxDiversity transmission scheme (CellRefP=2 or 4), the reception is performed using an Orthogonal Space Frequency Block Code (OSFBC) decoder.

  • For the 'Port0' transmission scheme (CellRefP=1), the reception is performed using MMSE equalization.

[hi,symbols] = ltePHICHDecode(enb,hires,sym,hest,noiseest,alg), where specifying alg provides control over weighting the soft values that are used to determine hi with the channel state information (CSI) calculated during the equalization process.

Examples

collapse all

Decode the HARQ bits given PHICH symbols. Two HARQ bits are encoded into PHICH symbols using an hiset matrix, where each row is used to define an individual PHICH. The generated PHICH symbols are then decoded with the same parameters used to define the PHICHs in the encoder.

Using lteRMCDL to create a cell-wide settings configuration structure with RMC R.1, initializes relevant parameters for this example.

rc = 'R.1';
enb = lteRMCDL(rc);

Define the hiset input and generate PHICH symbols. First PHICH: [nGroup=1 nSeq=1 hi=1], second PHICH: [nGroup=1 nSeq=2 hi=0].

hiset = [ 1 1 1; 1 2 0 ];
phichSym = ltePHICH(enb,hiset);

Define the hires input. PHICH resources: same as the encoder, first PHICH: [nGroup=1 nSeq=1], second PHICH: [nGroup=1 nSeq=2].

hires = [ 1 1; 1 2];

Decode the PHICH.

hi = ltePHICHDecode(enb,hires,phichSym);

Check decoded hi bits are the same as encoded bits.

isequal(hi,hiset(:,3))
ans = logical
   1

Input Arguments

collapse all

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

Parameter FieldRequired or OptionalValuesDescription
NCellIDRequired

Integer from 0 to 503

Physical layer cell identity

CellRefPRequired

1, 2, 4

Number of cell-specific reference signal (CRS) antenna ports

NSubframeRequired

0 (default), nonnegative scalar integer

Subframe number

CyclicPrefixOptional

'Normal' (default), 'Extended'

Cyclic prefix length

Data Types: struct

PHICH resources, specified as an R-by-2 numeric matrix. This matrix configures up to NPHICH individual PHICH for decoding by ltePHICHDecode. Each row of hires defines a single PHICH in terms of [nGroup,nSeq], where nGroup is the PHICH group index number and nSeq is the sequence index number. These indices are zero-based.

Each row of output, hi, represents the received Hybrid ARQ indicator values for the PHICH defined in the corresponding row of hires. Similarly, each row of the output, symbols, contains the three received symbols (after despreading) for the corresponding row of hires.

In terms of ltePHICHInfo info structure fields, the following conditions apply:

nGroup < info.NGroups
nSeq < info.NSequences
Rows of hires with nGroup ≥ info.NGroups are ignored and output for these rows in hi and symbols is set to zero.

Data Types: double
Complex Number Support: Yes

Complex modulated PHICH symbols, specified as an NRE-by-NRxAnts numeric matrix of PHICH symbols. NRE is the number of BPSK symbols per antenna assigned to the PHICH, and NRxAnts is the number of receive antennas. Even if less than the full set of NPHICH channels were configured, ensure the sym input matrix contains info.NRE symbols corresponding to the total PHICH resource allocation. Use ltePHICHInfo to view the info structure fields.

Data Types: double
Complex Number Support: Yes

Channel estimate, specified as an NRE-by-NRxAnts-by-enb.CellRefP numeric array, where:

  • NRE are the frequency and time locations corresponding to the PCFICH RE positions (a total of NRE positions).

  • NRxAnts is the number of receive antennas.

  • enb.CellRefP is the number of cell-specific reference signal antennas.

Data Types: double
Complex Number Support: Yes

Noise estimate, specified as a numeric scalar. This input argument is an estimate of the noise power spectral density per RE on received subframe. Such an estimate is provided by the lteDLChannelEstimate function.

Data Types: double

Weighting algorithm, specified as a structure. This input argument controls weighting output soft bits, bits, with CSI. alg contains the following fields.

Parameter FieldRequired or OptionalValuesDescription
CSIOptional

'On' (default), 'Off'

Flag provides control over weighting the soft values that are used to determine the output values with the channel state information (CSI) calculated during the equalization process. If 'On', soft values are weighted by CSI.

Data Types: struct

Output Arguments

collapse all

Hybrid ARQ indicator values, returned as a numeric column vector. Each row represents the received Hybrid ARQ indicator values for the PHICH defined in the corresponding row of hires.

Data Types: double

Received symbols, returned as a numeric matrix. Each row contains the received constellation symbols (after despreading) for the corresponding row of hires.

Data Types: double
Complex Number Support: Yes

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