LTE ENodeB Receiver Algorithms R2P1 v1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 66

LTE FDD Release 2.0/Package 1.

0:
Uplink Receiver Algorithm Design Specification

Status Working Draft Status Compass Object ID :


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

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

Abstract
The LTE FDD Release 2.0/Package 1.0 eNodeB 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. The channels considered are PUSCH, PUSCH with
UCI, PUCCH (all formats), and PRACH. Design of certain performance related measurements are also
described. The eNodeB uplink configuration supported is SIMO over 2 receive antennas with QPSK and 16-QAM
using maximum ratio combining and MMSE frequency-domain equalization for the PUSCH.

1
Table of Contents

1 Overview of the Receiver [SN]................................................................................... 9


2 Transmitter Chain [KVP, WY] ................................................................................. 11
2.1 PUSCH [KVP] .................................................................................................. 12
2.2 PUCCH [KVP].................................................................................................. 13
2.3 PRACH [WY]................................................................................................... 13
3 PUSCH Receiver Implementation [MRR, KVP, SN] .............................................. 14
3.1 Extraction of frequency domain signals ........................................................... 14
3.1.1 Extraction of user specific frequency domain signal................................ 15
3.2 De-rotation of reference symbols...................................................................... 16
3.3 Uplink synchronization error correction........................................................... 16
3.3.1 Timing error estimation/correction ........................................................... 17
3.3.2 Frequency error estimation and correction ............................................... 19
3.4 Channel estimation............................................................................................ 20
3.4.1 Pilot averaging across slot. ....................................................................... 21
3.4.2 Estimation via Linear Regression ............................................................. 22
3.5 PUSCH interference plus noise variance estimation ........................................ 23
3.6 MMSE equalization .......................................................................................... 24
3.7 PUSCH Multiplexed with UCI ......................................................................... 25
3.7.1 RI Receiver ............................................................................................... 26
3.7.2 A/N decoder .............................................................................................. 29
3.7.3 CQI receiver/decoder ................................................................................ 34
3.8 PUSCH Decoding ............................................................................................. 36
4 PUCCH Receiver Implementation [SN, KVP, MRR] .............................................. 36
4.1 Extraction of PUCCH signal............................................................................. 37
4.2 Detection of HARQ data in Format 2A/2B ...................................................... 38
4.2.1 Sequence removal ..................................................................................... 38
4.2.2 ACK/NACK symbol estimation ............................................................... 39
4.2.3 Removal of AN symbols........................................................................... 40
4.3 Channel estimation............................................................................................ 40
4.3.1 Pilot averaging within a slot ..................................................................... 41
4.3.2 Regression................................................................................................. 41
4.4 Interference and noise variance estimation....................................................... 43
4.5 MRC combining across antennas and subcarriers ............................................ 43
4.6 Format 1/1A/B detection................................................................................... 44
4.6.1 Format 1 detection .................................................................................... 45
4.6.2 Format 1A detection ................................................................................. 45

2
4.6.3 Format 1B detection.................................................................................. 46
4.7 CQI/RI Decoding .............................................................................................. 46
4.7.1 FHT based Decoding ................................................................................ 47
5 LLR Calculation [WY, MRR] .................................................................................. 48
5.1 QPSK ................................................................................................................ 49
5.2 QAM16 ............................................................................................................. 49
6 PRACH Receiver [WY]............................................................................................ 52
Details of the PRACH receiver can be found in [10]. ...................................................... 52
6.1 PRACH front-end processing for Format 0 and Format 1................................ 52
6.1.1 Gain adjustment in front-end processing .................................................. 52
6.1.2 Decimation................................................................................................ 52
6.2 PRACH backend processing for formats 0, 1................................................... 53
6.2.1 Overview................................................................................................... 53
6.2.2 Threshold calculation................................................................................ 54
6.2.3 Noise variance estimation ......................................................................... 60
6.2.4 Timing offset calculation .......................................................................... 60
7 Measurements [SN, MRR, KVP].............................................................................. 61
7.1 PUSCH: Post-MMSE combined SINR per-sub frame, per-user ...................... 61
7.2 LLR Erasure for UCI multiplexed PUSCH ...................................................... 62
7.3 LLR Erasure for PUCCH.................................................................................. 62
7.4 Long term SINR estimate for Doppler estimation on PUCCH Format 2/2A/2B
63
7.4.1 Average other-cell interference and noise variance estimation ................ 63
7.4.2 Long term averaged in-cell plus other-cell interference and noise variance
estimation per user .................................................................................................... 64
7.4.3 PUCCH based long term SINR Estimation .............................................. 65
8 Conclusions............................................................................................................... 65

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

