# A Systematic Analysis of Narrowband IoT Quality of Service
## 2 Narrowband IoT Fundamentals
### Data Rate and Latency Boundaries  
NB-IoT dynamically adjusts to the radio conditions by configuring the Modulation and Coding Scheme (MCS), which is a combination of a modulation type and a coding rate applied to a given PRB. NB-IoT supports MCS 0 to 12, using QPSK or BPSK modulation [15] and a variable Transport Block Size (TBS). Higher MCS implies reduced coding redundancy and thus provides increased TBS at the same number of RUs. Additionally, the coverage range can be improved by applying signal repetitions \(N_{Rep}\), which increase the receiver sensitivity. User data are transmitted via two physical channels, which are called the Narrowband Physical Uplink Shared Channel in Format F1 (NPUSCH F1) and the Narrowband Physical Downlink Shared Channel (NPDSCH). When calculating an upper bound for the data rate in the uplink (NPUSCH F1) and downlink (NPDSCH) direction, the maximum possible MCS and TBS must be considered, which correlate to the minimum number of resource units (\(N_{RI}\)) and subframes (\(N_{SF}\)) used for the transmission [1]:  
\[NPUSCH\ multi\ tone:\ TBS_{max}=1000\ \text{b},\ MCS_{max}=12\to N_{RU,min}=4 \tag{4}\]\[NPUSCH\;single\;tone:\;TBS_{max}=1000\;\text{b},MCS_{max}=10\to N_{RU,min}=6 \tag{5}\]  
\[NPDSCH:\;TBS_{max}=680\;\text{b},MCS_{max}=12\to N_{SF,min}=3 \tag{6}\]  
As such, the minimum time needed to transmit the maximum TBS without repetitions (\(N_{Rep}=1\)) can be calculated. In the uplink, the time needed to transmit one RU (\(T_{RU}\)) is 1 ms for a 180 kHz multi-tone transmission and 8 ms in the case of a 15 kHz single tone transmission. In the downlink direction, the time needed to transmit one subframe (\(T_{SF}\)) is 1 ms. The minimum time needed to transmit 1000 b in uplink (NPUSCH F1) is:  
\[T_{min,15\text{kHz}}=N_{rep}*N_{RU,min}*T_{RU}=1*6*8\;\text{ms}=48\;\text{ms} \;\text{for}\;15\;\text{kHz}\;\text{single}\;\text{tone} \tag{7}\]  
\[T_{min,180\text{kHz}}=N_{rep}*N_{RU,min}*T_{RU}=1*4*1\;\text{ms}=4\;\text{ms} \;\text{for}\;180\;\text{kHz}\;\text{multi-tone} \tag{8}\]  
The minimum time needed to transmit 680 b in downlink (NPDSCH) is:  
\[T_{min,180\text{kHz}}=N_{rep}*N_{SF,min}*T_{SF}=1*3*1\;\text{ms}=3\;\text{ ms}\;\text{for}\;\text{a}\;180\;\text{kHz}\;\text{PRB} \tag{9}\]  
NB-IoT employs a scheduling cycle to allocate resources to the individual UE, which reduces the physical layer effective data rates and results in the Medium Access Control (MAC) layer data rates. This scheme is illustrated in Figure 4a for an uplink and in Figure 4b for a downlink transmission. Periodic scheduling information is transmitted on the Narrowband Physical Downlink Control Channel (NPDCCH), and user data are sent via NPUSCH F1 and NPDSCH. NB-IoT uses Hybrid Automatic Repeat Request (HARQ) feedback for forward error correction and automatic retransmissions, which is transferred in the uplink on the NPUSCH in Format F2. The green dashed line marks the earliest possible start of a new scheduling cycle and defines the minimum time needed for the transmission of the TBS. Accordingly, the upper boundaries for the MAC layer data rates can be calculated. These values are used as a benchmark for the throughput evaluations in Section 4.6 of the paper. The maximum physical data rate (\(R_{max}\)) in NPUSCH is calculated as follows:  
\[T_{min,15\text{kHz}}=60\;\text{ms},TBS=1000\;\text{b}\to R_{max}=TBS/T_{min}=16.7 \;\text{kbps}\;\text{for}\;15\;\text{kHz}\;\text{single}\;\text{tone} \tag{10}\]  
\[T_{min,180\text{kHz}}=16\;\text{ms},TBS=1000\;\text{b}\to R_{max}=TBS/T_{min}=62.5 \;\text{kbps}\;\text{for}\;180\;\text{kHz}\;\text{multi-tone} \tag{11}\]  
Figure 4: NB-IoT scheduling cycle for a single (**a**) uplink and (**b**) downlink transmission. Image adapted from [6]. On the other hand, \(R_{max}\) in NPDSCH is:  
\[T_{min}=25\ \text{ms},TBS=680\ \text{b}\to R_{max}=TBS/T_{min}=27.2\ \text{kbps}\ \text{for}\ \text{a}\ 180\ \text{kHz}\ \text{PRB} \tag{12}\]  
In NB-IoT, there are multiple factors that contribute to the total system latency. [PERSON] et al.