# Opportunities and Challenges for Error Control Schemes for Wireless Sensor Networks: A Review
## 2 Error Control Scheme (ECS)
### Forward Error Correction (FEC)
#### 2.2.3 Encoding and Decoding Complexity
The soft decision decoder has better performance in terms of coding gain when compared with the corresponding hard decision decoder. However, the soft decision decoder has significantly higher decoding complexity and power consumption than the hard decision decoder. Therefore, there are some simplified versions of SPA decoder available in the literature to reduce complexity and power consumption. Some examples of simplified versions of SPA are Binary Message Passing (BMP) decoding, Weighted Bit Flipping (WBF) decoding and min-sum decoding [34]. Although LDPC and Turbo codes used with iterative decoding algorithms that use a soft-decision from a channel can achieve significantly better performance (coding gain) than cyclic codes and short block codes with non-iterative decoding; the use of these iterative codes are limited in WSN due to their high complexities and high power consumption. One of the approaches used to evaluate the effectiveness of ECC on WSN is to look at the decoding power consumption. Decoder power consumption is based on complexity of the decoding algorithm i.e., the number of operations (addition, multiplication or other mathematical and logical operations) used on a decoding algorithm. Additionally, the power consumption also depends on the maximum number of iterations for iterative decoding techniques used in LDPC and Turbo codes. This method of evaluating effectiveness of error control code only incorporates the decoding cost at the receiver but does not cover the cost associated with transmission of redundant bits at the transmitter. Therefore, the evaluation of ECC in WSN using only decoder power consumption is inadequate for full analysis. The complexity of LDPC decoding depends on the maximum number of iterations (\(NI\)) used during decoding algorithm, block length (\(n\)), average degree of variable node (\(d_{v}\)) and average degree of check node (\(d_{c}\)). The SPA decoding involves addition and multiplication operations at variable and check node, respectively. The complexity of LDPC decoding using an SPA algorithm in terms of number of operations is given as Equation (5), where \(E_{A}\) and \(E_{M}\) are defined as complexity of addition and multiplication operation, respectively. However, the validity of Equation (5) can not be verified independently, and the paper does not provide proper reference in [35]:  
\[E_{LDPC}=\prod_{tle=1}^{NI}\left((3 nd_{c}+6 nd_{v}-10n)E_{M}+(3 nd_{v}+n)E_{A}\right) \tag{5}\]  
The complexity of BCH decoding with \(t\) error correcting capability and code length \(n\) is given by Equation (6) [36]. \[E_{BCH}=(2 tn+2t^{2})(E_{M}+E_{A}) \tag{6}\]The complexity of RS decoding with \(t\) error correcting capability and code length \(n\) is given by Equation (7) [37]. However, the validity of Equation (7) can not be verified independently or proper reference is not provided in [37]:  
\[E_{RS}=(2 tn+2t^{2})(E_{M}+E_{A}) \tag{7}\]  
The theoretical decoding complexity of trellis decoding of convolutional code is given by Equation (8) [38]:  
\[C=\frac{n}{k}2^{(L+k)}symbols/bit \tag{8}\]