1.0 03/01/2010 Shirish Nagaraj Released version with


PUSCH, PUSCH+UCI, PUCCH
and PRACH receiver
descriptions and
measurement algorithms.
1.1 03/19/2010 Shirish Nagaraj Modifications to A/N and RI
detection when multiplexed
with PUSCH, modification to
ATC and AFC correction
steps.

4
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.doc.
[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_Algorithms.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/.

5
Authors
NAME EMAIL PHONE

Shirish Nagaraj (SN) [email protected] +1-847-632-2362

K. V. Pradap (KVP) [email protected]

M. R. Raghavendra (MRR) [email protected]

Weidong Yang (WY) [email protected]

Acknowledgements

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

6
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 rs : the number of resource blocks assigned to the UE of interest.

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

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

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


• zm,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} .

⎛ j ⎞
• R ( j ) : the resource block index associated with tone j . R ( j ) = round ⎜ ⎟.
⎝ 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.

• PilotOFDMSymPosition(k ) - refers to the symbol index of the k –th pilot symbol


in a subframe

7
• 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.
• δ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

8
1 Overview of the Receiver [SN]

The receiver algorithms for the transmission from a UE with a single transmit antenna to a NodeB
with multiple receive antennas are considered in this document.

The operations below are typically described for a 10 MHz LTE FDD system with nornal cyclic
prefix, although they are generically applicable to TDD systems as well, and for any of the
allowed bandwidths. From each receive chain with the NodeB, one baseband signal sampled at
7.68 MHz is obtained. 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 1024 point FFTs on segments of 1024 samples of the baseband
signal, we obtain a 1024 × 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 referecne signals; other symbols carry data. The
DC tone is located on subcarrier 513 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. Coherent demodulation requires
pilot-based channel estimates from each antenna and for each subcarrier occupied by the user’s
allocation. The PUSCH processing steps are generically described in the 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.

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

9
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.

3. The next step in the pilot processing block is the estimation of interference and noise
variance. The assumption we make is that the I+N is roughly constant over an RB pair,
thus allowing for a single variance 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 another antenna. Hence the
interference and noise variance for each resource block and each antenna is calculated.

4. With the channel estimates and calculated noise variances, signals from all antennas are
combined first using maximum ratio 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
combining across antennas and the IDFT result in an optimal MMSE equalizer (as long
as the interference across antennas is not corelated).

5. 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.

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

7. 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

10
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.

Depending on the information to be transmitted in any given subframe, the UE chooses (a) the PUCCH
resource block to use, 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.

The eNodeB has to search over the potential space of PUCCH resources to determine the information that
was transmitted. 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 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 detatiled in Section 4. Since the LLR calculations are common to PUSCH and PUCCH receiver
blocks, the details of that are described in Section 5. Section 6 describes the PRACH receiver, and the
Section 7 discusses the measurements needed for sending to higher layers (either for scheduling purposes,
or for performance metric monitoring). Finally, conclusion are provided in Section 8.

2 Transmitter Chain [KVP, WY]


The following section briefly describes transmitter chain of processing for Physical Uplink

11
Shared Channel ( PUSCH) and Physical Uplink control channel ( PUCCH).

2.1 PUSCH [KVP]


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

[o0ACK o1ACK L oOACK


ACK
−1
]

Figure 1: Coding Chain at Transmitter

12
2.2 PUCCH [KVP]

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 [WY]


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
N zc −j
2πnk
⎞ j 2π ( k +φ + K ( k +1/2)) Δf (t −T )

