# Opportunities and Challenges for Error Correction Scheme for Wireless Body Area Network--A Survey
## 2 Error Correction Scheme (ECS)
### Forward Error Correction (FEC)  
Forward error correction (FEC) [9] or channel coding [10] is a classical approach that is used to enhance the performance of communication link. FEC is used in communication when retransmission is relatively very costly and delay sensitive. In FEC, Error-Correcting Codes (ECCs) add redundancy to the transmitted packet at the transmitter side that allows for the detection and correction of a certain amount of error at the receiver side. The error can be detected and corrected at the receiver. Hence, it eliminated the need of retransmission that is the key advantage of FEC. The introduction of FEC allows a system to operate at a significantly lower Signal to Noise Ratio (SNR) than an uncoded system to achieve a certain BER. The difference in SNR is called coding gain due to FEC and the coding gain depends on the type of ECC and the decoding algorithm and complexity. The complexity of algorithm determines the decoding power consumption. However, the lower requirement of transmission power at the transmitter comes with extra costs: energy consumption due to encoding at the transmitter, decoding at the receiver, and the transmission of extra bits introduced by FEC due to redundancy. Therefore, the use of FEC is only justified if extra power consumption introduced due to encoding,  
Figure 1: Classification of Error Correction Schemes (ECS) for wireless body area networks (WBAN) error correction context. decoding, and transmission of extra bits is lower than the power saving due to the use of FEC in WBAN because of energy-constrained at the node. There are different types of FEC available in the literature with varying complexity and performance. ECCs is classified into two types: block codes and convolutional codes [11]. The discussion of block codes here is limited to binary block codes from the binary Galois Field \(GF(2)\) and the concept can be generalized for the non-binary field. In block codes, the message to be transmitted is divided into smaller blocks of pre-defined length. Subsequently, these blocks are encoded into codewords using encoder. Commonly, a block code is represented by the triple \((n,k,t)\), where \(n\) is the length of code word bits, \(k\) is the length of information bits in the code word, and \(t\) is the error correction capability in term of number of bits that can be corrected. Figure 2 illustrates information bits and parity bits in block codes. The code rate (\(R\)) of ECC is defined as Equation (1) [11]. \[R=\frac{k}{n} \tag{1}\]  
Let \(E_{b}/N_{0}\) be defined as the ratio of energy per bit (\(E_{b}\)) to the spectral noise (\(N_{0}\)) and \(Es/N_{0}\) is defined as the ratio of energy per symbol (\(E_{s}\)) to the spectral noise over the Additive White Gaussian Noise (AWGN) channel. Afterwards, the relationship between \(Es/N_{0}\) and \(E_{b}/N_{0}\)[11; 12], both expressed in dB, as in Equation (2). \[\frac{E_{b}}{N_{0}}=\frac{E_{s}}{N_{0}}-10\log_{10}(I) \tag{2}\]  
where \(I\) is the number of information bits per symbol depends on the size of the modulation alphabet (\(M\)) and the code rate of an ECC. The number of information bits per symbol is the product of the code rate and the number of coded bits (\(M\)) per modulated symbol [11; 12] and is written as in Equation (3). \[I=R\,\log_{2}(M) \tag{3}\]  
For binary modulation (i.e., \(M=2\)), \(I\) is equal to \(R\). Subsequently, Equation (2) only depends on the code rate of ECCs. The code rate for the uncoded system is equal to one i.e., \(R=1\) and the code rate for coded system is less than one i.e., \(R<1\). To make fair comparison between coded and uncoded system, it needs to consider energy consumption due to Radio Frequency (RF) transmission of extra bits in coded system, encoding and decoding cost during result comparison. The energy consumption due to encoding at the transmitter usually insignificant in many cases [13].