RACH
If you look at the high level procedure of RACH, LTE-NB RACH is not much different from legacy LTE or LTE BL/CE(M1). That is, they are all go through the 4 step message transaction (Msg1, Msg2, Msg3, Msg4). However, you would have noticed this procedure got more and more complicated if you look one step deeper into it.
- If you compare the legacy LTE and LTE BL/CE(M1) RACH procedure, LTE BL/CE is more complicated and the most of those complication comes from repeated transmission of each message.
- If you compare the LTE BL/CE(M1) RACH and LTE NB(M2) RACH procedure, you would notice that LTE NB(M2) RACH is more complicated. The most of this complication seems to come from physica resource allocation of Preamble signal in LTE NB (You would see a whole bunch of parameters in NPRACH-Parameters-NB-r13, most of which would not be seen in legacy LTE and LTE BL/CE(M1)) .
Followings are the topics that will be covered in this page.
- Overall Process of RACH procedure for initial attach
- Time Domain Structure
- NPRACH Parameters
- Baseband Signal Generation
- Time and Frequency Domain Resource Allocation
- NPRACH Transmission Timing
- Higher Layer Signaling Parameters
Overall Process of RACH procedure for initial attach
Following is the overall procedure for RACH Process for Initial Attach. Technically the RACH procedure is from Step (B) through (H), but I added some additional steps that must be done before and after the RACH procedure. I will put further description some time later when I have time.

In LTE NB, there are only two Preamble formats. Each preamble format is made up of two portions : CP and Sequence. The Sequence part is made up of 5 sub blocks. All of the 5 subblock is made up of identical symbols. As you see in the following illustration, the length of Sequence part of Preamble format 0 and 1 are same. The difference lies in the length of CP.

As I mentioned in other page, in terms of physical layer implementation LTE-NB is pretty new radio technology comparing to legacy LTE. You can see this new aspects of physical layer in RACH preamble signal design as well (Higher layer sequence (i.e, MAC and higher) of RACH process is not so different from legacy LTE and LTE BL/CE(M1) though). A lot of new parameters defining the physical layer aspect of PRACH are introduced and followings are the list of those parameters.
|
PHY Parameter |
RRC Parameter (SIB2) |
Description |
|
nprach-Periodicity |
NPRACH resource periodicity |
|
|
nprach-SubcarrierOffset |
Frequency location of the first subcarrier allocated to NPRACH |
|
|
nprach-NumSubcarriers |
Number of subcarriers allocated to NPRACH |
|
|
nprach-NumCBRA-StartSubcarriers |
Number of starting sub-carriers allocated to contention based NPRACH random access |
|
|
numRepetitionsPerPreambleAttempt |
Number of NPRACH repetitions per attempt |
|
|
nprach-StartTime |
NPRACH starting time |
|
|
nprach-SubcarrierMSG3-RangeStart |
Fraction for calculating starting subcarrier index for the range of NPRACH subcarriers reserved for indication of UE support for multi-tone msg3 transmission |
Following is the ASN definition of each of the parameters listed above.
NPRACH-Parameters-NB-r13::= SEQUENCE {
nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240,
ms320, ms640, ms1280, ms2560},
nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64,
ms128, ms256, ms512, ms1024},
nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1},
nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48},
nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one},
maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1},
numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128},
npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
r256, r512, r1024, r2048,
spare4, spare3, spare2, spare1},
npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64},
npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
}

Time and Frequency Domain Resource Allocation
NPRACH preamble is transmitted within 180 Khz range which is made up of 48 subcarriers with the subcarrier spacing of 3.75 Khz. Basically NPRACH preamble is transmitted in repetition and at each repetition it hops to a different subcarriers according to rules illustrated below.

According to 36.211-10.1.6.1, NPRACH can be transmitted only at one specific timing within a NPRACH period as illustrated below. nprach-StartTime, nprach-Periodicity is configured by Higher Layer (SIB2)

