I have been trying to create a basic BCJR decoder for a rate (1/2) punctured turbo code. The puncturing is simple, the encoder alternatively selects between the parity bits generated by the two constituent parallel encoders.

So the transmitted signal looks something like this:

[x1 z1, x2 z2', x3 z3, x4 z4',....]

Where [x] are the systematic bits, [z] are the parity bits generated by the first encoder and [z'] are the parity bits generated by the second encoder.

At the decoding end I am "depuncturing" the received soft data by adding zeros for the unknown LLR values, like this:

[x1 z1 0, x2 0 z2', ....]

And then, feeding x and z to the first decoder and interleaved(x) and z' to the second decoder.

This setup is unfortunately not converging. The LLRs keep oscillating around zero. Is there something that I am doing wrong?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.