You are on page 1of 85

LTE Uplink Receiver Algorithm Design Specification:

Volume 2

Status Working Draft Status Compass Object ID :


Department/Group Review Version : 1.0
General Review Date : 07/09/2010
Released
Revision to Released Document Supersedes : None

Motorola
Systems and Technologies (SAT)
1421 West Shure Drive
Arlington Heights, IL 60004

Abstract
The LTE receiver algorithm design is described in this document. The floating-point design of the receiver (from
baseband received sampled signal input to either the log-likelihood ratio output or post-decoder/detector output)
is developed. This is the second volume of the receiver design document and entails the following changes and
additional features: 1. Antenna failure detection, 2. PUSCH DTX detection, 3. Improvements to ATC and AFC
algorithms, 4. Channel estimation simplifications, 5. Interference rejection combining (IRC) algorithm, 6 SRS-
based transmit beamforming algorithm, 7. Doppler estimation algorithm. The other parts of the receiver chain
remain the same as the volume 1 document. The algorithms are designed to work for any number of receive
antennas, and some of the performance optimizations have been done with a view to simplify 8 receive
functionality. All the algorithms (with the possible exception of transmit beamforming, which is specific to TDD),
are equally applicable to both FDD-LTE and TD-LTE. The algorithms here are meant to map to features in LTE
Release 2/Package 2 and in some cases, to LTE Release 3.0. These are also applicable to the different Drops of
TD-LTE, including prototyping activities.

1
Table of Contents

1 Overview of the Receiver ......................................................................................... 10


2 Transmitter Chain ..................................................................................................... 14
2.1 PUSCH.............................................................................................................. 14
2.2 PUCCH ............................................................................................................. 16
2.3 PRACH ............................................................................................................. 16
3 PUSCH Receiver Implementation ............................................................................ 17
3.1 Extraction of Frequency Domain Signals ......................................................... 17
3.1.1 Extraction of User Specific Frequency Domain Signal ............................ 18
3.2 De-rotation of Reference Symbols.................................................................... 19
3.3 Antenna Failure Detection ................................................................................ 19
3.3.1 Exploiting Time and Frequency Correlation ............................................ 20
3.3.2 Exploiting Signal Strength ........................................................................ 22
3.3.3 Threshold Lookup ..................................................................................... 23
3.3.4 Resize Signal Matrices .............................................................................. 24
3.4 PUSCH – DTX Detection ................................................................................. 24
3.5 Uplink Synchronization Error Correction ......................................................... 25
3.5.1 Timing Error Estimation/Correction for Pilots ......................................... 26
3.5.2 Frequency Error Estimation ...................................................................... 29
3.5.3 Timing and Frequency Error Correction for Pilots and Data ................... 30
3.6 Channel Estimation ........................................................................................... 31
3.6.1 Pilot Averaging across Slots ..................................................................... 32
3.6.2 Estimation via Averaging (Linear Regression Order 0) ........................... 33
3.7 PUSCH Spatial Interference plus Noise Covariance Matrix Estimation .......... 34
3.7.1 Inversion of Interference and Noise Covariance Matrix........................... 35
3.8 MMSE Equalization.......................................................................................... 35
3.8.1 Frequency error Correction - 2nd Stage ..................................................... 37
3.9 PUSCH Multiplexed with UCI ......................................................................... 38
3.9.1 RI Receiver ............................................................................................... 39
3.9.2 A/N Decoder ............................................................................................. 42
3.9.3 CQI Receiver/Decoder .............................................................................. 47
3.10 PUSCH Decoding ............................................................................................. 49
4 PUCCH Receiver Implementation ............................................................................ 49
4.1 Extraction of PUCCH signal............................................................................. 50
4.2 Detection of HARQ Data in Format 2A/2B ..................................................... 51
4.2.1 Sequence Removal .................................................................................... 51

2
4.2.2 ACK/NACK Symbol Estimation .............................................................. 52
4.2.3 Removal of AN Symbols .......................................................................... 53
4.3 Channel Estimation ........................................................................................... 53
4.3.1 Pilot Averaging within a Slot .................................................................... 54
4.3.2 Regression ................................................................................................. 54
4.4 Interference and Noise variance Estimation ..................................................... 55
4.5 MRC Combining across Antennas and Subcarriers.......................................... 56
4.6 Format 1/1A/B Detection .................................................................................. 57
4.6.1 Format 1 Detection ................................................................................... 57
4.6.2 Format 1A Detection................................................................................. 58
4.6.3 Format 1B Detection ................................................................................. 59
4.7 CQI/RI Decoding .............................................................................................. 60
4.7.1 FHT based Decoding ................................................................................ 60
5 SRS based Beam Forming ........................................................................................ 62
5.1 Sequence Removal ............................................................................................ 62
5.2 IDFT based Channel Estimation ....................................................................... 63
5.3 SRS based Beam Former .................................................................................. 64
5.3.1 Spatial covariance estimation ................................................................... 64
5.3.2 Eigenvector Estimation using Power Method........................................... 65
5.3.3 SRS based Phase Beam Former ................................................................ 65
6 LLR Calculation........................................................................................................ 65
6.1 QPSK ................................................................................................................ 66
6.2 QAM16 ............................................................................................................. 66
7 PRACH Receiver ...................................................................................................... 69
7.1 PRACH front-end processing for Format 0 and Format 1 ................................ 69
7.1.1 Gain adjustment in front-end processing .................................................. 69
7.1.2 Decimation ................................................................................................ 69
7.2 PRACH backend processing for formats 0, 1 ................................................... 70
7.2.1 Overview ................................................................................................... 70
7.2.2 Threshold Calculation ............................................................................... 71
7.2.3 Noise Variance Estimation ....................................................................... 77
7.2.4 Timing Offset Calculation ........................................................................ 77
8 Measurements: .......................................................................................................... 78
8.1 PUSCH: Post-MMSE Combined SINR Per-Subframe, Per-User .................... 78
8.2 LLR Erasure for UCI Multiplexed PUSCH ...................................................... 79
8.3 LLR Erasure for PUCCH .................................................................................. 79
8.4 Long Term SINR estimate on PUCCH Format 2/2A/2B ................................. 80
8.4.1 Average Other-Cell Interference and Noise Variance Estimation ............ 80

3
8.4.2 Averaged In-Cell plus Other-Cell Interference and Noise Variance
Estimation per User................................................................................................... 81
8.4.3 PUCCH based Long Term SINR Estimation............................................ 82
8.5 Doppler Estimation ........................................................................................... 82
8.5.1 Correlation of Channel Estimates ............................................................. 83
8.5.2 Average the Correlation ............................................................................ 83
8.5.3 IIR Filtering of Correlation Estimates ...................................................... 84
8.5.4 Threshold based Doppler Estimation ........................................................ 84
9 Conclusions ............................................................................................................... 85

4
Release History
Version Release Date Editor(s) DR Number Change History

1.0 07/09/2010 Shirish Nagaraj Released version with antenna


failure detection, PUSCH-DTX
detection, IRC receiver,
ATC/AFC changes, channel
estimation simplifications, SRS
based beam forming and
Doppler estimation.

5
References

[1] 3GPP, “Physical Channels and Modulation (Release 8),” 3GPP TS 36.212 v8.8.0
Dec. 2009.
[2] 3GPP, “Multiplexing and Channel Coding (Release 8),” 3GPP TS 36.211 v8.9.0,
Dec. 2009.
[3] N. Mangalvedhe and S. Nagaraj, “Uplink Control Channel Receiver Design and
Performance Analysis for
LTE,” http://compass.mot.com/doc/307645599/LTE_PUCCH_Receiver_v2p1.doc
[4] S. Nagaraj, “PUCCH LLR Scaling
Equations,” http://compass.mot.com/go/311160075/PUCCH_LLR_Scaling_Equations.do
c.
[5] S. Nagaraj, “Reed-Muller
decoder,” http://compass.mot.com/go/311160075/RM_decoder_v2.pdf.
[6] S. Nagaraj, “LTE eNodeB Receiver Design and Performance Analysis,”
http://compass.mot.com/go/311126044/LTETrialReceiverOverview_07132008.pdf .
[7] W. Yang, S. Nagaraj, A. Dabbagh, S. Clapp, “LTE Trial system: Receiver
Algorithm Design and
Simulations,” http://compass.mot.com/doc/311594950/Phase_I_eNodeB_Receiver_Algor
ithms.pdf
[8] M. R. Raghavendra, K. V. Pradap and S. Nagaraj, “Multiplexed control and
shared channel receiver design and performance analysis for LTE,”
http://compass.mot.com/go/311126044.
[9] X. Yu, et al, “Uplink timing and frequency error correction
algorithms,” http://compass.mot.com/doc/307653310/ul_receiver_synch_LTE-1.doc.
[10] W. Yang, “LTE PRACH detection algorithm
description,” http://compass.mot.com/doc/327002202/.
[11] M. R. Raghavendra, K. V. Pradap and S. Nagaraj, “SRS based phase beamformer
estimation,” http://compass.mot.com/doc/355616868/SRS_Beamformer_design.doc/
[12] S. Nagaraj, K. V. Pradap, M. R. Raghavendra, W. Yang “LTE FDD Release
2.0/Package 1.0 Uplink Receiver Algorithm Design Specification,”
http://compass.mot.com/doc/342298808/LTE_ENodeB_Receiver_Algorithms_R2P1_v1.
doc

6
Authors
NAME EMAIL PHONE

Shirish Nagaraj shirish.nagaraj@motorola.com +1-847-632-2362

K. V. Pradap pradap@motorola.com

M. R. Raghavendra mr.raghavendra@motorola.com

Weidong Yang weidong.yang@motorola.com

Ke-kang Chin ke-kang.chin@motorola.com

Deepak Nayak deepak.nayak@motorola.com

John Haug John.Haug@motorola.com

Acknowledgements

The authors would like to acknowledge Nitin Mangalvedhe and Xiaoyong Yu for
contributions to aspects of the algorithm design and simulations.

7
Notation
With a few exceptions, we use the following notations:

• 1 j - represents −1
• ℜ(a ), ℑ(a ) - denotes the real and imaginary parts of the complex number a

• m : antenna index.
• i : OFDMA symbol index.
• j : tone index.

• N rb : the number of resource blocks assigned to the UE of interest.

• N u - total number of users sharing the PUCCH channel

• N pusch , u - total number of users sharing the PUSCH channel in a subframe

• N sl - number of slots in a sub-frame

• L : the number of tones in an assignment of an UE. L = 12 N rs .

• z m ,i , j : the signal at antenna m , OFDMA symbol i and tone j for the UE of interest.

• Pi , j : the pilot value at i-th symbol and j-th subcarrier

• Pu ,i , j : the pilot value at i-th symbol and j-th subcarrier for the u-th user on PUCCH

• σ m2 ,k : the per tone noise variance for antenna m and resource block k .

• sˆi , j : the symbol estimate for OFDMA symbol i and tone j .

• Bk : the tone indices with resource block k . For example, B1 = {1, 2, L , 12} ,
B2 = {13, 14, L , 24} .
• , k : subcarrier indices for the uth user in the kth RB of the SRS symbol
BuSRS

⎛ j⎞
• R ( j ) : the resource block index associated with tone j . R ( j ) = ceil ⎜ ⎟.
⎝ 12 ⎠
For example, R (1) = 1 , R (12) = 1 and R (24) = 2 .

• τ max : the largest delay spread.

• Ts : OFDMA symbol duration ( 66.67 μs ).

• NumPilotOFDMSymbols - number of pilot OFDM symbols per subframe.

8
• PilotOFDMSymPosition(k ) - refers to the symbol index of the k –th pilot symbol
in a subframe
• DataOFDMSymPosition(k ) - refers to the symbol index of the k–th data symbol
in a subframe
• NumDataOFDMSymbols - number of data OFDM symbols per subframe.

• NumOFDMSymbols - number of ofdm symbols in a subframe.


• resourceBlkSize - number of resource elements (subcarriers) in a resource
block.
• resourceBlkSizeSRS - number of available resource elements (subcarriers) in a
SRS resource block
• δf - Subcarrier bandwidth in terms of Hz

• CPLen(k ) - refers to the cyclic prefix length for k-th OFDM symbol
• NumPilotOFDMSymbolsPerSlot - refers to the number of pilot OFDM symbols
per slot
• PilotOFDMSymPositionSlot (n, k ) - refers to the symbol index of the k–th pilot
symbol in a n-th slot
• NumOFDMSymbolsPerSlot - refers to the number of OFDM symbols per slot

• OFDMSymPositionSlot ( n, k ) - refers to the symbol index of the symbol in a n-th


slot
• NumDataOFDMSymbolsPerSlot - refers to the number of data OFDM symbols

per slot
• DataOFDMSymPositionSlot ( n, k ) - refers to the symbol index of the k–th data

symbol in n-th slot


• Pd - maximum Doppler frequency estimation period
• f D _ t arg et - maximum Doppler frequency value for the estimation target
• τ - is some multiple of CQI/PMI transmission period
• N iter - Number of iterations for power method of finding the Eigen-vector of a
matrix

9
1 Overview of the Receiver

This document details the receiver algorithms for an eNodeB with multiple receive antennas
receiving transmissions from a UE with single transmit antenna.

