Bit Error Rate (BER) Calculation
Receiver sensitivity is the minimum signal strength that a receiver can detect. In NetSim, if the received signal power is higher than the receiver sensitivity, then the signal is decoded with its BER calculated from the SINR-BER formulas/tables given in this section.
Note that the BER source codes are not open for user modification. If a user wishes to change the BER then they can comment NetSim’s BER function call and write their own function. This can be written in C or it can be written in MATLAB (and a call made to MATLAB from NetSim).
\[\begin{equation} SINR\;(\text{dB}) = RxPower\;(\text{dBm}) - (Noise + Interference)\;(\text{dBm}) \end{equation}\]
\[\begin{equation} Noise = k \times Temp \times Bandwidth \end{equation}\]
\[\begin{equation} SINR\;(\text{linear}) = 10^{\frac{SINR\;(\text{dB})}{10}} \end{equation}\]
\[\begin{multline} \frac{E_{b}}{N_{0}} = \frac{\left(\frac{P \times T_{s}}{M}\right)}{\left(\frac{N+I}{W}\right)} = \frac{SINR \times W}{\left(\frac{M}{T_{s}}\right)} \\ = SINR(\text{Linear}) \times \frac{\text{ChannelBandwidth (Hz)}}{\text{ChannelDataRate (bps)}} \end{multline}\]
Thus,
\[\begin{equation} \frac{E_{b}}{N_{0}} = \frac{SINR(\text{Linear}) \times \text{ChannelBandwidth}}{\text{DataSymbolRate (kBd)} \times \text{ModulationOrder} \times \text{CodeRate}} \end{equation}\]
Where \(P\) is the received power, \(T_{s}\) is the symbol duration, \(M\) is the modulation order, \(N\) is noise, \(I\) is interference and \(W\) is the channel bandwidth. An implication of this calculation is that the coding gain equals the reciprocal of the code rate. This is an approximation.
BER Calculation for QAM¶
Computation of the exact bit error rate (BER) for square M-ary QAM (8, 16, 32, 64, 128 and 256 QAM) is based on [2]
\[\begin{equation} P_{b} = \frac{1}{\log_{2}(\sqrt{M})} \sum_{k=1}^{\log_{2}(\sqrt{M})} P_{b}(k) \end{equation}\]
where
\[\begin{multline} P_{b}(k) = \frac{1}{\sqrt{M}} \sum_{j=0}^{(1-2^{-k})\sqrt{M}-1} \left\lfloor (-1)^{\left\lfloor \frac{j \cdot 2^{k-1}}{\sqrt{M}} \right\rfloor} \cdot \left(2^{k-1} - \left\lfloor \frac{j \cdot 2^{k-1}}{\sqrt{M}} - \frac{1}{2} \right\rfloor \right) \right. \\ \left. \cdot\; \mathrm{erfc}\!\left((2j+1)\sqrt{\frac{3(\log_{2} M) \cdot r}{2(M-1)}}\right) \right\rfloor \end{multline}\]
and
\[\begin{equation} r = \frac{E_{b}}{N_{0}} \end{equation}\]
BER Calculation for DQPSK, O-QPSK and QPSK¶
\[\begin{equation} BER = 0.5 \times \mathrm{erfc}\!\left(\sqrt{0.5 \times \frac{E_{b}}{N_{0}}}\right) \end{equation}\]
NOTE: The 802.15.4 2003 and 802.15.4 2006 standards used the formula
\[\begin{equation} BER = \frac{8}{15} \times \frac{1}{16} \times \sum_{k} (-1)^{k} \binom{16}{k} e^{-20 \times SINR \times (1/k - 1)} \end{equation}\]
for O-QPSK which has since been changed.
BER Calculation for DBPSK and BPSK¶
\[\begin{equation} BER = 0.5 \times \mathrm{erfc}\!\left(\sqrt{\frac{E_{b}}{N_{0}}}\right) \end{equation}\]
BER Calculation for LTE¶
In the case of LTE an SNR-BER table is looked up for each MCS.
SINR-PER Curves for 802.11g¶
We get the BER by looking up the SINR-PER curves. Then \(PER = 1 - (1 - BER)^{L}\) where \(L = 1512 \times 8\). The Figure 4 plot was obtained from the NetSim function used to calculate BER in IEEE 802.11 Phy.c
Calculate_ber_by_calculation (double sinr, PHY_MODULATION modulation,
double dataRate_mbps, double bandwidth_mHz)