Hey GNU Radio community!
Work on POLAR codes for GNU Radio has begun. This week I’m working on
Python implementations for encoders and decoders. So far I have an
encoder working and an Successive Cancellation decoder.
I’m currently working on different algorithms which are supposed to
boost performance later on. So for now I’m getting comfortable with
For encoders a simple matrix multiplication version exists. But as the
name implies a matrix multiplication is involved. A more efficient
encoder is proposed in the original paper which runs in NlogN vs. N^2.
There’s working code for this one too.
Also, for decoders a simple implementation exists. And besides some
bugs a more efficient SC decoder is implemented too. This work will be
extended in order to implement more sophisticated algorithms, namely
SC list and SC stack decoders. Belief propagation decoders exist too,
but according to the papers I found they are more computationally
intensive and yield worse performance. If anyone knows better, let me
know. For now, they seem uninteresting and thus won’t be implemented.
So I’ll keep on working on encoders and decoders in Python for the
More info and current project progress can be found in  and .