s(t ) = ∑ ∑ xu ,v ( n )e zc ⎟e
N o RA cp
⎜ ⎟
k =0
⎝ n =0 ⎠ (1)
N zc −1
j 2π ( k +φ + K ( k o +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) j
j
~ N zc
xu ,v (k ) = DFT ( xu ,v (n)) = e α (u )e
N zc

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

α (u ) = ∑ e
N zc

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

13
3 PUSCH Receiver Implementation [MRR, KVP, SN]

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, 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.

14
Input signal:
• rm (n) is the base band time domain signal from antenna m . rm (n) is sampled at 15.36

MHz for 10 MHz deloyment.

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 1024.

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. The figure below shows the extraction of
user-specific signal from their configuration.

Figure 4: .Frequency domain signal extraction specific to user.


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

15
where jstart is the starting tone index of the allocation. z m ,i , j is obtained from 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 ⎥⎦

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 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

16
channel. The timing also varies due to mobility, and therefore, an 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.

Figure 5: Timing/Frequency error correction.

3.3.1 Timing error estimation/correction

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.3.1.1 Timing error estimation


The timing error is estimated as follows,

Input: Derotated pilot symbol v m ,i , j

17
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π ⎩ ⎝ NumPilotOF DMSymbols ( 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π ⎩ ⎝ NumPilotOFDMSymbols(L − 2 ) ⎠⎭
Δt est1 + Δt est 2
Δt m =
2
end

3.3.1.2 Timing error correction for pilot symbols

The estimated error is compensated as follows


for m = 1 : M

for k = 1 : NumPilotOFDMSymbols

18
i = PilotOFDMSymPosition(k )

for j = 1 : L
− N FFT
p= + j start + j − 2
2
⎛ 1 j 2πpΔt m ⎞
v m ,i , j ← v m ,i , j exp⎜⎜ ⎟⎟
⎝ N FFT ⎠
end
end
end

3.3.2 Frequency error estimation and correction

The received pilots are de-rotated as mentioned in the section 3.2.1.1. The frequency error
correction procedure is given below and follows the timing error correction block.

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

3.3.2.1 Frequency error estimation


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

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

end
⎛ Temp ⎞
Δf m = angle⎜ ⎟
⎜ 2πLT ⎟
⎝ sym ⎠
end

3.3.2.2 Frequency error correction

for m = 1 : M
CPparsum = 0

for i = 1 : NumOFDMSymbols
CPparsum ← CPparsum + CPLen(i )
2πΔf m
Φ= [(i − 1) N FFT + CPparsum]
N FFT δf
if (i ∈ DataOFDMSymPos)
for j = 1 : L
− N FFT
k= + j start + j − 2
2
⎛ 1 j 2πkΔt m ⎞
z m ,i , j ← z m ,i , j exp(1 jΦ ) exp⎜⎜ ⎟⎟
⎝ N FFT ⎠
end
else
for j = 1 : L

v m ,i , j ← v m ,i , j exp(1 jΦ )
end
end
end
end

3.4 Channel estimation


The channel estimation is done on the pilot symbols after pilot de-rotation, and the timing and
frequency error correction operations. The de-rotated and 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 1, which

20
corresponds to linear regression across subcarriers. The channel estimates are then applied to
the data symbols as part of the MRC/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 1)
Output signal:

• hˆm,i , j

3.4.1 Pilot averaging across slot.

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
Temp = 0
for k = 1 : NumPilotOFDMSymbols
i = PilotOFDMSymPosition(k )

21
Temp ← Temp + v m,i , j
end
∧ Temp
v m, j = ,
NumPilotOFDMSymbols
end
end

3.4.2 Estimation via Linear Regression

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 = 1 , S = 12.

(
R = A AT A )
−1
AT
for m = 1 : M
for k = 1 : N rs
i1 = 1
for j ∈ Bk
hˆ m ,1, j =0
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

22
for i = 2 : NumOFDMSymbols

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

3.5 PUSCH interference plus noise variance estimation


The other-cell interference plus noise variance typically changes from one RB pair to another and
across antennas. Hence the interference plus noise variance is estimated per RB pair and
antenna.
Input signals:

• v m ,i , j , hˆm ,i , j
Output signal

• σ m2 ,k - interference plus noise variance estimate for antenna m and resource block pair

k.
q is set to 1 (Regression order)

for m = 1 : M
for k = 1 : N rs
2
σ m ,k =0
for n = 1 : NumPilotOFDMSymbols
i = PilotOFDMSymPosition(n )
for j ∈ Bk
2 2
σ m,k ← σ m,k + | v m ,i , j − hˆm ,i , j | 2 ,
end
end
2
σ m ,k
σ 2
=
NumPilotOFDMSymbols [resourceBlkSize − (q + 1)]
m,k

end
end

23
3.6 MMSE equalization

This module takes in the frequency domain signals, channel and interference plus noise variance
estimates, and generates an MMSE symbol estimate for each QPSK /16QAM modulation symbol.
Also computed is the corresponding signal gain factor and effective post-equalization interference
variance. The estimation can be looked up on as MRC 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 j = 1, L , L, i ∈ DataOFDMSy mPosition


Output signal

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

For each data OFDM data symbol,


for i ∈ DataOFDMSymPosition

1. Compute the whitened receive signal for each subcarrier j where

24
1
x m ,i , j = z m ,i , j , for j = 1 : L
σ 2
m,R( j )

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

5. 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 ] .
6. The signal gain post-equalization of each OFDM symbol is given by
1 L γ i, j
gi = ∑ .
L j =1 γ i , j + 1
7. Thepost-equalization interference plus noise variance σ i2,eq = g i (1 − g i ) .
end

