Search this blog


Home About Contact

Viterbi convolutional decoding algorithm

The Viterbi algorithm essentially performs maximum likelihood decoding; however, it reduces the computational complexity load by taking advantage of the special structure in the code trellis. The advantage of Viterbi coding is that the complexity of a Viterbi decoder is not a function of the number of symbols in the codeword sequence.

The algorithm involves calculating trellis paths that could not possibly be candidate for maximum likelihood choice. When two path enter the same state, the one having the best metric is chose; this path is called the surviving path. This selection of surviving path is performed for all the states. The decoder continues in this way to advance deeper into the trellis, making decision by eliminating the least likely path. The early rejection of the unlikely path reduces the complexity.

Decoder trellis diagram

BCH code

BCH (Bose, Chaudhuri, Hocquenghem ) codes are a class of linear and cyclic block codes that can be considered as a generalization of the Hamming codes, as they can be designed for any value of the error-correction capability t. These codes are defined in the binary field GF(2), and also in their non-binary version, over the Galois field GF(q).

BCH codes are a generalization of Hamming codes, and they can be designed to be able to correct any error pattern of size t or less [1, 2, 4]. In this sense the generalization of the Hamming codes extends the design of codes for t = 1 (Hamming codes) to codes for any desired higher value of t (BCH codes). The design method is based on taking an LCM of appropriate minimal polynomials, as described in the previous section for a particular example.

For any positive integer m ≥ 3 and t < 2m−1, there exists a binary BCH code CBCH(n, k) with the following properties:

Code length n = 2m − 1

Number of parity bits n − k ≤ mt

Minimum Hamming distance dmin ≥ 2t + 1

Error-correction capability t errors in a code vector

These codes are able to correct any error pattern of size t or less, in a code vector of length n, n = 2m − 1.

The generator polynomial of a BCH code is described in terms of its roots, taken from the Galois field GF(2m). If α is a primitive element in GF(2maxi), the generator polynomial g(X) of a BCH code for correcting t errors in a code vector of length n = 2m − 1 is the minimum-degree polynomial over GF(2) that has α, α2, . . . , α2t as its roots:

g(αi ) = 0, i = 1, 2, . . . , 2t
It also true that g(X) has αi and its conjugate as its roots (see Appendix B). On the other hand, if Φi (X) is the minimal polynomial of αi then the LCM of Φ1(X), Φ2(X), . . . , Φ2t (X) is the generator polynomial g(X):
g(X) = LCM{Φ1(X),Φ2(X), . . . Φ2t (X)}

As a result of the definition of a linear binary block BCH code CBCH(n, k) for correcting error patterns of size t or less, and with code length n = 2m − 1, it is possible to affirm that any code polynomial of such a code will have α, α2, . . . , α2t and their conjugates as its roots. This is so because any code polynomial is a multiple of the corresponding generator polynomial g(X), and also of all the minimal polynomials Φ1(X), Φ2(X), . . . , Φ2t (X).

Any code polynomial c(X) = c0 + c1X + . . . + cn−1Xn−1 of CBCH(n, k) has primitive element αi as a root:
c(αi ) = c0 + c1αi + •• •+cn−1αi (n−1) = 0

Decoding of BCH Codes

The code polynomial, the error polynomial and the received polynomial are related by the following expression:

r (X) = c(X) + e(X) (16)

Syndrome decoding can be used with BCH codes, as they are linear cyclic block codes. Recall that, for a given code polynomial c(X), c(αi ) = 0, and that this is equivalent to
c ◦ HT = 0

Combining this expression with that used to calculate the syndrome vector,
S = (s0, s1, . . . , s2t ) = r ◦ HT

and the following set of equations is obtained:

si = r (αi ) = e(αi ) = r0 + r1(αi ) + •• •+rn−1(αi )n−1

with 1 ≤ i ≤ 2t.

These equations allow us to calculate the ith component of the syndrome vector by replacing the variable X with the root αi in the received polynomial r(X). The syndrome vector consists of elements of the Galois field GF(2m). Another method of evaluating these elements proceeds in the following way: The received polynomial is first divided by Φi (X), which is the minimal polynomial corresponding to the root αi , so that Φi (αi ) = 0, and then

r (X) = ai (X) Φi (X) + bi (X)

which gives, when substituting αi ,

r (αi ) = bi (αi )

Performance analysis

Simulations are conducted for different source coding and channel coding schemes. We compare among these different combination to find out the optimum performance. These simulations result in AWGN, Reyligh and Richian fading channel with different code rate. Here DPSK is used as modulation scheme having better performance than QAM.

Simulation also shows that we get high bit rate when we use high code rate and high data compression ratio with some error for same SNR and vice versa.

Analysis of the simulation

When we transmit any data without any coding by AWGN, Rayleigh or Rician fading channel then it needs very high SNR to receive it and has very bad error performance.

The channel performance for uncoded data transmited over awgn, rayligh, and rician channel. Here we find that awgn channel has the best performance and rayligh fading channel has the worst. But in satellite transmission rician channel is generally considered for line of sight (LOS) communication. For bit error rate 10-5 the bitrate according to SNR.

Performance over AWGN, Rayleigh fading and Rician fading channel




In figure, we can find the optimum dpsk modulation scheme. For M=16 ,four bit can be transmitted at a time so we get the higher bitrate at the cost of SNR

DPSK modulation over AWGN channel



Figure, shows the joint performance of Huffman and convolutional coding which is not so good.Here we see that bitrate is increased but as the Convolutional coding is not so good efficient for error correction because it cannot reduce SNR sufficiently.

Huffman & Convolutional coding over Rayleigh fading




Now in figure, we see the joint performance of Huffman and Reed Solomon coding which shows the better performance than Huffman-Convolutional Coding

Huffman-BCH coding performance over Reyleigh fading channel





In satellite transmission we generally use Rician fading channel. Now we will make analysis of joint performance in Rician channel.In figure 6, 7, 8 we get better performance of Huffman-Convolutional, Huffman-Reed Solomon, Huffman BCH coding in Rician channel which are better than transmission of uncoded data in AWGN channel

Huffman & Convolutional coding over Rician fading channel

Huffman & Reed- Solomon coding over Rician fading channel

Huffman & BCH coding performance over Rician fading channel

Result


From the above analysis of the simulation dpsk for M=4 is chosen as optimum modulation scheme. And among three joint source channel coding performance Huffman- BCH coding is optimum for its large error correction capability and handling large block length. Hence it can be used in image and video transmission in satellite communication.

Chapter 6

Conclusion


It is well known that a communication system consists of two essential functional modules, the source codec and channel codec. These two modules are essentially concerned with data compression and transmission. In data compression, we strive to remove all the redundancy from the data to achieve a compressed representation of the data most close to the entropy of the source.


On the other hand, in data transmission, we intentionally add redundancy into data in a controlled fashion to combat channel noise. Therefore, joint source-channel coding may improve end-to-end system performance. More importantly, the optimum performance of joint source channel coding could be applied to practical contexts such as voice, image and video communication systems. It will be possible to transmit data with sufficient bitrate with lower error performance and minimum power by optimum performance of joint source channel coding.