The operations below are typically described for an LTE system with nornal cyclic prefix, and are
generically applicable to FDD as well as TDD systems, and for any of the allowed bandwidths.
From each receive chain (per antenna) within the eNodeB, one baseband signal is sampled as
per the bandwidth operated. The front-end FFT (FE-FFT) is responsible for converting the time-
sampled data to the frequency-domain. The FE-FFT is preceeded by the block of half-subcarrier
shift removal and cyclic prefix removal, both of which are not described in this document. The
half-subcarrier shift is needed in the uplink since DC tone nulling, typical of OFDMA systems, is
not possible due to the single carrier nature of the LTE uplink. After removing the half-subcarrier
shift and cyclic prefix, and performing an FFT (the size of which depends on the bandwidth of
operation, denoted by NFFT) on the baseband signal, we obtain a NFFT × 14 data array. The
14 columns of the data array correspond to the 14 OFDMA symbols in one TTI. For PUSCH, two
OFDMA symbols, symbol 3 and symbol 10 (indexed 0 through 13) carry the demodulation
reference signals; other symbols carry data. The DC tone is located on subcarrier (NFFT/2) +1 of
the data array.

All PUSCH allocations in the uplink are contiguous to maintain the single-carrier property. We
further assume that there is no inter-slot hopping, which is a critical assumption for channel
estimation algorithms. Each resource unit is 12 subcarriers by 14 symbols, which is referred to as
an RB pair.

Given that the uplink shared channel (PUSCH) is transmitted using SC-FDMA, frequency-domain
equalization is necessary to obtain the demodulated symbols. Proper combining across antennas
requires the active antenna indices to be determined. The acrive antennas determination is done
by the antenna failure detection block, that processes signals from all RBs (across users), and
uses an average metric to determine if a particular antenna is still active. Coherent demodulation
requires pilot-based channel estimates from each active antenna and for each subcarrier
occupied by the user’s allocation. The PUSCH processing steps are generically described in the

10
following.
1. Pilot processing starts with first obtaining an estimate of the timing error and frequency
error. Note that an initial timing error estimate is obtained from PRACH processing, and
this correction is sent as part of the PRACH response message. The ATC (automatic
timing error correction) and AFC (automatic frequency error correction) estimates are
used by the receiver directly to correct the respective errors before channel estimation is
performed. The timing error estimate is further sent up to the MAC as part of a
measurement, to enable in-call timing advance functionality. In this volume, we propose
modifications to the ATC/AFC algorithm wherein certain averaging and thresholding
operations are added in order to make the receiver more robust and better performing,
especially at low SINRs.

2. De-rotated pilot symbols are further used to detect the presence of the PUSCH
tranmission by the desired UE. This functionality is important in coherent re-scheduling of
re-transmission grants with appropriate MCS indices to the desired UE. If the PUSCH
DTX detection block determines that the PUSCH was not transmitted, no further receiver
processing is performed. It should be noted that this DTX detection operation should not
be performed for small RB allocations (less than a certain NRB_threshold RBs) since the
detection reliability is not high.

3. Channel estimation is performed using a least-squares polynomial regression approach


in the frequency domain. This operation is performed on the time-averaged pilot OFDM
symbols. The time-averaging before frequency-domain estimation is critical in improving
the channel estimator SINR, and provides gains in low to moderate doppler scenarios. In
this volume, we propose to simplify the channel estimation algorithm by choosing a zero-
order for regression, essentially making the channel estimator to be an averager across
time and frequency per RB. This is done with a view to simplify the computational needs
for supporting 8 receive antennas, and also has been found to perform well in low SINR
operating conditions, especially in conjunction with the modified ATC/AFC strategy. It
should also be noted that this channel estimation simplification is applicable only to
PUSCH, and PUCCH still uses linear regression (order 1).

4. The next step in the pilot processing block is the estimation of interference and noise
covariance. The assumption we make is that the covariance structure of I+N is roughly
constant over an RB pair, thus allowing for a single covariance estimate per RB pair
using all the pilots of that RB pair. In a typical cellular system, the interference power
level can be different from one resource block to another and from one antenna to

11
another antenna. Hence the interference and noise covariance matrix for each resource
block is calculated. The covariance matrix estimates the cross-coupling of the
interference across antennas, and is used for developing the optimal spatial combiner,
denoted as Interference Rejection Combining (IRC). When we use only the diagonal
elements of this covariance matrix, this boils down to the MRC approach that was
described in RADS volume 1.

5. With the channel estimates and calculated noise covariances, signals from all antennas
are combined first using maximum ratio combining or interference rejection combining..
For each data symbol, an inverse DFT is performed on the combined signals at all the
tones taken by one UE to generate estimates of the transmitted QPSK/QAM16 symbols.
The combination of the MRC or IRC combining across antennas and the IDFT result in
an optimal MMSE equalizer (MRC being optimal only if the interference across antennas
is not corelated). Second stage frequency offset correction is also applied to the symbols
to further improve the performance.

6. The post-equalization channel gain and the effective interference variance for those
symbol estimates are also calculated. These are used in the measurements for reporting
PUSCH SINR metrics.

7. If the uplink shared channel data is multiplexed with control information then extraction
and decoding of the control information is done.

8. Finally, LLRs (Logarithm of Likelihood Ratios) are calculated for each QPSK/QAM16
symbol based the corresponding symbol estimate, channel gain and noise plus
interference variance.

The PUCCH can be transmitted using multiple formats. A brief description of the formats is as
below:
1. Format 1: Used for transmitting scheduling request indication (SRI) – uses on/off keying.
2. Format 1A/1B: Used for transmitting 1 (1A) or 2 (1B) bits of Ack/Nack feedback.
3. Format 2: Used for transmitting CQI/PMI and RI information
4. Format 2A/2B: Used for sending CQI/PMI/RI along with HARQ Ack/Nack feedback.
The resource blocks used for transmission of a particular format depends on higher layer
configured parameters, as well as, in certain cases of transmitting Ack/Nack, on the scheduling
parameters (such as PDCCH CCE index). For example, typically, the CQI/PMI, RI, and SRI
resources are semi-statically configured, whereas the A/N resource is dynamically determined.

12
Depending on the information to be transmitted in any given subframe, the UE chooses (a) the
PUCCH resource index and appropriate RB associated with it, and (b) the PUCCH format to use.
For example, if a UE has to transmit SRI along with 1-bit A/N, it would use the SRI resource and
transmit PUCCH using Format 1A on that resource.

In this document, we do not lay out the controlling logic of determining which resource blocks to
look for and with what formats. The receiver algorithms lay out the steps needed to be done in
case of detecting the different formats and it is left to the scheduler-PHY interface to indicate
which formats to detect in which resource.

The main steps common to all the PUCCH formats are:


1. Pilot derotation and A/N demodulation/removal – the received reference signals in the
frequency domain are first de-rotated with the pilot sequence used. In the case of Format
2A/2B, an additional step is performed, wherein the A/N information has to be detected
on the pilots first and then this A/N modulation has to be removed from the reference
signals.
2. Channel estimation – the general approach for channel estimation is similar to the
PUSCH, except that the time-domain averaging is done per slot, followed by linear
regression across subcarriers. It should be noted that since the two RBs in an RB pair
occupy two different bands of the frequency domain, no inter-slot interpolation is
performed for PUCCH.
3. Interference and noise estimation – an estimate of the interference and noise variance is
computed per RB (not RB pair) and per antenna.
4. MRC combining – here, the modulating sequence across subcarriers is first removed
from the received data signals. Following this, the signals are combined across antennas
and subcarriers using MRC.
5. Detection/decoding – for the case of Format 1/1A/1B, DTX detection is done, along with
A/N detection as applicable. For Format 2/2A/2B, A/N detection would have already been
performed as part of step 1. The log likelihood ratios (LLR) are computed and followed by
a Reed-Muller decoder.

The document also describes the approach for transmit beamformer weight calculation based on
the sounding reference signal (SRS). The SRS is not associated with uplink data or control
transmission, but are primarily used for channel quality and beamformer estimation. The UEs
transmit SRS based on the cell specific broadcast information from the eNodeB. The SRS
tranmissions are always in the last SC-FDMA symbol in the configured subframes. Each UE will
be configured with SRS bandwidth, periodicity of transmission, transmission comb and the cyclic

13
shift to be used. Multiple UEs can transmit in the same SRS bandwidth and transmission comb
each using different cyclic shift .The receiver on reception of SRS would perform IDFT based
user separation and obtain channel estimates, estimate the spatial-correlation matrix, estimate
the dominant eigen-vector using iterative power method and determine the phase beamformer
that should be used for transmitting to that UE.

The next section briefly describes the transmit chain for the different channels. Following that, we
describe the PUSCH receiver, and the handling of UCI multiplexed on PUSCH in Section 3. The
PUCCH receiver for all formats is detailed in Section 4. The SRS based beam forming is
described in section 5. Since the LLR calculations are common to PUSCH and PUCCH receiver
blocks, the details of that are described in Section 6. Section 7 describes the PRACH receiver,
and the Section 8 discusses the measurements needed for sending to higher layers (either for
scheduling purposes, or for performance metric monitoring) as well as Doppler estimation. Finally,
conclusion is provided in Section 9.

2 Transmitter Chain
The following section briefly describes transmitter chain of processing for Physical Uplink
Shared Channel ( PUSCH) and Physical Uplink control channel ( PUCCH).

2.1 PUSCH
The shared channel data from higher layer, undergoes CRC attachment, code block
segmentation code block CRC attachment, channel coding as defined in section 5.1.3 [1] ,
followed by rate matching, code block concatenation as defined in sections 5.1.4, 5.1.5 [1]. If the
uplink control channel information is multiplexed with shared channel data, then channel coding is
individually done for uplink control channel data (section 5.2.2.6 [1]), followed by multiplexing and
channel interleaving (section 5.2.2.7 [1]). The interleaved data is scrambled modulated, mapped
to physical resources as defined in section 5.3 [2].
The coding chain for UL-SCH are shown in the figure below

14
a0 , a1 ,..., aA 1

Transport block
CRC attachment

b0 , b1 ,..., bB 1

Code block segmentation


Code block CRC attachment

cr 0 , cr1 ,..., cr Kr 1

Channel coding

dr(i0) , dr(1i ) ,..., dr(i )Dr 1

Rate matching
ACK ACK ACK
o0 , o1 ,..., oO [o0 ] or [o1 o0RI ] [o0 ] or [ o1 o0 ] or
RI RI
1
[o0ACK o1ACK L oOACK
ACK
−1
]
er 0 , er1 ,..., er Er 1

Code block Channel Channel Channel


concatenation coding coding coding

q0 , q1 ,..., qQ 1 q0RI , q1RI ,..., qQRIRI 1 q0ACK , q1ACK ,..., qQACK 1


f 0 , f1 ,..., f G 1
ACK

Data and Control multiplexing

g0 , g1 ,..., g H 1

Channel Interleaver

h0 , h1 ,..., hH+Q 1
RI

Figure 1: Coding Chain at Transmitter

15
2.2 PUCCH

Data arrives to the coding unit in form of indicators for measurement indication auch as channel
quality indication (CQI) and precoder matrix indication (PMI), scheduling request (SRI) and hybrid
automatic repeat request (HARQ) acknowledgement.
Three forms of channel coding are used, one for the channel quality information (CQI), another
for HARQ and scheduling request and another for combination of CQI and HARQ.The control
channel information received from the higher layers are coded as defined in the section 5.2.3 [1],
followed by processing of control channel information as defined in the section 5.4.1, 5.4.2 [2].
The processed information are then mapped to physical resources as defined in section 5.4.3 [2].
Finally the base band signal is generated as defined in the section 5.7.3 [2].

2.3 PRACH
A LTE physical random access channel occupies 72 tones at 15 KHz in frequency domain and
1~3 milliseconds in the time domain. In the physical layer specification of LTE [1], the random
access channel waveform is defined as:

−1⎛ N zc −1 2πnk

N zc ⎟ 1 j 2π ( k +φ + K ( ko +1/2)) Δf RA (t −Tcp )
N zc −1 j

s (t ) = ∑ ⎜ ∑
x u ,v ( n ) e

e
k =0
⎝ n=0
⎠ (1)
N zc −1
1 j 2π ( k +φ + K ( ko +1/2)) Δf RA (t −Tcp )
= ∑ ~xu ,v (k )e
k =0

We derive the frequency domain representation of the RACH signal for the general case.
Consider the DFT of xu ,v ( n ) .

(2)
2πvN cs k
πukw ( kw+1) 1j
1j
~
xu ,v (k ) = DFT ( xu ,v (n)) = e
N zc
α (u )e
N zc

−1 −1 j πun ( n +1)
N zc

α (u ) = ∑ e
N zc

n=0
For more details of the derivation, see [10].

16
3 PUSCH Receiver Implementation

The following section describes the receiver chain of processing for shared channel. Most
of the material is covered in detail in [6], [7]. It includes extraction of frequency domain signals
specific to the user, antenna failure detection, PUSCH–DTX detection, timing and frequency
error correction, channel estimation, equalization, LLR generation, and decoding of data. The
figure below shows the overall receiver implementation for PUSCH.

Figure 2: .PUSCH Receiver Implementation

3.1 Extraction of Frequency Domain Signals


The time domain signal is received at each of the antennas at the receiver. The time
domain signal is passed through the CP removal and the half subcarrier shift is undone. It is then
passed through an N-point (1024 for 10MHz) FFT to get the frequency domain signals. The
following figure shows the frequency domain signal extraction

Figure 3: .Frequency domain signal extraction.

17
Input signal:
• rm (n) is the base band time domain signal from antenna m .

Output signal:
• ym ,i , j is the frequency domain signal from antenna m , at OFDMA symbol i and tone j ,

which is obtained by performing FFT on rm (n) after the removal of cyclic prefix and un-doing the

half subcarrier shift, i is between 1 and 14, and j is between 1 and NFFT.

3.1.1 Extraction of User Specific Frequency Domain Signal

