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
According to papers like  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  and .