Hey community!
It’s Friday! So it’s time for another project update.
This week was all about decoders. After I had finished a successive
cancellation decoder, I started working on a successive cancellation
list decoder. By the end of last week, I was confident, I could finish
it earlier this week. Those hopes were smashed when I realized that my
first approach had flaws.
So now my design is spread over multiple classes. One that offers all
the necessary functions to perform successive cancellation decoding. A
second class which uses those functions to decode frames. And another
class for successive cancellation list decoding. Also, I added a class
which deals with everything related to the list used by the list
decoder.
According to papers like [3] natural bit indexing order is beneficial
in terms of performance. Thus I changed the decoder to use natural bit
order. I spent some time on a decoder version which would store bit
estimates in a packed array in contrast to on bit per byte. This
should make the so-called combine operation faster. It is the most
demanding operation at the moment.
I realized that realistic tests require realistic channel info.
Currently, I use BEC Z-values for encoder/decoder parameterization but
encoder/decoder are designed to work with BSC. Therefore, I decided to
focus on channel construction next week. Afterwards the
encoder/decoder should be usable in a real flowgraph.
More info and current project progress can be found in [1] and [2].
Cheers
Johannes
[1] https://github.com/jdemel/gnuradio
[2] https://github.com/jdemel/socis-proposal
[3] http://arxiv.org/pdf/1504.00353v1.pdf