In order to facilitate user specific processing, the user specific frequency domain signals are
extracted. Currently we assume that the user processing is done sequentially. Each user
scheduled on a sub frame will have different number of resource blocks, starting resource block
index which we shall refer as user-specific configuration.
Input signal:
• y m ,i , j
• The number of resource blocks ( N rs ) assigned to the UE of interest and the starting tone

of the allocation.
Output signal:
• z m ,i , j , where m is the antenna index, i is the OFDM block index, j is the tone

index,
1 ≤ j ≤ L = 12 N rs .

z m ,i , j = y m ,i , j + j , j = 1, L , L
start −1

where jstart is the starting tone index of the allocation. z m ,i , j that is obtained by re-indexing
y m ,i , j
assigned to the UE.

We have the following receiver model:

⎡ z m,i ,1 ⎤ ⎡hm,i ,1 ⎤ ⎡ si ,1 ⎤ ⎡ wm ,i ,1 ⎤
⎢ ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎢ M ⎥=⎢ O ⎥ FL ⎢ M ⎥ + ⎢ M ⎥
⎢⎣ z m,i , L ⎥⎦ ⎢⎣ hm ,i , L ⎥⎦ ⎢⎣ si , L ⎥⎦ ⎢⎣ wm,i , L ⎥⎦

18
where hm ,i , j is the frequency response at antenna m , OFDMA symbol i and tone j , FL is the

unitary DFT spread matrix, si ,1 , L , si , L are the QPSK/QAM16 modulation symbols at OFDMA

symbol i , wm ,i , j , is the additive noise which consists of thermal noise and other cell interference.

3.2 De-rotation of Reference Symbols


The following section describes the de-rotation of reference symbols
Input signal:

z m ,i , j , Pi , j
Output signal:
v m ,i , j
for m = 1 : M
for k = 1 : NumPilotOFDMSymbols
i = PilotOFDMSymPosition(k )
for j = 1:L
v m,i , j = z m,i , j Pi *,j ,

end
end
end

3.3 Antenna Failure Detection

In the presence of multiple receive antennas, antenna failure detection is important as it will avoid
combining the input from failed antennas. The algorithm uses the combination of averaged
correlation and signal strength metric to detect failed antennas. The module takes in the de-
rotated pilot from all the users and received frequency domain signal from FE-FFT, calculates the
metric and determines valid antenna indices based on a long-term statistic across users and
allocations. The figure below depicts the sequence of steps

19
Figure 4: .Antenna failure detection

Initializations:
ρ avg ,m = 0
φ avg ,m = 0
Input signal:

vu ,m ,i , j - De-rotated pilot from each user.

Output signal:
ρ u ,m , M valid ,

ρm = 0

Let N pusch ,u be the total number of users transmitting the uplink PUSCH in a subframe

Let M all be the total number of receive antennas

3.3.1 Exploiting Time and Frequency Correlation

for u = 1: N pusch ,u

20
for m = 1: M all

ρ F ,m = 0

for n = 1: NumPilotOFDMSymbols

i = PilotOFDMSymPosition(n )

for k = 1: N S

for s = 1:k
a = ν u , m ,i , j j = s : N s : end − N s

b = ν u , m ,i , j j = s + N s : N s : end

aH b
ρ F ,m ← ρ F ,m + 2 2
a + b

end
end
ρ T ,m = 0

i = PilotOFDMSymPosition(1)

l = PilotOFDMSymPosition(2 )
for k = 1: N S

for s = 1:k
a = v u , m ,i , j j = s : N s : end − N s

b = v u , m ,l , j j = s + N s : N s : end

aHb
ρ T ,m ← ρ T ,m + 2 2
a + b

end
end

21
2( ρT , m + ρ F , m )
ρu , m =
N s ( N s + 1)(1 + NumPilotOFDMSyms)

1
ρm ← ( ρ u ,m ) + ρ m
N pusch ,u

end
end

3.3.2 Exploiting Signal Strength

y m ,i , j
• is the frequency domain signal from antenna m , at OFDMA symbol i and tone
j ,which is obtained by performing FFT on the base band time domain signal after the
removal of cyclic prefix and un-doing the half subcarrier shift .
1
∑∑
2
• φm = y m ,i , j , where j is used subcarrier indices only.
14length( j ) i j

The valid antenna indices is updated as follows


M valid = {}
for m = 1: M all

φavg , m ← (1 − λsignal _ strength )φavg , m + λsignal _ strengthφm

⎛ φ avg ,m ⎞
if ⎜⎜ ⎟⎟ > 1 ,
φ
⎝ m ⎠
3
⎛ φ avg ,m ⎞
ρ gain ,m = ρ m ⎜⎜ ⎟

⎝ φm ⎠
else
ρ gain ,m = ρ m
end
ρ avg , m ← (1 − λcorr _ coefficient ) ρ avg , m + λcorr _ coefficient ρ gain , m
If ρ avg , m ≥ Tant _ fail

M valid ← {M valid , m}

22
end
end

M = length( M valid )

3.3.3 Threshold Lookup

The threshold is a function of total number of RBs used, which can be looked up/interpolated from
the table provided below.

Total Number of RBs Used

1 0.55

2 0.38

3 0.3

4 0.26

5 0.25

6 0.23

8 0.22

9 0.21

10 0.2

15 0.2

30 0.1

40 0.1

* - The table will be updated with more values.


The values of IIR filter coefficients
λ signal _ strength = 0.05

23
λcorr _ coefficient = 0.1

3.3.4 Resize Signal Matrices


m2 = 1
for m1 = 1 : M all

if( m1 ∈ M valid )
zm2 ,i , j = zm1 ,i , j ; for all i, j
νm 2 ,i , j = ν m1 ,i , j ; for all i, j
m2 ← m2 + 1
end
end

Note that the length of the valid antenna indices is referred to by M and the signals are expected
to be labeled as per the valid antenna indices, as described above.

3.4 PUSCH – DTX Detection

The PUSCH DTX detection is critical to avoid the problem when the UE fails to detect the uplink
grant on PDCCH. In such a scenario, the eNodeB will interpret a DTX (no PUSCH transmission)
as a NACK, triggering an uplink re-transmission schedule. In order to exercise Incremental
redundancy (IR) benefits, the UE will be scheduled using MCS indices 29, 30, 31, mandating the
UE to use TB size from the initial transmission resulting in wastage of RBs.
DTX detection is done using the pilots that are transmitted in the uplink by the UE. The pilot
sequences are correlated across time and frequency which can be used to distinguish PUSCH
data from noise. The following algorithm provides the procedure for DTX detection.

For a given user u with number of RBs < NRB_threshold,


ρu = 0
for m = 1 : M

ρ u ← ρ u + ρ u ,m
end
ρu
ρu ←
M
If ρ u > T pusch _ DTX
PUSCH_DTX = 0;

24
else
PUSCH_DTX = 1;
end
else
PUSCH_DTX = 0;
end

It should be noted that the metric ρ u,m is the same metric as calculated in the antenna

failure detection block.

3.5 Uplink Synchronization Error Correction

In the uplink, multiple users have different frequency errors due to local oscillator offset and
Doppler shift. Further, users can come in with different timing references within the CP window,
and the receiver’s function is to align all the user’s timing such that they have a minimum phase
channel. The timing also varies due to mobility, and therefore, in-call timing advance functionality
is available in LTE for the eNodeB to send correction messages to the UE.

The uplink receiver must account for these errors and correct them. The following section details
the timing / frequency error estimation and correction adopted. Algorithmic derivations of the
design can be found in [9]. The operations are done across all Resource Blocks (RBs) allocated
to a given user. The figure below provides a brief overview of the mechanism.

25
Figure 5: Timing/Frequency error correction.

3.5.1 Timing Error Estimation/Correction for Pilots

The section below describes the timing error correction procedure.

Input signal:

• v m ,i , j , Pi , j
Output signal:
v m,i , j , Δt m

3.5.1.1 Timing Error Estimation


The timing error is estimated as follows,

26
Input: Derotated pilot symbol v m ,i , j

Output: Timing error estimate Δt m

for m = 1 : M
Temp = 0
for k = 1 : NumPilotOFDMSymbols
i = PilotOFDMSymPosition(k )
for j = 1 : L − 1

( )
Temp ← Temp + v m ,i , j v m* ,i , j +1 ,

end
end
N FFT ⎧ ⎛ Temp ⎞⎫
Δt est1 = ⎨angle⎜⎜ ⎟⎟⎬
2π ⎩ ⎝ NumPilotOFDMSymbols(L − 1) ⎠⎭
Temp = 0
for k = 1NumPilotOFDMSymbols
i = PilotOFDMSymPosition(k )
for j = 1 : L − 2

( )
Temp ← Temp + v m ,i , j v m* ,i , j + 2 ,

end
end
N FFT ⎧ ⎛ Temp ⎞⎫
Δt est 2 = ⎨angle⎜⎜ ⎟⎟⎬
2 × 2π ⎩ ⎝ NumPilotOF DMSymbols ( L − 2 ) ⎠⎭
Δt est1 + Δt est 2
Δt m =
2
end

3.5.1.2 IIR Filtering for Timing Error Estimate


Input signal:
Δtm
Output signal:

27
ΔTm

Constant: λ = 0.1
Initialize: ΔTm = 0 (for a new mobile)

for m = 1 : M
ΔTm ← (1 - λ ) ΔTm + λ Δtm
end

3.5.1.3 Timing Error Correction for Pilot Symbols

Constant: timing_TH = 1 μs

Initialize:
Tc = 0

Initialize:
ΔTTm = 0

The estimated error is compensated as follows


if (16QAM || (QPSK && (|ΔTm| > timing_TH)))
for m = 1 : M
if(16QAM)
ΔTTm = Δtm
else
ΔTTm = ΔTm
end

for k = 1 : NumPilotOFDMSymbols
i = PilotOFDMSymPosition(k )

for j = 1 : L
− N FFT
p= + jstart + j − 2
2
⎛ 1 j 2πpΔTTm ⎞
vm,i , j ← vm,i , j exp⎜⎜ ⎟⎟
⎝ N FFT ⎠
end
end
end
Tc = 1
end

28
3.5.2 Frequency Error Estimation

The received pilots are de-rotated as mentioned in the section 3.3.1.1.

Input signal:
• v m ,i , j
Output signal:
• Δf m

for m = 1 : M
Temp = 0 , CPsum = 0
i = PilotOFDMSymPosition(1)
k = PilotOFDMSymPosition(2 )
ΔP = k − i
for p = i : k − 1
CPsum ← CPsum + CPLen( p )
end
ΔPN FFT + CPsum
Tsym =
N FFT δf
for j = 1 : L

Temp ← Temp + v m ,i , j v m* ,k , j

end

end

3.5.2.1 IIR Filtering for Frequency Error Estimate


Input signal:
Δf m
Output signal:

29
ΔFm , Δf ave

Constant: α = 0.2
Initialize: ΔFm = 0 (for a new mobile)

Δf sum = 0

for m = 1 : M
ΔFm ← (1 - α ) ΔFm + α Δf m

Δf sum ← Δf sum + ΔFm


end
Δf sum
Δf ave =
M

3.5.3 Timing and Frequency Error Correction for Pilots and Data

The timing and frequency error correction procedure is given below and follows possibly the
timing error correction block for pilots.

Constant: freq_TH = 175 Hz

Input signal:
• v m ,i , j , z m ,i , j
Output signal:
• v m ,i , j , z m ,i , j

If (16QAM || (QPSK && (|ΔFm| > freq_TH)))

for m = 1 : M
CPparsum = 0

for i = 1 : NumOFDMSymbols
CPparsum ← CPparsum + CPLen(i )

2πΔFm
Φ= [(i − 1) N FFT + CPparsum]
N FFT δf

30
if (i ∈ DataOFDMSymPos)
for j = 1 : L
if (Tc = = 1)

− N FFT
k= + jstart + j − 2
2
⎛ 1 j 2πkΔTTm ⎞
zm ,i , j ← zm ,i , j exp(1 jΦ )exp⎜⎜ ⎟⎟
⎝ N FFT ⎠
Else
zm ,i , j ← zm ,i , j exp(1 jΦ )
end
end
else
for j = 1 : L
v m ,i , j ← v m ,i , j exp(1 jΦ )
end
end
end
end
else
if (Tc = = 1)
for m = 1 : M
for i = 1 : NumOFDMSymbols
if (i ∈ DataOFDMSymPos)
for j = 1 : L
− N FFT
k= + jstart + j − 2
2
⎛ 1 j 2πkΔTTm ⎞
zm ,i , j ← zm ,i , j exp⎜⎜ ⎟⎟
⎝ N FFT ⎠
end
end
end
end
end

end

3.6 Channel Estimation

31
The channel estimation is done on the pilot symbols after pilot de-rotation, and the selective
timing and frequency error correction operations. The de-rotated and possibly timing/frequency
error corrected pilots are first averaged across slots and an estimate of the channel is obtained by
applying a polynomial regression matrix in the frequency domain. The polynomial order is set to 0,
which corresponds averaging across subcarriers. The channel estimates are then applied to the
data symbols as part of the MRC/IRC//MMSE equalization process. The figure below provides the
overview of the steps that are followed.

Figure 6: PUSCH Channel Estimation.

Input signal:
• v m ,i , j , q (regression order, equal to 0)
Output signal:

• hˆm,i , j

3.6.1 Pilot Averaging across Slots

Input signal:
• De-rotated pilot symbols v m ,i , j

Output signal

• Averaged pilot symbol v m , j

for m = 1 : M
for j = 1 : L