Note that all tones of the same OFDMA symbol have the same noise variance and channel gain
as is expected in a SC-FDMA system. 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.7 PUSCH Multiplexed with UCI

This section describes the sequence of steps 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.

25
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

Figure 8: PUSCH Multiplexed with UCI processing

3.7.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.7.1.1 1 bit RI
The sequence of steps for the 1 bit RI decoding can be depicted as follows

26
Figure 9: 1Bit RI processing

• 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.7.1.2 2 bit RI
The sequence of steps for the 2 bit RI decoding can be depicted as follows

27
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

α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 .

28
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

⎡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.7.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.

29
Figure 11: AN processing

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

Output
bi : i = 1 : numANBits

3.7.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 .

30
• 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

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

3.7.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.

31
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
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

nmod(i −1,3) +1 ← nmod(i −1,3) +1 + 1


end

Let

4 g avg ni
κi = for i = 1,2,3
(1 − g avg ) 2
N
1
where, g avg =
N
∑gi =1
i

g i - Signal gain factor.


Note that in the case of time domain pilot averaging the 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,

32
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

⎡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.7.2.3 DTX detection

The following section describes the detection of DTX as against HARQ information. If the AN 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 ⎭

33
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.

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 Th2bitAN is calculated by
setting the tail probability to 1% in D (lookup table based). The threshold holds only when N>1.
The theoretically calculate threshold can be adapted for better system formance.

3.7.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.7.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.7.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.

34
The FHT based receiver works as follows
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:

35
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:
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.8 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 [SN, KVP, MRR]

36
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
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. The figure below
depicts the operation.

37
Figure 15 PUCCH signal extraction

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 16: 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 u = 1 : N u

38
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
end

For user u,

4.2.2 ACK/NACK symbol estimation


γ =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

39
Temp
χ=

The ACK/NACK symbol is then demodulated as

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


2

si

The AN bits are decoded from the table below:

PUCCH format Decoded bits AN

2a 0 1

[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.

40
Figure 17: PUCCH Channel Estimation

4.3.1 Pilot averaging within a slot


Input signals: vu ,m ,i , j

Output signals: v u ,m ,n , j
for u = 1 : N u
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
end

4.3.2 Regression
Input signal:

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

41
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 ⎥
⎣⎢ S S q −1 L 1⎦⎥
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 u = 1 : N 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
end

42
4.4 Interference and noise variance estimation
The interference and noise variance estimation is done per user. Theestimate is per slot
and per antenna.

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
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 user u,

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

43
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
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.

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

44
| hˆu , m ,i , j | 2
EstErrVaru ← EstErrVaru +
σ u2,m ,n
end
end
end
end

4.6.1 Format 1 detection

For a user u,

Input: Du , EstErrVaru , SR _ Threshold


Output: InfBitsRx

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

4.6.2 Format 1A detection


Intput: Du , EstErrVaru , ACK _ Threshold
Output: InfBitsRx

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

45
4.6.3 Format 1B detection
Intput: Du , EstErrVaru , ACK _ Threshold , 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
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. If the CQI
information is less than 6 bits then ML based decoding is used. 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].

