# Opportunities and Challenges for Error Control Schemes for Wireless Sensor Networks: A Review
## 4 Review on Energy Consumption and Efficiency Model
### Single Hop Network
By separating start-up energy consumption and energy consumption due to circuit and amplifier at transmitter and receiver, Equation (15) can be written as Equation (16):  
\[e_{b}=(e_{t}+e_{r})\bigg{(}1+\frac{(\alpha+\tau)}{n}\bigg{)}+\frac{(e_{st}+e_{ rs}+e_{Dec})}{n} \tag{16}\]  
where \(e_{t}\) and \(e_{r}\) are representing energy consumption per bit due to circuit and amplifier at transmitter and energy consumption due to circuit per bit at the receiver, respectively. The parameters \(e_{st}\) and \(e_{sr}\) are representing transmitter and receiver start-up energy per frame, respectively. Considering transmission data rate of \(R_{b}\) bits per second, the parameters \(e_{t}\) and \(e_{r}\) are defined as Equations (17) and (18), respectively:  
\[e_{t}=\frac{P_{te}+P_{ta}}{R_{b}} \tag{17}\]  
Figure 11:0 A packet format with packet length of \(\alpha+n+\tau\). Figure 11:1  
Therefore, the overall energy efficiency of a communication link of a single hop wireless link (assuming that encoding energy is negligible and no re-transmission applied even when decoding failure is detected) can be written as Equation (19) [36]. It shows that the energy efficiency depends on reliability factor, payload length and decoding cost (depends on ECS used or not, types of ECS if used):  
Figure 11:2  
In [36], [PERSON] et al. present the energy efficiency as a function of packet size for uncoded, BCH code (with different error correction capability) and convolutional code with different code rate. In this analysis, the authors consider a communication link with binary orthogonal non-coherent frequency shift keying modulated data on a frequency non-selective, Rayleigh fading channel. The energy efficiency for ARQ (considering re-transmission and packet frame size) and BCH code as FEC is derived in [66], and this work is an extension of [36]. The paper claims that the energy efficiency of ARQ is independent of re-transmission attempts and is an optimum BCH i.e., error correcting capability for a certain packet size and communication distance. Finally, this paper compares energy efficiency of ARQ and BCH with different packet sizes and communication distances. The results are based on Mica2 sensor node, ATmega128L processor and CC1000 radio module. [PERSON] et al. evaluate energy efficiency of DC-balanced error correcting codes by introducing Manchester code before ECCs (including BCH, Golay and SECDED) in a single hop model [63]. This work is an extension of [36], but there is no clarity whether the decoding cost is used or not in the energy efficiency results. In [67], [PERSON] et al. introduce a transmission cost model based on packet loss-ratio (\(p_{t}\)) and the cost of transmission of a packet over ideal network \(C_{t}\) with a single hop. The total transmission cost for transmission of a packet over a network is given as Equation (20). This transmission cost model can be used for both uncoded and coded systems with convolutional code and Viterbi decoding. The paper compares transmission cost versus transmission distance of single hop for uncoded and coded system. The cost of transmission over an ideal network is measured on Mica2. The energy cost of transmitting (\(C_{t}\)) is estimated using average current drawn by Mica node and packet length but does not incorporate encoding energy cost. The result indicates that the cost of transmission is higher while using coding compared to uncoded, as distance between nodes is less than 30 m. However, the proposed coded system consumes significantly less power compared to uncoded system when the distance between nodes lies between 30-40 m. The results indicate that the cost of transmission using half rate convolutional code is more efficient than the uncoded system only when the distance between nodes is more than 35 m:  
Figure 11:3  
A web based tool for software energy profiling, called JouleTrack, is introduced in [68].