32
Temp = 0
for k = 1 : NumPilotOFDMSymbols
i = PilotOFDMSymPosition(k )
Temp ← Temp + v m,i , j
end
∧ Temp
v m, j = ,
NumPilotOFDMSymbols
end
end

3.6.2 Estimation via Averaging (Linear Regression Order 0)

Input signal:

• Averaged pilot symbols v m , j

Output signal

• Regression-based channel estimates hˆm ,i , j , j = 1, L, L

Pre-compute the regression matrix, of the following form

⎡ 1q 1q −1 L 1⎤
⎢ q ⎥
2 2 q −1 L 1⎥
A=⎢
⎢M M O M⎥
⎢ q ⎥
⎢⎣ S S q −1 L 1⎥⎦
where q = 0 , S = 12.
⎡1 1 L 1⎤
⎢ 1 L 1⎥⎥
1 ⎢1
−1 T
R=AA A A =
T
(
12 ⎢M
) M M M⎥
⎢ ⎥
⎣1 1 L 1⎦
for m = 1 : M
for k = 1 : N rs
i1 = 1
for j ∈ Bk
hˆ m ,1, j =0

33
for i2 = 1 : resourceBlkSize
p = resourceBlkSize ⋅ (k − 1) + i2
hˆ ← hˆ
m ,1, j+ R (i , i ) vˆ
m ,1, j 1 2 m, p
end
i1 ← i1 + 1
end

for i = 2 : NumOFDMSymbols

hˆ m ,i , j = hˆm,1, j
end
end
end

3.7 PUSCH Spatial Interference plus Noise Covariance Matrix


Estimation
The other-cell spatial interference plus noise covariance typically changes from one RB pair to
another, hence the interference plus noise covariance matrix is estimated per RB pair.

Input signals:

• v m ,i , j , hˆm,i , j j = 1, L , L, i ∈ PilotOFDMS ymPosition


Output signal
• Ck

for k = 1 : N rb

Ck = 0
for n = 1 : NumPilotOF DMSymbols
i = PilotOFDMSymPosition(n )
for j ∈ Bk

for m1 = 1 : M

for m2 = m1 : M

34
( )(
C k (m1 , m2 ) ← C k (m1 , m2 ) + v m1 ,i , j − hˆm1 ,i , j v m2 ,i , j − hˆm2 ,i , j )
*

C k (m2 , m1 ) = C*k (m1 , m2 )


end
end
end
end
Ck
Ck ←
NumPilotOFDMSymbols(resourceBlkSize − (q + 1))
end

if MRC
for k = 1 : N rb

C k ← diag (C k )

end
end

3.7.1 Inversion of Interference and Noise Covariance Matrix

Input signals:
• C k , k = 1 : N rb
Output signal
• Gk

for k = 1 : N rb

G k = C −k 1

end

3.8 MMSE Equalization

This module takes in the frequency domain signals, channel and interference plus noise co-
variance estimates, and generates an MMSE symbol estimate for each QPSK /16QAM
modulation symbol. Depending on antenna combining methods, the module has MRC and IRC

35
variants. Also computed is the corresponding signal gain factor and effective post-equalization
interference variance. The estimation can be looked up on as MRC/IRC antenna combining per
sub-carrier followed by frequency domain equalization via an IDFT. The following diagram shows
the sequence of steps followed.
.

Figure 7: Antenna combining and frequency-domain equalization

Input signals:

• z m ,i , j , hˆm ,i , j , G k , j = 1, L , L, i ∈ DataOFDMSymPosition , k = 1 : N rb
Output signal

• sˆi , j , g i , σ i2,eq

For each data OFDM data symbol,

for i ∈ DataOFDMSy mPosition


1. Compute the whitened signal and γ i, j for every subcarrier j, for j = 1 : L

36
γ i, j = 0
for m1 = 1 : M
xm1 , i , j = 0
ηm 1, i , j =0

for m2 = 1 : M
xm1 ,i , j ← xm1 ,i , j + G R ( j ) (m1 , m2 )zm2 ,i , j
ηm 1, i , j ← η m1, i , j + G R ( j ) (m1 , m2 )hˆm2 ,i , j
End

γ i , j ← γ i , j + hˆm* ,i , jη m ,i , j
1 1

end

1
2. Compute the MSE error variance σ e2 (i, j ) = for j = 1 : L
γ i, j + 1
3. Compute the vector d i = ( d i ,1 , K , d i , L ) where the j element is given by
M
d i , j = σ (i, j )∑ hˆm* ,i , j x m ,i , j , for j = 1 : L
2
e
m =1

4. Apply the normalized inverse DFT operation on the vector d i to get the estimated
symbol vector ŝ i where, sˆ i = [sˆi ,1 ,..., sˆi , L ] .
5. The signal gain post-equalization of each OFDM symbol is given by
1 L γ i, j
gi = ∑ .
L j =1 γ i , j + 1
6. The post-equalization interference plus noise variance σ i2,eq = g i (1 − g i ) .

Note that the time domain symbols in a SC-FDMA symbol have the same noise variance and
channel gain. Further, note that in the case of time domain pilot averaging, the channel gain and
the noise variance is same across all the symbols in the subframe. For the sake of generality, we
continue to index the post-MMSE gain and interference variance by the OFDMA symbol index i,
even though they are all the same if time-domian pilot averaging is used in channel estimation.

3.8.1 Frequency error Correction - 2nd Stage


The data symbol dependent frequency offset correction is performed on data sub-carriers after
antenna combining and channel equalization.

37
Input signal:
• sˆi , j , Δf ave
Output signal:
• sˆi , j

for i = 1 : NumOFDMSymbols

for j = 1 : L
−L
k= + j −1
2
⎛ 1 j 2πkΔf ave ⎞
sˆi , j ← sˆi , j exp⎜⎜ ⎟⎟
⎝ Lδf ⎠
end
end

3.9 PUSCH Multiplexed with UCI

This section describes the sequence of steps used to extract, detect and decode the uplink
control information (UCI) when its multiplexed with PUSCH. Detailed algorithmic development,
derivations and simulation results for this case can be found in [8].
The demodulated signal can be viewed as a vector of symbols which has both control and shared
channel information multiplexed in it. Among the control information, if HARQ is transmitted it
would puncture UL-SCH; hence it would involve DTX detection of Ack/Nack (AN) to assert the
presence of HARQ information with sufficient success probability, while meeting a desired false
alarm probability, is desired. In this context, it should be noted that DTX refers to the case of UL-
SCH symbols being present instead of AN symbols.
It is assumed that the presence or absence of RI/CQI information in UL–SCH data is known at
the eNodeB. Detection and decoding of different control/shared channel information is discussed
in following sections. The following figure depict the processing steps of UL-SCH shared with UCI

38
Figure 8: PUSCH Multiplexed with UCI processing

3.9.1 RI Receiver

From the demodulated symbols, the Rank Indication (RI) information symbols are picked from
their predefined locations and sent to the RI receiver. This section addresses the case when the
RI is either 1 or 2 bits.

Input :
N × 1 received symbol vector r1 ,..., rn corresponding to RI information, ri ∈ sˆi , j
Output
bi : i = 1 : numRIBits

3.9.1.1 1 Bit RI
The sequence of steps for the 1 bit RI decoding can be depicted as follows

Figure 9: 1Bit RI processing

39
• The received symbols r1 ,..., rN are first rotated by π / 4 clockwise. Let s1 ,..., s N

represent the rotated received symbols. i.e.

si = ri .e ( − jπ / 4 ) i = 1,..., N
• Let c1 ,..., c N represent the scrambling bit sequence corresponding to N symbols. Since 1

bit gets scrambled in each symbol, the length of the scrambling bit sequence will be
equal to the number of symbols. Find the positions where the scrambling code c1 ,..., c N

is 1, negate the rotated symbols at those positions. Let t1 ,..., t N represent the

descrambled symbols then,


t i = si (1 − 2ci ) i = 1,..., N

• The Decision Metric D is calculated as


N
D = ∑ ti ,
i =1

Note that with time domain pilot averaging the gain and noise variance remains constant
gi
for all the OFDM symbols in the sub-frame, the t i ’s are added without weighing by .
σ i2,eq
• 1 bit RI is decoded as

⎧1 , ℜ( D) < 0⎫
b1 = ⎨ ⎬
⎩ 0 , else ⎭

3.9.1.2 2 Bit RI
The sequence of steps for the 2 bit RI decoding can be depicted as follows

Figure 10: 2Bit RI processing

• The Log Likelihood Ratio (LLR) values corresponding to r1 ,..., rN are computed

assuming QPSK constellation. The bit LLRs are calculated as followed

40
αg i ⎫
l 2i −1 = ℜ{ri }⎪
σ i ,eq
2

αg i ⎬, i = 1,K , N .
l 2i = 2 ℑ{ri } ⎪
σ i ,eq ⎪⎭
Where
Qm - number of bits per symbol defined for PUSCH
α - amplification factor,

α =2 2
g i - signal gain factor

σ i2,eq - Estimated error Variance of Interference and Noise.

Note that with time domain pilot averaging the gain and noise variance, g i , σ i ,eq ,
2

remains constant for all the OFDM symbols in the sub-frame.


l1 ,..., l 2 N denote the bit LLR values corresponding to symbols r1 ,..., rN .
• Let c1 ,..., c 2 N represent the scrambling bit sequence corresponding to N symbols. Since

2 bits get scrambled in each symbol, the length of scrambling bit sequence will be equal
to 2N. Find the positions where the scrambling code c1 ,..., c 2 N is 1, negate the LLR’s at

those positions. Let t1 ,..., t 2 N represent the descrambled LLRs then,

t i = (1 − 2ci )li i = 1,...,2 N


The LLR’s t1 ,..., t 2 N are added circularly with a period of 3 to form a 3 × 1 vector u,
[u1 u 2 u3 ],
u i = 0 i = 1,2,3
u mod(i −1,3) +1 = u mod(i −1,3) +1 + t i i = 1,....2 N .

The LLRs u1 u 2 u 3 are corresponding to the RI bits O1 O2 O3 where O3 = mod(O1 + O2 ,2) .

The possible values taken by O1 O2 O3 are given by Matrix C b .

⎡0 0 0⎤
⎢0 1 1⎥⎥
Cb = ⎢
⎢1 0 1⎥
⎢ ⎥
⎣1 1 0⎦
and assigning 1 to bit 0 and -1 to bit 1 (comes from the LLR definition) the possible vectors are

41
⎡1 1 1⎤
⎢ 1 − 1 − 1⎥
Cs = ⎢ ⎥
⎢− 1 1 − 1⎥
⎢ ⎥
⎣− 1 − 1 1 ⎦
The code matrix, C s is multiplied with LLR vector u

c v = C suT
The product will result in 4 × 1 vector
Let MaxIndex denote the value index of maximum in the vector c v . The values are indexed from
0 in the c v vector.
• 2 bit RI is decoded as the binary equivalent of the MaxIndex value i.e., the bit sequence
[b1 b2 ] derived from MaxIndex will correspond to the information bit sequence O1 O2 .

3.9.2 A/N Decoder


The symbols corresponding to A/N are picked from the demodulated symbol vector. The symbols
are processed as described in the sections below for 1 and 2 bits. It should be noted that the DTX
detection algorithm proposed here, that distinguishes a valid A/N transmission versus random
PUSCH symbols, is applicable only if the number of PUSCH symbols that are punctured with A/N
information, N, is strictly greater than 1.

Figure 11: AN processing

Input :
N × 1 received symbol vector r1 ,..., rn corresponding to HARQ information, ri ∈ sˆi , j

Output

42
bi : i = 1 : numANBits

3.9.2.1 Process 1 Bit A/N


• The Log Likelihood Ratio (LLR) values corresponding to r1 ,..., rN are computed

assuming QPSK constellation. The bit LLRs are calculated as followed

αg i ⎫
l 2i −1 = ℜ{ri }⎪
σ i ,eq
2

αg i ⎬, i = 1,K , N .
l 2i = 2 ℑ{ri } ⎪
σ i ,eq ⎪⎭
Where
α - amplification factor,

α =2 2
Qm - number of bits per symbol defined for PUSCH
g i - signal gain factor

σ i2,eq - Estimated error Variance of Interference and Noise.

Note that with time domain pilot averaging the gain and noise variance, g i , σ i ,eq , remains
2

constant for all the OFDM symbols in the sub-frame.


l1 ,..., l 2 N denote the bit LLR values corresponding to symbols r1 ,..., rN .
• Let c1 ,..., c 2 N represent the scrambling bit sequence corresponding to N symbols. Since

2 bits get scrambled in each symbol, the length of scrambling bit sequence will be equal
to 2N. Find the positions where the scrambling code c1 ,..., c 2 N is 1, negate the LLR’s at

those positions. Let t1 ,..., t 2 N represent the descrambled LLRs then,

t i = (1 − 2ci )li i = 1,...,2 N


Note that in the case of TTI bundling there will be an additional scrambling sequence, which
should be descrambled first similar to the procedure above.Let t i , i = 1,...,2 N denote the
descrambled LLRs.
The decision variable for DTX detection is calculated as,
2N
1
D=
κ
∑t
i =1
i

8 Ng avg 1 N
where, κ =
(1 − g avg ) 2
with g avg =
N
∑g
i =1
i . Note that in the case of time domain pilot

43
averaging g i is independent of symbol index i and hence g avg = g i .

3.9.2.2 Process 2 Bit A/N

• The Log Likelihood Ratio (LLR) values corresponding to r1 ,..., rN are computed

assuming QPSK constellation. The bit LLRs are calculated as followed

αg i ⎫
l 2i −1 = ℜ{ri }⎪
σ i ,eq
2

