In coding theory, Justesen codes form a class of error-correcting codes that have a constant rate, constant relative distance, and a constant alphabet size.
Before the Justesen error correction code was discovered, no error correction code was known that had all of these three parameters as a constant.
These codes have important applications in computer science such as in the construction of small-bias sample spaces.
The Reed–Solomon codes used achieve constant rate and constant relative distance at the expense of an alphabet size that is linear in the message length.
The Wozencraft ensemble is a family of codes that achieve constant rate and constant alphabet size, but the relative distance is only constant for most of the codes in the family.
The concatenation of the two codes first encodes the message using the Reed–Solomon code, and then encodes each symbol of the codeword further using a code from the Wozencraft ensemble – using a different code of the ensemble at each position of the codeword.
The Justesen code can be constructed very efficiently using only logarithmic space.
More precisely, the concatenation of these codes, denoted by
, we compute the codeword produced by an outer code
Then we apply each code of N linear inner codes to each coordinate of that codeword to produce the final codeword; that is,
is chosen to be Reed Solomon code over a field
The set of inner codes is the Wozencraft ensemble
As the linear codes in the Wonzencraft ensemble have the rate
We have the following theorem that estimates the distance of the concatenated code
In order to prove a lower bound for the distance of a code
we prove that the Hamming distance of an arbitrary but distinct pair of codewords has a lower bound.
, we need to take into account the distance of
Due to "Wonzencraft ensemble theorem", there are at least
then So now the final task is to find a lower bound for
Due to the Wozencraft Ensemble Theorem, there are at most
So the question is what the "strongly explicit code" is.
Loosely speaking, for linear code, the "explicit" property is related to the complexity of constructing its generator matrix G. That in effect means that we can compute the matrix in logarithmic space without using the brute force algorithm to verify that a code has a given satisfied distance.
For the other codes that are not linear, we can consider the complexity of the encoding algorithm.
So by far, we can see that the Wonzencraft ensemble and Reed-Solomon codes are strongly explicit.
Therefore, we have the following result: Corollary: The concatenated code
is an asymptotically good code(that is, rate
> 0 for small q) and has a strongly explicit construction.
It is the particular case of the above-considered Justesen code for a very particular Wonzencraft ensemble: Let R be a Reed-Solomon code of length N = 2m − 1, rank K and minimum weight N − K + 1.
The symbols of R are elements of F = GF(2m) and the codewords are obtained by taking every polynomial ƒ over F of degree less than K and listing the values of ƒ on the non-zero elements of F in some predetermined order.
Let α be a primitive element of F. For a codeword a = (a1, ..., aN) from R, let b be the vector of length 2N over F given by and let c be the vector of length 2N m obtained from b by expressing each element of F as a binary vector of length m. The Justesen code is the linear code containing all such c. The parameters of this code are length 2m N, dimension m K and minimum distance at least where