Assume that we have a decoding algorithm for the
and the
code that uses the fact that we know
for each bit
of the codeword the probability
that it is equal to
. Then this can be used to decode
a
code in the following way again under the assumption that we know for each bit
of
the codeword
that has been sent
the probability that it is equal to
given the received symbol
for it.
We number the positions of the
code from 0 to
and assume that these probabilities are stored
in an array
. We view
and
as arrays of length
. We assume that the received
word is given by the array
.
From our assumption, we know that
We can use now the lecture on polar codes to deduce that
We can decode
by using these probabilities.
Once we know
we can use the lecture on polar codes to deduce that
This can be used to decode the
code as follows.
The issue is now: how can we decode
and
? If
and
were of length
, then the
answer would be easy. For
there are two cases to consider. Either
is the constant code, say
and then DecodeU would just return 0 or
and then DecodeU
would
return 0 if
and
otherwise.
The recursive
structure of a polar code leads in a natural way to a recursive decoding algorithm based on these
considerations.
One uses here a table
storing all the probabilities that are computed during the decoding process, where
 |
 |
number of layers of the polar code |
|
 |
 |
length of the polar code |
|
![$\displaystyle \mathbf{p}[n][i]$](img53.png) |
 |
 |
|
![$\displaystyle \mathbf{p}[t][i]$](img55.png) |
 |
probability -th bit at layer , for  |
|
where the auxiliary functions are defined as
Here
is a
table of length
where the
positions fixed to 0 at the beginning of the encoding process are also fixed to 0 in
and the other
positions (where information was fed in during the encoding process) take the value
.
Decoding is performed by using the following function with the call
Decode
.
Implement this function in Java and verify that the decoding is succesful most of the time for the polar code
of length
that you have found in the previous question when codewords are sent over a binary symmetric channel of crossover probability
.
Jean-Pierre TILLICH
2019-03-08