LTE ENodeB Receiver Algorithms R2P1 v1
LTE ENodeB Receiver Algorithms R2P1 v1
LTE ENodeB Receiver Algorithms R2P1 v1
0:
Uplink Receiver Algorithm Design Specification
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
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
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
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.
• 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 .
• Bk : the tone indices with resource block k . For example, B1 = {1, 2, L , 12} ,
⎛ 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 ).
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.
• 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
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.
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.
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.
11
Shared Channel ( PUSCH) and Physical Uplink control channel ( PUCCH).
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].
−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.
14
Input signal:
• rm (n) is the base band time domain signal from antenna m . rm (n) is sampled at 15.36
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.
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.
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.
⎡ 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.
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
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.
Input signal:
• v m ,i , j , Pi , j
Output signal:
v m,i , j , Δt m
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
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
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
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
19
Temp ← Temp + v m ,i , j v m* ,k , j
end
⎛ Temp ⎞
Δf m = angle⎜ ⎟
⎜ 2πLT ⎟
⎝ sym ⎠
end
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
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.
Input signal:
• v m ,i , j , q (regression order, equal to 1)
Output signal:
• hˆm,i , j
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
Input signal:
∧
• Averaged pilot symbols v m , j
Output signal
⎡ 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
• 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.
Input signals:
• sˆi , j , g i , σ i2,eq
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.
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
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
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
α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
Note that with time domain pilot averaging the gain and noise variance, g i , σ i ,eq ,
2
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
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 .
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
α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
Note that with time domain pilot averaging the gain and noise variance, g i , σ i ,eq , remains
2
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
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
• 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
Note that with time domain pilot averaging the gain and noise variance, g i , σ i ,eq , remains
2
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
Let
4 g avg ni
κi = for i = 1,2,3
(1 − g avg ) 2
N
1
where, g avg =
N
∑gi =1
i
ui
• Define, a i = , i = 1,2,3
κi
The decision metric is given by,
32
3
D = ∑ ai2
i =1
⎡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
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.
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 .
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.
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 }.
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
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].
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
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,
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
χ=
Lγ
si
2a 0 1
[b1 ] 1 −1
00 1
2b 01 −j
[b1 b2 ] 10 j
11 −1
⎧ 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
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
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
⎡ 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
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
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
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,
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
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.
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
For a user u,
(
Threshold = (SR _ Threshold ) EstErrVaru )
if ℜ(Du ) >= Threshold
InfBitsRx = 1
else
InfBitsRx = 0
end
(
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
*
⎛ 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
46
Figure 18: PUCCH Format 2 CQI decoding
⎧ 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 }.
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:
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:
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
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
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].
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.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)
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.
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.
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
⎪
⎩
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
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
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.
56
• Precalculate and store
d1,u
and
d 2,u
for
u = 1, L, N zc − 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
•
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.
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
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
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 ).
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 .
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 .
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).
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.
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
61
SNRmmse
Temp = 0
for i = 1 : NumDataOFDMSymbols
⎛ g ⎞
Temp ← Temp + ⎜⎜ i ⎟⎟
⎝1 − gi ⎠
end
Temp
SNRmmse =
NumDataOFDMSymbols
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
num_erasures = num_erasures + 1;
end
end
LLR_Erasure = num_erasures/ N LLR
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;
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.
Input signals:
• vu ,m ,i , j , hˆu ,m ,i , j
Output signal
for u = 1 : N u
63
end
end
end
2
σ
σ =
2
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
end
64
7.4.3 PUCCH based long term SINR Estimation
NRu = 0
Initialize: for u = 1,..., N u
DRu = 0
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