αg i ⎬, i = 1,K , N .
l 2i = 2 ℑ{ri } ⎪
σ i ,eq ⎪⎭
Where
Qm - number of bits per symbol defined for PUSCH
α - amplification factor,

α =2 2
g i - signal gain factor

σ i2,eq - Estimated error variance of Interference and Noise.

Note that with time domain pilot averaging the gain and noise variance, g i , σ i ,eq , remains
2

constant for all the OFDM symbols in the sub-frame.


l1 ,..., l 2 N denote the bit LLR values corresponding to symbols r1 ,..., rN .
• Let c1 ,..., c 2 N represent the scrambling bit sequence corresponding to N symbols. Since

2 bits get scrambled in each symbol, the length of scrambling bit sequence will be equal
to 2N. Find the positions where the scrambling code c1 ,..., c 2 N is 1, negate the LLR’s at

those positions. Let t1 ,..., t 2 N represent the descrambled LLRs then,

t i = (1 − 2ci )li i = 1,...,2 N


Note that in the case of TTI bundling there will be an additional scrambling sequence, which
should be descrambled first similar to the procedure above. Let t i , i = 1,...,2 N denote the

descrambled LLRs.

If N > 1 then the LLR’s t1 ,..., t 2 N are added circularly with a period of 3 to form a 3× 1 vector

u , [u1 u 2 u 3 ],
u i = 0 i = 1,2,3

44
ni = 0 i = 1,2,3
for i = 1 : 2 N

u mod(i −1,3) +1 = u mod(i −1,3) +1 + t i

n mod(i −1,3)+1 ← n mod(i −1,3)+1 + 1


end

Let

4 g avg ni
κi = for i = 1,2,3
(1 − g avg ) 2

1 N
where, g avg =
N
∑g
i =1
i

g i - Signal gain factor.


Note that in the case of time domain pilot averaging, g i is independent of symbol index i and

hence g avg = g .

ui
• Define, a i = , i = 1,2,3
κi
The decision metric is given by,
3
D = ∑ ai2
i =1

The LLRs u1 u 2 u 3 are corresponding to the AN bits O1 O2 O3


where O3 = mod(O1 + O2 ,2) . The possible values taken by O1 O2 O3 are given by Matrix

Cb .

⎡0 0 0⎤
⎢0 1 1⎥⎥
Cb = ⎢
⎢1 0 1⎥
⎢ ⎥
⎣1 1 0⎦
and assigning 1 to bit 0 and -1 to bit 1 (comes from the LLR definition) the possible vectors are

45
⎡1 1 1⎤
⎢ 1 − 1 − 1⎥
Cs = ⎢ ⎥
⎢− 1 1 − 1⎥
⎢ ⎥
⎣− 1 − 1 1 ⎦
The code matrix, C s , is multiplied with LLR vector u

c v = C suT
The product will result in 4 × 1 vector
Let MaxIndex denote the value index of maximum in the vector c v . The values are
indexed from 0 in the c v vector. Let MaxValue is the value maxmizing one particular correlation
vector MaxValue is the decision variable. The values are indexed from 0 in the c v vector. It is
sent back to AN detection module, to get the actual bits transmitted.

3.9.2.3 DTX Detection

The following section describes the detection of DTX as against HARQ information. If the A/N is
expected to be transmitted then DTX detector outputs whether it is HARQ or DTX.

⎧1 , abs ( D) < Th1bitAN ⎫


1 bit AN: DTX = ⎨ ⎬
⎩0 , else ⎭
⎧1 , D < Th2bitAN ⎫
2 bit AN: DTX = ⎨ ⎬
⎩0 , else ⎭
The values for the thresholds Th1bitAN , Th2bitAN are chosen as Th1bitAN = 2.3 and Th2bitAN = 11.3 .

For 1bit DTX detection, the decision variable under the DTX transmission is modeled as
Gaussian distribution with zero mean and unit variance, D ~ N (0,1) . The Th1bitAN is calculated

by setting the tail probability to 1% in D (lookup table based). That is,


Q(Th1bitAN ) = 0.01
where, Q ( x ) is the Q-function defined by,

1 ⎛ u2 ⎞
Q(x ) = ∫ ⎜⎜⎝ − 2
exp ⎟⎟du
2π x ⎠

For 2bit DTX detection, the decision variable under the DTX transmission is modeled as Chi-

square distribution with degrees of freedom being 3, D ~ χ 2 (3) . The probability density function
of chi-square distribution with 3 degrees of freedom is,

46
⎛ x⎞
x exp⎜ − ⎟
f ( x,3) = ⎝ 2⎠,

Th2bitAN is calculated by setting the tail probability to 1% i.e.,

0.01 = ∫ f (x,3)dx .
Th2 bitAN

The threshold Th2bitAN can be found from the look-up table, The threshold holds only when

N > 1 . The theoretically calculate threshold can be adapted for better system performance.

3.9.2.4 AN Detection
⎧1 , ℜ( D) < 0⎫
1 bit AN : b1 = ⎨ ⎬
⎩ 0 , else ⎭
2 bit AN : The MaxIndex will correspond to the information bit sequence
transmitted b1 , b2 .

3.9.3 CQI Receiver/Decoder

The symbols corresponding to CQI are picked from demodulated symbol vector. The symbols are
passed through LLR calculator to get soft bits. The soft bits are then passed through Fast
Hadamard Transform (FHT) based CQI decoder. The decoder implements the algorithm
discussed below to get information bits.

3.9.3.1 FHT–based Decoding

The structure of the (32, A) code defined by 3GPP specification for Multiplexed CQI is derived
from basic (32,A) extended first order Reed Muller code . A general decoder structure for this
code is derived in [5].

If A <=6, then the base code is a standard RM code which uses the FHT basis sequences
augmented with the all 1’s sequence. In this code, support for greater than 6 bits is provided by a
number of mask sequences (totaling A-6).The 3GPP compliant (32,A) code is derived by
permuting certain output bits of the basic (32, A) code.
The FHT based receiver works as follows

47
1. If the soft bits vector length is less than 32, the vector is appended with zeros to form a
vector of 32 values. If the vector length is greater than 32, the soft bits are circularly
added with mod 32 to form a vector of 32 values.
2. Pre-calculate the number of mask sequences required

⎧1 , ( A − 6) ≤ 0⎫
num _ masks = ⎨ A−6 ⎬
⎩2 , else ⎭
3. Pre-calculate all the possible composite mask sequences, corresponding to different
combinations of the last A-6 bits of information bit vector as follows:

⎧ A−1
⎪∑ (a ⋅ M i ,n )mod 2, if num _ masks > 1
mi = ⎨ n = 6 n , i = 0,1,2,K , B − 1.
⎪0, num _ masks = 1
⎩ if

Here, the A-6 bit sequences {an} span all the possible combinations, which gives rise to
num_masks possible composite mask sequences {mi}. Then we map these composite
sequences to bi-polar form using the map (0,1) Æ (+1,-1). We refer to this bipolar mask
sequences as { m̂i }.

4. For each num_masks composite mask hypothesis, i.e.,


for mask_id = 1: num_masks
• De-mask the received LLRs {bi} as given in Section 3.4 to result in:
ei = bi • mˆ i , i = 0,1,2, B − 1
• Form a 32-length vector by inserting the values of ei at the B permuted locations.
The permuted indices are as follows (note the indexing is from 0Æ 31):
f k ( i ) = ei , i = 0,..., B − 1
k (i ) ∈ {0, 2, 3, 5, 6, 8, 9, 11, 12, 13, 16, 17, 18, 19, 22, 23, 25, 26, 27, 31,1,4,7,10,14
15,20,21,24,28,29,30 }.

• Re-arrange the values of fi as follows:


g 0 = f 30
g1:15 = f 0:14
g16 = f 31
g17:31 = f 15:29
• Perform a 32-point FHT on the vector g:
h = H (0 : len − 1,0 : 31) g
len = min(32, 2 A−1 )

48
where H is the 32-point Hadamard matrix (Note that the notation H(0:len-1, :)
means that we pick the first len rows of the matrix H, so the output will be a
vector of size len).

• Find the index that maximizes the absolute value of the FHT output, |h|. Denote
that intermediate winning index by idx (where idx belongs to {0, …, len-1}) and
the corresponding the maximum absolute value by max_val(mask_id).
• The intermediate decoded word is given by:
h(idx) ≥ 0 ⇒ decoded (mask _ id ) = 2 idx
h(idx) < 0 ⇒ decoded (mask _ id ) = 2 idx + 1
end
5. Among all the num_masks possible max_val values, select the mask_id that has the
maximum max_val. Denote this as final_mask_id, which belongs to {0, …,num_masks -1}.
6. Final decoded CQI word is given by:
CQIValue = decoded ( final _ mask _ id ) +64 final _ mask _ id

The basic operation is depicted in the figure below.

Figure 12 FHT decoder

3.10 PUSCH Decoding


From the equalized symbols, the LLRs are calculated as described in the section 5, and the
resultant LLRs are de-scrambled and passed through a turbo decoder, which returns the
information bits transmitted and a CRC indication of pass or fail.

4 PUCCH Receiver Implementation

The following section describes the receiver chain for the uplink control channel (PUCCH).
It includes extraction of frequency domain signals specific to the user, detection for A/N bits in

49
the case of format 2A/2B, channel estimation, MRC combining across antennas and subcarriers,
and detection of scheduling request, A/N bits in the case of format 1/1A/1B, and decoding of CQI
bits in the case of format 2/2A/2B. The figure below provides the brief overview of the PUCCH
receiver chain. Detailed algorthmic and performance analysis aspects can be found in [3].

Figure 13 PUCCH format 1 receiver chain

Figure 14: PUCCH format 2 receiver chain

4.1 Extraction of PUCCH signal

Extraction of frequency domain signal is done according to the procedure as described in sec 3.1.
From the PUCCH configuration, the frequency band where the control channel is modulated is
calculated and that selected frequency band is used for further processing.

50
4.2 Detection of HARQ Data in Format 2A/2B
If the user transmits A/N information using format 2A/2B, it uses the first even pilot symbol in a
slot to send A/N data by modulating the pilot in that symbol with the A/N data. In order to decode
the A/N data, the channel is estimated using the odd pilot symbol in a slot and using the
estimated channel, the A/N symbols are detected and decoded. The following diagram depicts
the basic operation.

Figure 15: PUCCH Format 2A/2B AN detection.

4.2.1 Sequence Removal

Input signal:
z m,i , j , Pu ,i , j
Output signal:
v u , m ,i , j

For a given user u,


for m = 1 : M
for i = 1 : NumOFDMSymbols
for j = 1 : L

vu ,m ,i , j = z m ,i , j Pu*,i , j

end
end
end

51
4.2.2 ACK/NACK Symbol Estimation
For a given user u,
γ =0
for m = 1 : M
for n = 1 : N sl
i = PilotOFDMSymPositionSlot (n,1)
Temp = 0
for j = 1,..., L
Temp ← Temp + vu ,m,i , j
end
Temp
vˆu ,m ,i =
L
γ ← γ + | vˆu ,m,i | 2
end
end

Temp = 0
for m = 1 : M
for n = 1 : N sl
i = PilotOFDMSymPositionSlot (n,1)
k = PilotOFDMSymPositionSlot (n,2)

for j = 1,..., L
Temp ← Temp + vˆu*,m ,i vu ,m,k , j
end
end
end
Temp
χ=

The ACK/NACK symbol is then demodulated as

where si ∈ {1,−1, j ,− j}
2
AN = arg min χ − si
si

The A/N bits are decoded from the table below:

PUCCH format Decoded bits AN

2a 0 1

52
[b1 ] 1 −1

00 1

2b 01 −j

[b1 b2 ] 10 j

11 −1

4.2.3 Removal of AN Symbols

⎧ v u , m ,i , j ,
⎪ for i = PilotOFDMSymPositionSlot (n,1), n = 1,2
v u , m ,i , j ← ⎨ v u , m ,i , j
⎪⎩ AN , for i = PilotOFDMSymPositionSlot (n,2), n = 1,2

4.3 Channel Estimation


The PUCCH signal is a code-multiplexed narrow band signal. In the following discussion, a
single-user channel estimator is proposed, where the signal is processed individually for each
user.

The channel estimation procedure involves the steps of pilot de-rotation, time-domain averaging
of pilots with in the slot and application of regression based channel estimation. The sequence of
steps is shown in the figure below.

53
Figure 16: PUCCH Channel Estimation

4.3.1 Pilot Averaging within a Slot


For a given user u,
Input signals: vu ,m ,i , j

Output signals: v u ,m ,n , j
for m = 1 : M
for n = 1 : N sl
for j = 1 : L
Temp = 0
for k = 1 : NumPilotOFDMSymbolsPerSlot

i = PilotOFDMSymPositionSlot (n, k )
Temp ← Temp + vu ,m,i , j
end
∧ Temp
v u ,m ,n , j =
NumPilotOFDMSymbolsPerSlot
end
end
end

4.3.2 Regression
Input signal:

• Averaged pilot symbols across time per slot v u ,m ,n , j
Output signal

• Channel estimate across time-frequency hˆu ,m ,i , j

• Pre-compute the regression matrix , it is of the following form

⎡ 1q 1q −1 L 1⎤
⎢ q ⎥
2 2 q −1 L 1⎥
A=⎢
⎢M M O M⎥
⎢ q q −1 ⎥
⎢⎣ S S L 1⎥⎦

54
Where q defines the regression order q is set to 1 and S = 12 (if estimation is done per
RB)

R = A (A T A ) A T
−1

For a given user u,

for m = 1 : M
for n = 1 : N sl
i = OFDMSymPositionSlot (n,1)
for j = 1 : L
hˆ =0 u , m ,i , j

