## 4 System Model
### System Model: Sigfox  
Sigfox is deployed over a BW of 192 KHz with a channel BW of 100 Hz; maximum equivalent radiated power (ERP) of a device is 14 dBm or 25 mW [41]. A node can only transmit 140 messages a day with maximum size of 12 bytes over a data rate of 100 bits/s [23]. Sigfox frame size is 26 bytes, and it uses spatial diversity in architecture as each message is transmitted three times with different frequency. Downlink messages are capped at four messages per day of 8 byte length, limiting the implementation of acknowledgements and optimization schemes. At a physical layer, Sigfox uses modulation schemes, as given in Table 1; Also, there is no synchronization mechanism between the transmitter and receiver, which helps in the reduction of complexity and cost. Sigfox uses BPSK for uplink and GFSK for downlink; random frequency time division multiple access (RFTDMA) is used for multiple access. If we consider payload of 12 byte, then there will be 6 messages that will be transmitted in one hour, each taking close to 2.08 s. We calculated the number of channels available to Sigfox, where each channel is of 100 Hz and the total bandwidth allocated to Sigfox is 192 KHz within the ISM band, i.e., SRD688 in Europe and ISM 900 in the USA. There are a total of 1920 channels available for transmission, though Sigfox uses spatial diversity where each message is modulated with three different frequencies and transmitted at three different time intervals limiting its effective transmission capability. It is highlighted that if orthogonality is applied to 1920 channels of Sigfox, only 360 channels are available for transmission, and due to the timing offset, collision chances increase. Sigfox node and gateway have been implemented using a Raspberry  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Serial No** & **SF** & **Symbols** & **SNR (dB)** & **Bit Rate (bps)** \\ \hline (a) & 7 & 128 & \(-7.5\) & 5469 \\ \hline (b) & 8 & 256 & \(-10\) & 3125 \\ \hline (c) & 9 & 5125 & \(-12.5\) & 1758 \\ \hline (d) & 10 & 1024 & \(-15\) & 977 \\ \hline (e) & 11 & 2048 & \(-17.5\) & 537 \\ \hline (f) & 12 & 4096 & \(-20\) & 293 \\ \hline \hline \end{tabular}
\end{table}
Table 2: LoRa SF with corresponding data rates and SNR values.  
Pi single-board computer with an Arduino MKR 1200 board, a Sigfox SDR dongle, SMA connectors, and Lime SDR using GNU radio as gateway. Device used are as per zone 1 (RC1) configuration, which is applicable in Asia, and the module is UPLYNX Sigfox and TD1207. Path loss is calculated using received signal strength indicator (RSSI) and SNR as \(PL=|RSSI|+SNR+P_{TX}+G_{RX}+10n\text{log}_{10}(\frac{d}{d_{0}})\). Where \(PL\) is path loss, \(P_{TX}\) is ERP, \(G_{RX}\) is receiver gain, \(n\) is path loss component, \(d\) is distance between Sigfox device and gateway, and \(d_{0}\) is reference distance. Sigfox dataflow can be derived using the following Algorithm 1 for transmission and Algorithm 2 for collision calculation in case of LoRa.  
```
Step 1: Start with data generation using Sigfox stack library Step 2: GNU frame import as per Sigfox frame format Step 3: Initiate Lime SDR, physical layer signalling Step 4: Transmit data over radio interface Step 5: Repeat steps 2 to 4 with t second offset
```  
**Algorithm 1** Sigfox Traffic Flow  
```
Step 1: Input: \(n\) nodes, \(k\) gateways with \(A\) area Step 2: Define interval \(T_{s}\), SF 7-12, frequency \(f=868.7\) MHz Step 3: Find distance from \(k\) to each \(n\); set \(BW=250\) KHz Step 4: Calculate path loss (Hata) \(L\), \(LR_{n,k}\) and SNR Step 5: Define interfering node \(i\) for all \(n\) in \(A\) Step 6: Duty cycle \(D_{n,\beta_{n}}\)and packet arrival rate \(\lambda\) Step 7: For \(n,k\), calculate \(i\) for each node Step 8: For \(j=1\ldots m\), calculate \(P_{C}\), \(P_{O}\), \(D_{n}\) Return: \(P_{C}\) and \(PER\)
```  
**Algorithm 2** Collision and PER Calculation