# Opportunities and Challenges for Error Control Schemes for Wireless Sensor Networks: A Review
## 2 Error Control Scheme (ECS)
### Forward Error Correction (FEC)  
FEC or channel coding [1; 12] is a classic way to increase the performance and reliability of a communication channel. When re-transmission is relatively costly and the system is delay sensitive, FEC is used in the communication system. When FEC is applied in a communication system, controlled redundancy is introduced to the transmitted packet at the transmitter using ECC that allows detection and correction of a certain amount of error at the receiver side. Channel encoding operation is the process of adding redundancy at the transmitter where the operation converts information bits to codewords. The error can be identified and fixed at the receiver during the channel decoding operation. Hence, it eliminates the need for re-transmission. This is the key convenience of FEC which supports delay sensitive communication systems. The advantages provided by FEC come with several additional costs. The use of FEC in WSN is justified on the basis of several factors. The use of FEC in coded communication system can achieve a certain reliability at significantly lower Signal to Noise Ratio (SNR) than an uncoded system. The gap in SNR between uncoded and coded systems is called coding gain and the value of coding gain depends on three factors: the type of ECC, code rate and decoding algorithm (i.e., the complexity of decoding algorithm). The lower signal power transmission requirement at the transmitter (due to coding gain) which comes at the cost of extra energy consumption due to channel encoding, channel decoding and the transmission of redundant bits introduced by FEC. Thus, we need to compare the extra power consumption introduced due to encoding, decoding and transmission of extra bits and the power saving due to use of FEC. The use of FEC is only justified if extra power consumption (due to encoding, decoding and extra transmission) is lower than the power saving (due to coding gain) because of energy-constrained nature of WSN node. The amount of extra bits introduced by FEC is measured by code rate \((R)\) of ECC, and it is defined as in Equation (2) [2]:  
\[R=\frac{k}{n} \tag{2}\]  
where \(n\) and \(k\) are the length of codeword and information bits, respectively. To make a fair comparison between uncoded and coded system with variety of modulation orders, the SNR is measured as the ratio of energy per bit \((E_{b})\) to the spectral noise \((N_{0})\), that is, \(E_{b}/N_{0}\). Then, the relationship between \(E_{s}/N_{0}\) (the ratio of energy per symbol \((E_{s})\) to the spectral noise over Additive White Gaussian Noise (AWGN) channel) and \(E_{b}/N_{0}\)[2; 3] (both expressed in dB) can be expressed as in Equation (3):  
\[\frac{E_{b}}{N_{0}}=\frac{E_{s}}{N_{0}}-10\,log_{10}(I) \tag{3}\]  
where the term \(I\) represents the number of information bits per symbol which depends on the size of modulation alphabet (\(M\)) and the code rate of an ECC. It is written as in Equation (1). For binary modulation like Binary Phase Shift Keying (BPSK) or Binary Amplitude Shift Keying (BASK), the value of M is two, then the number of information bits per symbol (refer to Equation (1)) is equal to code rate. Therefore, the number of information bits per symbol only depends on code rate. The value of the code rate is equal to one for an uncoded system, whereas the value of code rate is less than one for a coded system. When researchers compare the results between uncoded and coded systems, they should consider the energy consumption due to encoding, decoding, transmission of extra bits due to redundancy and also the modulation order. However, the energy consumption of the encoding operation is insignificant compared with the transmission and decoding operations in many cases [13; 14; 15]. Therefore, the major components that should be considered in the context of energy analysis are the power consumption due to decoding at the receiver (depends on the type of decoding algorithm) and the transmission of extra bits at transmitter (depends on code rate of FEC).