Higher Layer Signaling Parameters
SystemInformationBlockType2-NB-r13 ::= SEQUENCE {
radioResourceConfigCommon-r13 RadioResourceConfigCommonSIB-NB-r13,
ue-TimersAndConstants-r13 UE-TimersAndConstants-NB-r13,
freqInfo-r13 SEQUENCE {
ul-CarrierFreq-r13 CarrierFreq-NB-r13
additionalSpectrumEmission-r13 AdditionalSpectrumEmission
},
timeAlignmentTimerCommon-r13 TimeAlignmentTimer,
multiBandInfoList-r13 SEQUENCE (SIZE (1..maxMultiBands)) OF AdditionalSpectrumEmission
lateNonCriticalExtension OCTET STRING
...
}
RadioResourceConfigCommonSIB-NB-r13 ::= SEQUENCE {
rach-ConfigCommon-r13 RACH-ConfigCommon-NB-r13,
bcch-Config-r13 BCCH-Config-NB-r13,
pcch-Config-r13 PCCH-Config-NB-r13,
nprach-Config-r13 NPRACH-ConfigSIB-NB-r13,
npdsch-ConfigCommon-r13 NPDSCH-ConfigCommon-NB-r13,
npusch-ConfigCommon-r13 NPUSCH-ConfigCommon-NB-r13,
dl-Gap-r13 DL-GapConfig-NB-r13
uplinkPowerControlCommon-r13 UplinkPowerControlCommon-NB-r13,
...
}
RACH-ConfigCommon-NB-r13 ::= SEQUENCE {
preambleTransMax-CE-r13 PreambleTransMax,
powerRampingParameters-r13 PowerRampingParameters,
rach-InfoList-r13 RACH-InfoList-NB-r13,
connEstFailOffset-r13 INTEGER (0..15) OPTIONAL, -- Need OP
...
}
RACH-InfoList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13)) OF RACH-Info-NB-r13
RACH-Info-NB-r13 ::= SEQUENCE {
ra-ResponseWindowSize-r13 ENUMERATED {
pp2, pp3, pp4, pp5, pp6, pp7, pp8, pp10},
mac-ContentionResolutionTimer-r13 ENUMERATED {
pp1, pp2, pp3, pp4, pp8, pp16, pp32, pp64}
}
NPRACH-ConfigSIB-NB-r13 ::= SEQUENCE {
nprach-CP-Length-r13 ENUMERATED {us66dot7, us266dot7},
rsrp-ThresholdsPrachInfoList-r13 RSRP-ThresholdsNPRACH-InfoList-NB-r13
nprach-ParametersList-r13 NPRACH-ParametersList-NB-r13
}
NPRACH-ParametersList-NB-r13 ::= SEQUENCE (SIZE (1.. maxNPRACH-Resources-NB-r13))
NPRACH-Parameters-NB-r13::= SEQUENCE {
nprach-Periodicity-r13 ENUMERATED {ms40, ms80, ms160, ms240,
ms320, ms640, ms1280, ms2560},
nprach-StartTime-r13 ENUMERATED {ms8, ms16, ms32, ms64,
ms128, ms256, ms512, ms1024},
nprach-SubcarrierOffset-r13 ENUMERATED {n0, n12, n24, n36, n2, n18, n34, spare1},
nprach-NumSubcarriers-r13 ENUMERATED {n12, n24, n36, n48},
nprach-SubcarrierMSG3-RangeStart-r13 ENUMERATED {zero, oneThird, twoThird, one},
maxNumPreambleAttemptCE-r13 ENUMERATED {n3, n4, n5, n6, n7, n8, n10, spare1},
numRepetitionsPerPreambleAttempt-r13 ENUMERATED {n1, n2, n4, n8, n16, n32, n64, n128},
npdcch-NumRepetitions-RA-r13 ENUMERATED {r1, r2, r4, r8, r16, r32, r64, r128,
r256, r512, r1024, r2048,
spare4, spare3, spare2, spare1},
npdcch-StartSF-CSS-RA-r13 ENUMERATED {v1dot5, v2, v4, v8, v16, v32, v48, v64},
npdcch-Offset-RA-r13 ENUMERATED {zero, oneEighth, oneFourth, threeEighth}
}
RSRP-ThresholdsNPRACH-InfoList-NB-r13 ::= SEQUENCE (SIZE(1..2)) OF RSRP-Range
Reference :
[1] Random Access Preamble Design and Detection for 3GPP Narrowband IoT Systems