for i2 = 1 : L
hˆu ,m ,i , j ← hˆu ,m ,i , j + R ( j , i2 ) vˆu ,m ,n ,i2
end
end
for k = 2 : NumOFDMSymbolsPerSlot
q = OFDMSymPositionSlot (n, k )
for j = 1 : L

hˆu , m,q , j = hˆu ,m,i , j


end
end
end
end

4.4 Interference and Noise variance Estimation


The interference and noise variance estimation is done per user. Theestimate is per slot
and per antenna.
For a given user u,
Input signals:

• vu ,m ,i , j , hˆu ,m ,i , j
Output signal

• σ u2,m ,n - noise variance for user u antenna m and slot n

for m = 1 : M

55
for n = 1 : N sl
2
σ u ,m ,n = 0
for k = 1 : NumPilotOFDMSymbolsPerSlot
i = PilotOFDMSymPositionSlot (n, k )
for j = 1 : L

Temp = vu ,m ,i , j − hˆu ,m,i , j


2 2
σ u ,m ,n ← σ u ,m ,n + | Temp | 2
end
end
2
σ u ,m,n
σ 2
=
u ,m ,n
{L(NumPilotOFDMSymbolsPerSlot ) − (q + 1)}
end
end

4.5 MRC Combining across Antennas and Subcarriers

The estimated symbols are combined using MRC (Maximum Ratio Combining) across antennas
and subcarriers, using the sequence removed (de-rotated) data received signals. The LLR
generation for this approach can be found in [4].

For a given user u,

Input: vu ,m ,i , j , σ u2,m ,n , hˆu ,m ,i , j


Output: Du ,i

for n = 1 : N sl
for k = 1 : NumDataOFDMSymbolPerSlot
i = DataOFDMSymPositionSlot (n, k )
Du ,i = 0
for j = 1 : L
for m = 1 : M
hˆu*,m ,i , j vu ,m ,i , j
Du ,i ← Du ,i +
σ u2,m ,n
end

56
LLRuI ,i = 2 2ℜ(Du ,i )
LLRuQ,i = 2 2ℑ(Du ,i )
end
end
end

4.6 Format 1/1A/B Detection

The following section describes Format 1/1A/B detection algorithms. The first step is the
calculation of estimation error variance and symbol estimate. For the case of Format 1A/1B, we
assume that 1 represents ACK 0 represents NACK and -1 represents DTX.

For a given user u,

Input: z u ,m,i , j , Pu ,i , j , σ u2,m ,n , hˆu ,m ,i , j


Output: Du , EstErrVaru

Du = 0
EstErrVaru = 0

for n = 1 : N sl
for k = 1 : NumDataOFDMSymbolsPerSlot

i = DataOFDMSymPositionSlot (n, k )
for j = 1 : L
for m = 1 : M
hˆu*,m,i , j vu ,m,i , j
Du ← Du +
σ u2,m,n
| hˆu , m ,i , j | 2
EstErrVaru ← EstErrVaru +
σ u2,m ,n
end
end
end
end

4.6.1 Format 1 Detection

57
SR _ Threshold = erfc −1 (2 p )
Where p is the target 0 to 1 detection error rate


2
erfc( x ) =
π ∫
− x2
e dx
x

is the complimentary error function. Values of the inverse complimentary error function for some
values of p are provided in the following table.

Target error rate


erfc −1 (2 p )
p

0.005 1.8214

0.01 1.6540

0.05 1.1631

For a given user u,

Input: Du , EstErrVaru ,
Output: InfBitsRx
Threshold = (SR _ Threshold ) EstErrVaru ( )
if ℜ(Du ) >= Threshold
InfBitsRx = 1
else
InfBitsRx = 0
end

4.6.2 Format 1A Detection

ACK _ Threshold = erfc −1 (2 p′)


where p ′ is the target DTX-to-ACK detection error rate.

Input Du , EstErrVaru
Output: InfBitsRx

Threshold = ( ACK _ Threshold ) EstErrVaru ( )

58
if ℜ(D ) < −Threshold
InfBitsRx = 1
elseif ℜ(D ) >= Threshold
InfBitsRx = 0
else
InfBitsRx = −1
end

4.6.3 Format 1B Detection


⎛ 4 ⎞
ACK _ Threshold = Fχ−21 ⎜1 − p′ ⎟
2
⎝ 3 ⎠
Fχ 2 (x ) is the cumulative distribution function (CDF) of the chi-squared distribution with two
2

degrees of freedom, and p ′ is again the target DTX-to-ACK detection error rate. Values of the
inverse CDF for some target values of p ′ are provided in the following table.

Target error rate ⎛ 4 ⎞


Fχ−21 ⎜1 − p ⎟
p 2
⎝ 3 ⎠

0.005 10.0213

0.01 8.6350

0.05 5.4161

Input: Du , EstErrVaru , AckNackTxSymk =1:K


Output: InfBitsRx

*
SymEnergy = Du Du
Threshold ← ( ACK _ Threshold )(EstErrVaru )

if SymEnergy >= Threshold


MaxInd ← arg max (AckNackTxSymk* D )
k =1:K

⎛ 1 jπ ⎞
RotSym ← exp⎜ ⎟ AckNackTxSymMaxInd
⎝ 4 ⎠

if ℜ(RotSym ) < 0

59
InfBitsRx (1) = 1
else
InfBitsRx (1) = 0
end

if ℑ(RotSym ) < 0
InfBitsRx (2 ) = 1
else
InfBitsRx (2 ) = 0
end
else
InfBitsRx = −1
end

4.7 CQI/RI Decoding


CQI or RI information is transmitted by the user in control channel using format 2/2A/2B. The CQI
information goes through LLR calculator as given in section 5 and the resultant LLRs are
descrambled and FHT based decoding is used to decode the CQI information. The different
algorithms are explained in the following sections. The basic operation is depicted in the figure
below. The details of the RM decoder can be found in [5].

Figure 17: PUCCH Format 2 CQI decoding

4.7.1 FHT based Decoding


The basic structure of the (20, A) code for CQI is derived from a basic (32, A) extended first order
Reed-Muller code. If A <=6, then the base code is a standard RM code which uses the FHT basis
sequences augmented with the all 1’s sequence. In this code, support for greater than 6 bits is
provided by a number of mask sequences (totaling A-6). The (20, A) code is derived by
puncturing certain output bits of the (32, A) code
The FHT-based receiver works as follows:
• If A > 6, set num_masks = 2(A-6), else set num_masks = 1.

60
• Pre-calculate all the possible composite mask sequences, corresponding to different
combinations of the last A-6 bits of information bit vector as follows:

⎧ A−1
⎪∑ (a ⋅ M i ,n ) mod 2, if num _ masks > 1
mi = ⎨ n = 6 n , i = 0,2, K, B − 1.
⎪0, num _ masks = 1
⎩ if

(A-6)
Here, the A-6 bit sequences {an} span all the possible combinations, which gives rise to 2

possible composite mask sequences {mi}. Then we map these composite sequences to bi-polar

form using the map (0, 1) Æ (+1,-1). Refer to this bipolar mask sequences as { m̂i }.

1. For each num_masks composite mask hypothesis, i.e.,


For mask_id = 0: num_masks – 1
• De-mask the received LLRs {bi} to result in:

ei = bi • mˆ i , i = 0,2, B − 1
• Form a 32-length vector by inserting the values of ei at the B un-punctured
locations. The rest of the elements of the vector are set to 0. The un-punctured
indices are as follows (note the indexing is from 1Æ 32):
f k (i ) = ei , i = 0,..., B − 1
k (i ) ∈ {0, 2, 3, 5, 6, 8, 9, 11, 12, 13, 16, 17, 18, 19, 22, 23, 25, 26, 27, 31}.
• Re-arrange the values of fi as follows:
g 0 = f 30
g1:15 = f 0:14
g16 = f 31
g17:31 = f 15:29
• Perform a 32-point FHT on the vector g:

h = H (0 : len − 1,0 : 31) g


len = min(32, 2 A−1 )
where H is the 32-point Hadamard matrix (Note that the notation H(0:len-1, :) means
that we pick the first len rows of the matrix H, so the output will be a vector of size
len).
• Find the index that maximizes the absolute value of the FHT output, |h|. Denote
that intermediate winning index by idx (where idx belongs to {0, …,len-1}) and the
corresponding the maximum absolute value by max_val(mask_id).

• The intermediate decoded word is given by:

61
h(idx) ≥ 0 ⇒ decoded (mask _ id ) = 2 idx
h(idx) < 0 ⇒ decoded (mask _ id ) = 2 idx + 1
End
2. Among all the num_masks possible max_val values, select the mask_id that has the
maximum max_val. Denote this as final_mask_id, which belongs to {0, …,num_masks -1}.

3. Final decoded CQI word is given by:

CQIValue = decoded ( final _ mask _ id ) +64 final _ mask _ id

5 SRS based Beam Forming


Different users are multiplexed on the SRS channel with different sounding bandwidths. The
users occupying the same bandwidth and the same resource elements are grouped together. At
the eNB, for each group, the user’s channels are estimated using IDFT based user separation
and the spatial correlation matrix is estimated for each user. Using power method the dominant
eigenvector is estimated and the phase-beam former is obtained. The following figure depicts the
sequence of steps

Figure 18:SRS based beam former determination

5.1 Sequence Removal

Input signal:
z m ,i , j , Pu ,i , j
Output signal:
v u , m ,i , j

For a given user u,


for m = 1 : M
for i = SRSSymbolIndex
for j = 1 : L

62
vu ,m ,i , j = z m ,i , j Pu*,i , j

end
end
end

5.2 IDFT based Channel Estimation

Input signal:
v u , m ,i , j
Output signal:

hˆu ,m ,i , j

for m = 1 : M
for k1 = 1 : L
t k1 = 0

for k2 = 1 : L

1 ⎛ 1 j 2π (k1 − 1)(k2 − 1) ⎞
t k 1 ← t k1 + exp⎜ ⎟vu , m ,i , k 2
L ⎝ L ⎠
end
end

⎢ CPlen(i )L ⎥
Lch = ⎢ ⎥
⎣ N FFT ⎦

⎡ ⎤
q = ⎢t1 ,..., t Lch , 01
,..., 0 ⎥
⎢⎣ 23 ⎥
L − Lch ⎦

for j1 = 1 : L
f j1 = 0

for j2 = 1 : L

⎛ − 1 j 2π ( j1 − 1)( j2 − 1) ⎞
f j1 ← f j1 + exp⎜ ⎟q j 2
⎝ L ⎠
end

63
hˆu ,m,i , j1 = f j1
end
end
When all the SRS users are sounded on the same frequency band, we can do the user
separation using a single IDFT as in [11].

5.3 SRS based Beam Former


5.3.1 Spatial covariance estimation

Input signal:

hˆu ,m,i , j
Output signal:
C u ,k

For user u,
Cu ,k = 0

for k = 1 : N rb

for i = SRSSymbolIndex

for j ∈ BuSRS
,k

for m1 = 1 : M
for m2 = m1 : M

C u ,k (m1 , m 2 ) ← C u ,k (m1 , m2 ) + hˆu , m ,i , j hˆu*, m2 ,i , j


1

C u ,k (m2 , m1 ) = C *
u ,k (m1 , m2 )
end
end
end
C u ,k
Cu ,k ←
resourceBlkSizeSRS
end
end

64
5.3.2 Eigenvector Estimation using Power Method
Input signal:
C u ,k
Output signal:
w u ,k

For each user u,


for k = 1 : N rb

Initialize w u , k = C u , k (:,1)

for i = 1 : N iter

w u ,k ← C u ,k w u ,k
end
end

5.3.3 SRS based Phase Beam Former


Input signal:
w u ,k
Output signal:
b u, k

For each user u,


for k = 1 : N rb

for m = 1 : M
bu , m, k = phase(wu , m , k )
end
end

6 LLR Calculation
Input signals:
• sˆi , j is the symbol estimate for OFDMA symbol i and tone j ;

• g i is the channel gain for all tones in OFDMA symbol i ;

• σ i2,eq is the variance of the equaivalent complex Gaussian noise in sˆi , j .

65
Output signals:
• Two likelihood ratio Li , j ,1 and Li , j ,2 for the QPSK symbol at OFDMA symbol i and tone j ,

or
• Four likelihood ratios Li , j ,k , k = 1, 2, 3 , 4 for the QAM16 symbol at OFDMA symbol i and
tone j .

6.1 QPSK
The LLR expressions for QPSK are as follows:

⎛ P ( sˆi , j | bi , j ,1 = 0) ⎞ 2 2 ⋅ real ( sˆi , j ) g i 2 2 ⋅ real ( sˆi , j )


Li , j ,1 = log⎜ ⎟= = ,
⎜ P ( sˆ | b = 1) ⎟ σ 2
1 − g
⎝ i , j i , j ,1 ⎠ i , eq i

⎛ P( sˆi , j | bi , j ,2 = 0) ⎞ 2 2 ⋅ imag ( sˆi , j ) g i 2 2 ⋅ imag ( sˆi , j )


Li , j ,2 = log⎜ ⎟= = .
⎜ P( sˆ | b = 1) ⎟ σ i2,eq 1 − gi
⎝ i, j i , j ,2 ⎠

If the same modulation scheme is used for UL HARQ transmissions and the max Log-MAP
algorithm is used for turbo decoding, LLRs can be scaled by a constant and LLR calculations can
be further simplified. We have

real ( sˆi , j )
Li , j ,1 = ,
1 − gi
imag ( sˆi , j )
Li , j ,2 = .
1 − gi

6.2 QAM16
We define

