## 4 Comparative Analysis Convolutional Codes with LDPC Codes, BCH Codes, and Turbo Codes
### Convolutional Codes vs. Turbo Codes  
Turbo codes are a type of forward error correction codes that use two or more Convolutional codes in parallel with an interleaver [19]. They have high performance and can achieve near-Shannon limit error correction capacity [30]. However, they also have some drawbacks, and two of them are as follows:  
_First Dravback:_ **Turbo codes require complex encoding and decoding algorithms that require significant computing power. **  
Figure 10: Codeword decoding operation using Viterbi algorithm. The encoding process involves two or more Convolutional encoders and an interleaver, while the decoding process involves soft-input-soft-output decoders that use either the log-MAP or the max-log-MAP algorithm. Numerous studies have focused on addressing the issue of the power consumption caused by Turbo codes. For instance, a study conducted by [PERSON], [PERSON], [PERSON], and [PERSON] at Hong Kong University of Science and Technology [31], examined the complexities and high power consumption associated with decoding Turbo codes in receivers. The authors presented potential solutions to this problem in their research. The Adaptive State of Charge (SoC) Limiter is not discussed in this article because this article is a theoretical or research article, due to it focusing on a comparative analysis of different coding methods and their efficacy in GPS systems. This article presents mathematical models, algorithms, and theoretical insights to support its claims and conclusions. Addressing the issue of energy consumption was based on previous studies such as reference [31]. This study makes a comparison between the requirements or the amount of energy consumption between the methods used in the coding process in satellite communications systems to indicate reasons behind the preference for or suitability of one method over the other in global positioning systems (GPS). Therefore, energy management methods for the codes were not discussed in this paper. **Second Drawback:** **The use of a turbo code may increase the processing time of the GPS receiver, which may result in a delay in receiving and processing GPS signal data. **  
This is because the decoding algorithm requires multiple iterations to converge to a reliable solution, and each iteration involves matrix operations and logarithmic calculations, and this because the computational complexity involved in Turbo codes leads to increased power consumption. In computer science and engineering, it is widely recognized that there is a trade-off between complexity, power, and time. More complex codes or models require additional resources such as memory, processing power, and energy for storage and operation, resulting in longer execution times and higher power consumption. The complexity of Turbo codes compared to Convolutional codes has been explored in various studies, including in research conducted by [PERSON]. [PERSON] [32]. Thus, GPS systems often use Convolutional codes due to their lower computational complexity (compared to other code types using satellite communications systems) and faster decoding time, yet they are effective for error correction. In addition to the information mentioned, one of the most significant reasons that makes Convolutional codes suitable for GPS Systems is that block codes are typically slower than Convolutional codes for the following reasons:  
* Block codes require larger block sizes to achieve the same level of error protection as convolutional codes. The larger block size means more bits need to be processed, which can slow down the system. * Block codes require more complex encoding and decoding algorithms than Convolutional codes, which can also slow down the system. Convolutional codes use a shift register and some XOR gates to generate the parity bits, which is a simpler process than the matrix multiplication required for block codes. * Error detection and correction are more efficient in Convolutional codes than block codes.