46
Figure 18: 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.
• 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:

47
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:


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 LLR Calculation [WY, MRR]


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 .

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

48
tone j .

5.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

5.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 ⎠
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

49
⎧ 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

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

⎧ 4(2 ⋅ Q + α )
⎪ , Q ≤ −α
⎪ 10 (1 − gi )
⎪ 4Q
Li , j ,2 = ⎨ , | Q |≤ α
⎪ 10 (1 − gi )
⎪ 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 − gi )
⎪ (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 )

51
6 PRACH Receiver [WY]
Details of the PRACH receiver can be found in [10].

Figure 19: PRACH Receiver Overview

6.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.

6.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.

6.1.2 Decimation

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

52
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

6.2 PRACH backend processing for formats 0, 1

6.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
go to the next Ncs configuration. Only at Ncs configuration 13, the eNodeB cannot go to the next

53
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.

6.2.2 Threshold calculation

6.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.

6.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
m = 0, 1,2 N zc − 1} . That means we can
2 N zc
Hence
f u (k ) takes value from the set {e ,
2πm
j
m = 0, 1,2 N zc − 1} and then take ukw(kw + 1) mod 2 N zc to find the
2 N zc
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
, k = 0, 1, L, 2 N zc − 1 .
2 N zc
Let
S (k ) = e

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.

6.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

54
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
, k = 0, 1, L , 2 N zc − 1
2 N zc
S (k ) = e
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 .


55
• 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.

6.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:

56
• 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.

6.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.

57
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.

6.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:

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

6.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.
.

6.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

59
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 .

6.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).

6.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.

6.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

60
• 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.

7 Measurements [SN, MRR, KVP]


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

7.1 PUSCH: Post-MMSE combined SINR per-sub frame, per-user


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

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

7.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 which contains the LLR’s corresponding to CQI information, if the

number of LLRs ( N LLR )which is obtained based on the MPR of PUSCH transmission and offset,

is greater than 32, then the LLRs are circularly added with the 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

7.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.

Let CQI LLR be the vector which contains the LLR’s corresponding to CQI information

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

num_erasures = num_erasures + 1;

62
end
end
LLR_Erasure = num_erasures/20;

7.4 Long term SINR estimate for Doppler estimation on PUCCH


Format 2/2A/2B

This section describes the long-term SINR estimation for PUCCH format 2/2A/2B, done for
purposes of Doppler estimation. 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.

7.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


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

63
end
end
end
2
σ
σ =
2

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

7.4.2 Long term 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 - Long-term averaged in-cell plus other-cell interference and noise variance estimate

for u = 1 : N 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
end
2
σu
σ =2

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


u

end

64
7.4.3 PUCCH based long term SINR Estimation

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

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

for u = 1 : N u
for m = 1 : M
for n = 1 : N sl
for k = 1 : NumPilotOFDMSymbolsPerSlot

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

⎛ Temp
NRu = λ ( NRu ) + (1 − λ )⎜⎜ −σ 2
(q + 1) ⎞

⎝ L L( NumPilotOFDMSymbolsPerSlot ) ⎟⎠
( )
DRu = λ (DRu ) + (1 − λ ) σ u2

end
end
end
end
NRu
SINRu =
DRu
end

8 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. As a part of PUSCH
receiver processing, we have discussed about 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 variance estimation,
multi-antenna combining, equalization, LLR calculation and decoding. Further, we have
discussed the backend processing of PUSCH multiplexed with UCI, decoding of RI, CQI, A/N and

65
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). We then discuss receiver processing of PRACH followed by long term and short term
measurements that need to be tracked at the eNodeB.

66

You might also like