⎛ P( sˆi , j | bi , j ,k = 0) ⎞
Li , j ,k = log⎜ ⎟, k = 1, 2, 3and 4.
⎜ P( sˆ | b = 1) ⎟
⎝ i, j i , j ,k ⎠
Let
I = real ( sˆi , j ),
Q = imag ( sˆi , j ),
1
α = gi .
42

66
Then we can compute the LLRs as:
α (4 ⋅ I + | I − α | − | I + α |)
Li , j ,1 = ,
σ i2,eq
α (4 ⋅ Q + | Q − α | − | Q + α |)
Li , j ,2 = ,
σ i2,eq
2α (α − | I |)
Li , j ,3 = ,
σ i2,eq
2α (α − | Q |)
Li , j ,4 = .
σ i2,eq

Alternatively, we can compute

⎧ 2α (2 ⋅ I + α )
⎪ , I ≤ −α
⎪ σ i
2
, eq
⎪ 2αI
Li , j ,1 = ⎨ 2 , | I |≤ α
⎪σ i ,eq
⎪ 2α (2 ⋅ I − α )
⎪ , α≤I
⎩ σ i2,eq
⎧ 2α (2 ⋅ Q + α )
⎪ , Q ≤ −α
⎪ σ i2,eq
⎪ 2αQ
Li , j ,2 = ⎨ 2 , | Q |≤ α
⎪ σ i ,eq
⎪ 2α (2 ⋅ Q − α )
⎪ , α ≤Q
⎩ σ i
2
, eq
2α (α − | I |)
Li , j ,3 = ,
σ i ,eq
2

2α (α − | Q |)
Li , j ,4 = .
σ i2,eq

By exploiting σ i2,eq = g i (1 − g i ) , we instead compute


2(4 ⋅ I + | I − α | − | I + α |)
Li , j ,1 = ,
10 (1 − g i )
2(4 ⋅ Q + | Q − α | − | Q + α |)
Li , j ,2 = ,
10 (1 − g i )
4(α − | I |)
Li , j ,3 = ,
10 (1 − g i )
4(α − | Q |)
Li , j ,4 = .
10 (1 − g i )
or Alternatively

67
⎧ 4(2 ⋅ I + α )
⎪ , I ≤ −α
⎪ 10 (1 − gi )
⎪ 4I
Li , j ,1 = ⎨ , | I |≤ α
⎪ 10 (1 − gi )
⎪ 4(2 ⋅ I − α ) α≤I
⎪ 10 (1 − g ) ,
⎩ i

⎧ 4(2 ⋅ Q + α )
⎪ , Q ≤ −α
⎪ 10 (1 − g i )
⎪ 4Q
Li , j ,2 = ⎨ , | Q |≤ α
⎪ 10 (1 − g i )
⎪ 4(2 ⋅ Q − α ) , α ≤Q
⎪ 10 (1 − g )
⎩ i
4(α − | I |)
Li , j ,3 = ,
10 (1 − gi )
4(α − | Q |)
Li , j ,4 = .
10 (1 − gi )

If the same modulation scheme is used for UL HARQ transmissions and the max Log-MAP
algorithm is used for turbo decoding, LLRs can be scaled by a constant and LLR calculations can
be further simplified. We have

⎧ (2 ⋅ I + α )
⎪ (1 − g ) , I ≤ −α
⎪ i
⎪ I
Li , j ,1 = ⎨ , | I |≤ α
⎪ (1 − g i )
⎪ (2 ⋅ I − α ) , α≤I
⎪ (1 − g )
⎩ i
⎧ (2 ⋅ Q + α )
⎪ (1 − g ) , Q ≤ −α
⎪ i
⎪ Q
Li , j ,2 = ⎨ , | Q |≤ α
⎪ (1 − gi )
⎪ (2 ⋅ Q − α ) , α ≤Q
⎪ (1 − g )
⎩ i
(α − | I |)
Li , j ,3 = ,
(1 − gi )
(α − | Q |)
Li , j ,4 = .
(1 − gi )

68
7 PRACH Receiver
Details of the PRACH receiver can be found in [10].

Figure 19: PRACH Receiver Overview

7.1 PRACH front-end processing for Format 0 and Format 1

Format 0 and format 1 have the same preamble length. As a result, from front-end processing
point of view; they are treated as the same.

7.1.1 Gain adjustment in front-end processing


It is important to adjust the signal level before and after the decimator filter. A simple moving
averaging filter can be used to adjust the signal level before the decimation filter. The moving
averaging filter should start from sample X to sample Y (using a look-up table). The accumulated
metric is used to adjust the gain setting to … ¼, ½, 1, 2, 4, …., after sample Y+Z. Z is
determined by the processing delay of setting gain. The decimator filter should be started only
after this point.

7.1.2 Decimation

The decimation filter can be designed as either an IIR filter or multiple stages of half band filters

69
and FIR filter.

If a 1024 pt FFT is used to obtain the frequency domain signal and the system bandwidth is 20
MHz, then the decimation rate is 24. In general, the decimation rate is two’s power times 3. To
decimate by 2, a half-band filter can be used.

exp(-jf/2t)

Figure 20: PRACH Fromtend Processing

7.2 PRACH backend processing for formats 0, 1

7.2.1 Overview

To meet the timing adjustment granularity requirement, a 4K-point FFT is used to detect the
preambles.
The root sequence (actually the DFT of the root sequence) applied to the preamble needs to be
removed first. So in the following we first go through the demasking sequence generation. There
are three methods provided below. The first two were proposed in December 2007 and included
here as background information.

To simplify the definition of detection interval, it may be necessary to adjust the incoming signal’s
timing, which can be acomplished through introducing a phase-ramp after demasking. Another
reason for adjusting the timing of the detection interval is to create buffer zone around the
detected preamble peak so its leakage into adjacent detection interval is controlled. One
consequence of creating buffer zone is that the supported cell radius is shrunk by a small amount.
The eNodeB is designed to support Ncs configuration 13. It is at the base station’s discretion to

70
go to the next Ncs configuration. Only at Ncs configuration 13, the eNodeB cannot go to the next
one to support a larger cell radius. The third reason to adjust the incoming signal’s timing is to
align the incoming signal when the samples used for front-end processing do not start right after
the cyclic prefix of the preamble.

7.2.2 Threshold Calculation

7.2.2.1 Gain Adjust in Backend Processing


Before the demasking signal is applied to the 839 samples, a gain adjustment should be
applied to the 839 samples. Before going to the metric calculation, there should be a gain
adjustment stage also.

7.2.2.2 Demasking Signal Generation

A procedure is shown below to avoid multiplications in finding the demasking sequence


