TD 7, Concatenated CodesIntroduction to Information TheoryFebruary 17, 2022 |
When it comes to assess the performances of a linear code, it is in general not necessary to encode it. Most decoding algorithms display the same performances regardless of the codeword that is sent. In such a case, one can assume that the zero codeword was sent. It just remains to draw at random errors according to the channel model and to compute how many times the decoding algorithm will recover the zero codeword. This simplified procedure presents several advantages
The syndrome decoder consists in choosing for each possible syndrome a word of minimum weight which has this syndrome. You will have to implement this decoder for the Golay code G24 [24,12,8] which has the following generator matrix
static int [] G = { 0xa3b001, 0xc76002, 0x8ed004, 0x9da008, 0xbb4010, 0xf68020, 0xed1040, 0xda3080, 0xb47100, 0xe8e200, 0xd1d400, 0x7ff800 };
It will be useful to notice that this generator matrix is also a parity-check matrix : each row of G is also in the kernel of G. The main steps you will have to implement are given by
Note that we always work in the code space F224 (three bytes stored into an int), and never in the message space F212. You can use the following java class Golay.java .
We are going to consider the following concatenated code
For the inner Golay code, calling Golay.decoder(y) returns
In the case of a concatenated code, we will prefer to declare that decoding the inner code leads to an erasure rather than producing an error which might be more harmful.
A threshold e will be defined: if there are more than e errors we will decide that the symbol gets erased.
A Reed-Solomon code can correct a configuration of t errors and s erasures if and only if 2t+s<d.
takes as arguments
The outer code is a [255,223,33] Reed-Solomon code. The program will be used to answer the following questions :
This document was translated from LATEX by HEVEA.