πukw ( kw+1)
j
N zc
f u (k ) = e .
It is better to rewrite the demasking sequence as
πukw ( kw+1) 2πukw ( kw+1)
j j
N zc 2 N zc
f u (k ) = e =e ,
2πm
j
2 N zc
Hence
f u (k ) takes value from the set {e ,
m = 0, 1,2 N zc − 1} . That means we can
2πm
j
2 N zc
m = 0, 1,2 N zc − 1} and then take ukw(kw + 1) mod 2 N zc to find the
precalculate {e ,
value.

Next we notice that


ukw(kw + 1) is an even number, hence ukw(kw + 1) mod 2 N zc is an
2π 2 m
j
2 N zc
N zc values to store: i.e. {e
even number, which means there are at most ,
m = 0, 1, L, N zc − 1} .
2πk
Δ j
2 N zc
Let
S (k ) = e , k = 0, 1, L, 2 N zc − 1 .

Instead of
f u (k ) , now we can work with the index function:
I u (k ) = ukw(kw + 1) mod 2 N zc ,
and we have
f u (k ) = S ( I u (k )), k = 0, 1, L , N zc − 1.

7.2.2.2.1 Linear recursion to obtain I u (k ) : Option 1

From the definition of w (


uw = 1 mod N zc ) , we have

71
uw = 1 + N zc m′,

for some m′ .
If w is odd , then
uw( w + 1) mod 2 N zc = (1 + N zc m′)( w + 1) mod 2 N zc = w + 1 mod 2 N zc
If w is even , then
uw( w + 1) mod 2 N zc = (1 + N zc m′) w + uw mod 2 N zc = w + uw mod 2 N zc .
So

⎧w + 1, wisodd

uw( w + 1) = ⎨w + uw, wiseven

And we have (all with modulus


2 N zc ):

I u (k + 1) − I u (k ) = u ((k + 1) 2 w2 + (k + 1) w) − u (k 2 w2 + kw)
= u ((2k + 1) w2 + w)
= uw2kw + uw2 + uw
= (1 + N zc m′)2kw + uw2 + uw
= 2kw + uw( w + 1)
⎧2kw + ( w + 1), wisodd

= ⎨2kw + ( w + uw), wiseven


Let
Δ

d1,u = 2 w mod 2 N zc
⎧w + 1 mod 2 N zc , wisodd
Δ

d 2,u = ⎨w + uw mod 2 N zc , wiseven


Δ

c(k ) = 2kw, k = 0, L, N zc − 1
2πk
Δ j
2 N zc
S (k ) = e , k = 0, 1, L , 2 N zc − 1
Then we have the following update rule:
d1,u d 2,u u = 1, L, N zc − 1 .
• Precalculate and store and for

• Precalculate and store


S (k ) , k = 0, 1, L , 2 N zc − 1 .

I u (0) = 0 , cu (0) = 0 , f u (0) = 1 .


72
• For
k = 0, 1, L, N zc − 2 ,

I u (k + 1) = I u (k ) + cu (k ) + d 2,u mod 2 N zc
-
cu (k + 1) = cu (k ) + d1,u mod 2 N zc
-
f u (k + 1) = S ( I u (k + 1)) (Read out the prestored value according to the index
-
I u (k + 1) )

• End

Update steps 4.a and 4.b can be implemented as conditional logic. For the update step

4.a ( I u (k + 1) = I u (k ) + cu (k ) + d 2,u mod 2 N zc ), we have:


I u (k ) + cu (k ) ≥ 2 N zc , then t = I u (k ) + cu (k ) − 2 N zc else t = I u (k ) + cu (k ) .
• If
t + d 2,u ≥ 2 N zc I u (k + 1) = t + d 2,u − 2 N zc I u (k + 1) = t + d 2,u
• If , then else .

Here t is an intermediate variable.


c (k + 1) = cu (k ) + d1,u mod 2 N zc
For the update step 4.b ( u ) we have:
cu (k ) + d1,u ≥ 2 N zc cu (k + 1) = cu (k ) + d1,u − 2 N zc
• If , else
cu (k + 1) = cu (k ) + d1,u
.

It can be seen that step 1 and step 2 need execution once offline, two tables of length
839 and one table of length 1678 can be easily stored and multiplication is avoided.

7.2.2.2.2 Linear recursion to obtain I u (k ) : Option 2

We can also derive an alternative recursion to compute


I u (k ) .

It can be shown that (all with modulus


2 N zc ):
( I u (k + 2) − I u (k + 1)) − ( I u (k + 1) − I u (k )) = 2w
for
k = 0, 1, L , N zc − 3 .
Or
I u (k + 2) = 2 I u (k + 1) − I u (k ) + 2 w,
for
k = 0, 1, L , N − 3
zc .
We have the following procedure:

73
• Precalculate and store
d1,u
and
d 2,u
for
u = 1, L, N zc − 1 .

• Precalculate and store S (k ) ,


k = 0, 1, L , 2 N zc − 1 .
I u (0) = 0 , I u (1) = d 2,u , f u (0) = 1 , f u (1) = S ( I u (1))

• For
k = 0, L, N zc − 3 ,
I u (k + 2) = 2 I u (k + 1) − I u (k ) + d1,u mod 2 N zc
-

-
f u (k + 2) = S ( I u (k + 2))

• End

The update 4.a can be implemented as conditional logic:


t = I u (k + 1) + I u (k + 1) .

• If
t ≥ 2 N zc , then t = t − 2 N zc .

• If
t ≥ I u (k ) , then t = t − I u (k ) else t = t + (2 N zc − I u (k )) .
t = t + d1,u
• .

• If
t ≥ 2 N zc , then t = t − 2 N zc

• u
I (k + 2) = t .
Here t is an intermediate variable.

7.2.2.2.3 Linear recursion to obtain I u (k ) : Option 3


Starting with
uw = mu N zc + 1,
where
mu is a u -dependent integer. We have
I u (k ) = uwk (kw + 1) mod 2 N zc
= (mu N zc + 1)k (kw + 1) mod 2 N zc
= mu k (kw + 1) N zc mod 2 N zc + k (kw + 1) mod 2 N zc .
144444444 42444444444 3
withmodulus 2 N zc

As
⎧even, k and w are odd .

k (kw + 1) = ⎨ odd , k is odd , w is even
⎪even,
⎩ k is even
We have with
• either k and w are odd
• or k is even,

m k (kw+1) N zc
jπ u
N zc jπ × mu ×anevennumber
e =e = 1.

74
For the case that k is odd and w is even, then
m k (kw+1) N zc
jπ u
N zc jπ × mu ×anoddnumber ⎧1, ifmu iseven.
e =e =⎨
⎩− 1, ifmu isodd .
m
When w is even, then uw is even, we can see that u has to be odd: otherwise
mu N zc + 1 = uw is odd which leads to a contradiction. Consequently the condition

odd (k ) & even( w) & odd (mu ) = 1


is equivalent to
odd (k ) & even( w) = 1.
The generation of the demasking sequence consists of two parts: the sign is generated

through ( −1) and a recursion on k ( kw + 1) . The recursion on k ( kw + 1) can be


odd ( k ) & even ( w )

found similarly as in previous sections.

7.2.2.3 Detection Interval Adjustment

PRACH detection interval for each preamble index should be defined such that the
detected preamble is confined within it as long as the UE is within the maximum supported
propagation distance.
As delay/advance in the time domain is converted into phase ramp in the frequency domain,
we can introduce a phase ramp at demasking to adjust the detection interval.
Now the demasking signal is defined as

πukw ( kw +1) j 2πkτ


j
TSEQ
⋅e
N zc
D(k ) = e ,
TSEQ
where is the duration of preamble excluding the cyclic prefix (for preamble format 0,
Tseq = 800 μs τ N = 18 , τ can be set to 15 μs ).
, is the introduced delay ( for cs
Demasking is executed as:

conj ( D ( k )) × ~
xm ( k ),
~
xm ( k ) is the extracted 839 point signal in the frequency domain at antenna m .
where
Of course, to minimize the change in FPGA, the delay can be introduced after demasking
also:

75
πukw ( kw +1) j 2πkτ
j
)×~
TSEQ
xm ( k )) × conj ( e
N zc
( conj ( e ).

7.2.2.4 Detection Threshold Calculation

With the FFT based method, the peak is found through


Ld M
max ∑ | ym ,i | ,
2

i =1 m =1

where
Ld is detection range, ym,i is the time domain signal at sample i and antenna
m and there are M antennas.

ym,i 1 ≤ i ≤ Ld
Assume that there is no PRACH transmission, , are contributed by noise.
So
Ld M Ld M
P( max ∑ | ym ,i |2 ≤ T ) = ∏P(∑ | ym,i |2 ≤ T )
i =1 m =1 i =1 m =1
M
= ( P( ∑ | ym ,i |2 ≤ T ))
Ld

m =1

M
F = maxiL=d1 ∑ | ym ,i |2
Let m =1 .

It can be seen that F follows a Chi-square distribution of 2 M degrees of freedom. It


should be noted that the derivation assume independent noise samples. The assumption is valid
only when the 839 pt FFT is used. Hence the detection threshold needs to be found through
simulation and/or emulation.
.

7.2.2.4.1 Buffer zone Definition

If the detection interval is aligned exactly with the timing point for zero-propagation delay,
then noise can make the detector to detect a “phantom peak'' in an adjacent detection interval.
Consequently, there is a need to set a buffer zone so the leakage into an adjacent detection
interval has decayed enough and won't be picked up as a preamble by the PRACH detector.
From figure, it can be seen that the decay is at least 16 dB if the buffer zone is 10 samples in 4K

76
domain. Taking a buffer zone of 10 samples in the 4K domain shortens the supported radius by
10
× 800 × 10−6
4096 × 3 × 108 = 293
2 meters.
A phase ramp in frequency domain can be used to introduce buffer zone in the detection
interval. Let the buffer zone size (counted in the 4K domain) be N buffer .

7.2.2.4.2 Determination of the Detection Threshold

Now we have the following way of setting detection threshold:

Ppeak
detection threshold = max(Tσ n2 , α leakage × Ppeak , )
839
= max(Tσ n2 , 0.025 × Ppeak )
Ppeak α leakage
where is the detected peak power among all samples in the 4K domain, is
α leakage = 0.025
the leaked power ratio to an adjacent interval ( if the buffer zone is 10 samples).

7.2.3 Noise Variance Estimation

Noise variation needs to be estimated from the received signal to set the detection
threshold. The maximum of samples in each candidate detection interval is found. The maximum
samples from all the candidate detection intervals are sorted and the detection interval indices
corresponding to the bottom 14 are found. And samples in these detection intervals are treated
as noise. And the average power of the samples in these detection intervals is the noise variance
estimate.

7.2.4 Timing Offset Calculation

The preamble generation as defined in 3GPP 36.211 is defined in the 839 domain. And a
4K IFFT is used to estimate the arrival time of the preambles, there is a problem to convert the
timing offset in the 4K domain.
In the 4K domain, we calculate
NFFT
I = floor ( N cs )
N zc N = 839 , N cs = 13, 15, 18, L .
, NFFT = 4096 , zc

77
• Determine the number of preambles generated from one ZC root sequence:
N zc
N preamble = floor ( )
N cs .

N preamble − 1
• for k=0 to
NFFT × N cs × k
start_locsround ( k ) = NFFT − 1 − round ( )
-
N zc

end_locsround ( k ) = start_locsround ( k ) − I + 1.
-
NFFT × N cs × k
start_locs ( k ) = NFFT −1 −
-
N zc

• end

It can be seen that all the preambles' detection intervals have the same length.
The estimated timing offset is given by

timing_offset = start_locs (k ) − N buffer − preamble_loc( k ),

where preamble_loc( k ) is the detected location of preamble in detection interval


end_locsround ( k ) : start_locsround ( k ) , and the unit for timing offset is in samples in
defined by
the 4K domain.

It is possible that timing_offset is a negative number, in that case timing_offset


should be set to 0.

8 Measurements:
The following section describes the algorithms for instantaneous and long term measurements
that need to be done.

8.1 PUSCH: Post-MMSE Combined SINR Per-Subframe, Per-


User

The following section describes post MMSE SINR that must calculated per user, per
subframe.
Input signals:
g i - MMSE gain per symbol

78
Output signal
SNRmmse
Temp = 0
for i = 1 : NumDataOFDMSymbols
⎛ g ⎞
Temp ← Temp + ⎜⎜ i ⎟⎟
⎝1 − gi ⎠
end
Temp
SNRmmse =
NumDataOFDMSymbols

8.2 LLR Erasure for UCI Multiplexed PUSCH

Let Terasure be the threshold below which the absolute value of LLR are said to be in erasure. Let

CQI LLR be the vector that contains the LLRs corresponding to CQI information. If the number of
LLRs ( N LLR ), which is obtained based on the MPR of PUSCH transmission and the beta-offset,

is greater than 32, then the LLRs are circularly added modulo 32 and N LLR is set to 32.

Initialiaze num_erasures = 0;
For llr_index = 1: N LLR

If( CQI LLR < Terasure )

num_erasures = num_erasures + 1;
end
end
LLR_Erasure = num_erasures/ N LLR

8.3 LLR Erasure for PUCCH

LLR Erasure metric is used in the power control mechanism for PUCCH. This metric is recorded
per user. The LLR erasure metric applied on the CQI information (format 2) transmitted in 10
symbols modulated with QPSK ( hence 20 LLRs) and it is calculated as follows
Let Terasure be the threshold below which the absolute value of LLR are said to be in erasure.The

value of it is set to 2.
Let CQI LLR be the vector which contains the LLR’s corresponding to CQI information

79
Initialiaze num_erasures = 0;
For llr_index = 1:20
If( CQI LLR < Terasure )

num_erasures = num_erasures + 1;
end
end
LLR_Erasure = num_erasures/20;

8.4 Long Term SINR estimate on PUCCH Format 2/2A/2B

This section describes the long-term SINR estimation for PUCCH format 2/2A/2B, done for
purposes of power control as required in the KDDI scheduler algorithm description. The following
sub-sections describe the estimation of the average other-cell interference plus noise variance
component, the average in-cell and other-cell interference plus noise variance and finally, the
long-term SINR based on these metrics. The other-cell interference plus noise variance is needed
for purposes of bias correction of the signal strength estimator.

8.4.1 Average Other-Cell Interference and Noise Variance Estimation

Input signals:

• vu ,m,i , j , hˆu ,m ,i , j
Output signal

σ2 - Long-term averaged other-cell interference and noise variance estimate


2
σ =0
for m = 1 : M
for n = 1 : N sl
for k = 1 : NumPilotOFDMSymbolsPerSlot

i = PilotOFDMSymPosition(n, k )
for j = 1 : L
Temp = vu ,m ,i , j

for u = 1 : N u

Temp = Temp − hˆu ,m ,i , j

80
end
2 2
σ ← σ + | Temp | 2 ,
end
end
end
end
2
σ
σ =
2

MN sl {L( NumPilotOFDMSymbolsPerSlot ) − N u (q + 1)}

8.4.2 Averaged In-Cell plus Other-Cell Interference and Noise


Variance Estimation per User

Input signals:

• vu ,m ,i , j , hˆu ,m ,i , j
Output signal

σ u2 - Averaged in-cell plus other-cell interference and noise variance estimate

For a given user u,


2
σu =0
for m = 1 : M
for n = 1 : N sl

for k = 1 : NumPilotOFDMSymbolsPerSlot
i = PilotOFDMSymPosition(n, k )
for j = 1 : L

Temp = vu ,m,i , j − hˆu ,m,i , j


2 2
σ u ← σ u + | Temp | 2
end
end
end
2
σu
σ =2

MN sl {L( NumPilotOFDMSymbolsPerSlot ) − (q + 1)}


u

81
end

8.4.3 PUCCH based Long Term SINR Estimation


For a given user u,

NRu = 0
Initialize: for u = 1,..., N u
DRu = 0

For every PUCCH Format 2/2A/2B allocation, do the following:

Temp = 0
for m = 1 : M

for n = 1 : N sl

for k = 1 : NumPilotOFDMSymbolsPerSlot
i = PilotOFDMSymPosition(n, k )
for j = 1 : L
Temp ← Temp + | hˆu ,m,i , j | 2
end

end

end

end

NRu = λ ( NRu ) + (1 − λ )⎜⎜
Temp
−σ 2
(q + 1) ⎞
⎝ MN sl L( NumPilotOFDMSymbolsPerSlot ) L( NumPilotOFDMSymbolsPerSlot ) ⎠
DRu = λ (DRu ) + (1 − λ ) σ u2 ( )

NRu
SINRu =
DRu

8.5 Doppler Estimation

The following section provides the Doppler Estimation algorithm using PUCCH.

82
8.5.1 Correlation of Channel Estimates

For a user u,

for m = 1 : M
for n = 1 : N sl
for j = 1 : L
tempN1m ,n , j = hˆu ,.m.n , j hˆ prior1u ,.m.n , j
*

tempN 2 m ,n , j = hˆu ,.m.n , j hˆ prior 2 u ,.m.n , j


*

tempDm ,n , j = hˆu ,.m.n , j hˆu ,.m.n , j


*

hˆ prior 2 u ,m ,n , j = hˆ prior1u ,m ,n , j

hˆ prior1u ,m ,n , j = hˆu ,m ,n , j

end
end
end

8.5.2 Average the Correlation


temp N 1 = 0
temp N 2 = 0
temp D = 0
ρ est = 0
1

ρ est = 0
2

for m = 1 : M
for n = 1 : N sl
for j = 1 : L
temp N 1 ← temp N 1 + tempN1m,n , j
temp N 2 ← temp N 2 + tempN 2 m ,n , j
temp D ← temp D + tempDm,n , j
end
end
end

83
temp N 1
temp N 1 ←
MN sl L
temp N 2
temp N 2 ←
MN sl L
temp D
temp D ←
MN sl L
temp N 1
ρ est1

temp D
temp N 2
ρ est 2

temp D

8.5.3 IIR Filtering of Correlation Estimates

ρ est 1 _ avg ← (1 − α )ρ est1 + αρ est1 _ avg


ρ est 2 _ avg ← (1 − α )ρ est2 + αρ est2 _ avg

⎛ 1 + SINR ⎞
ρ est _ avg ←⎜ ⎟ ρ est1 _ avg
⎝ SINR ⎠
1

⎛ 1 + SINR ⎞
ρ est _ avg ←⎜ ⎟ ρ est2 _ avg
⎝ SINR ⎠
2

8.5.4 Threshold based Doppler Estimation

f D _ est1 f D _ est2
TBD – results will be and
0.2
f D _ t arg et1 =
τ1
0.2
f D _ t arg et 2 =
τ2

if Single _Threshold
if f D _ est1 > f D _ t arg et1
Doppler_Estimate = HIGH
else
Doppler_Estimate = LOW
end
else

84
δ1 = abs ( f D _ est − f D _ t arg et
1 1
)
δ 2 = abs ( f D _ est − f D _ t arg et
2 2
)
if δ1 < δ 2
f D _ est _ min = f D _ est1
else
f D _ est _ min = f D _ est 2
end
if f D _ est _ min < f D _ t arg et 2
Doppler_Estimate=LOW
elseif f D _ est _ min > f D _ t arg et1
Doppler_Estimate=HIGH
else
Doppler_Estimate=MEDIUM
end
end

9 Conclusions
In this document we have presented the receiver algorithms for the eNodeB with multiple receive
antennas. It covers the PUSCH, PUCCH, PRACH receiver algorithms. At the subframe level we
discussed about antenna failure detection. As a part of PUSCH receiver processing, we also
discussed DTX detection, extraction of frequency domain signals specific to a user, time and
frequency offset estimation and correction, linear regression based channel estimation with time
domain pilot averaging, other cell interference plus noise co-variance estimation, multi-antenna
combining using IRC or MRC, equalization, LLR calculation and decoding. Further, we have
discussed the backend processing of PUSCH multiplexed with UCI, decoding of RI, CQI, A/N and
DTX detection. We then provide the per-user receiver implementation for control channel
(PUCCH). As a part of PUCCH processing we have discussed the A/N detection (pilots carrying
the A/N information - format 2A/2B), linear regression based channel estimation with time domain
pilot averaging per slot, interference plus noise variance estimation, MRC combining across
antennas and subcarriers, detection of SRI (Format 1), A/N (Format 1A/1B), decoding of CQI
(Format 2). As a part of SRS processing we have proposed phase beam former estimation using
power method. We then discussed receiver processing of PRACH followed by long term and
short term measurements that needs to be tracked at eNodeB including Doppler estimates.

85

You might also like