veeresht / CommPy

Digital Communication with Python
http://veeresht.github.com/CommPy
BSD 3-Clause "New" or "Revised" License
538 stars 176 forks source link

Viterbi decoding of depunctured hard decision bits #118

Open usmandroid opened 1 year ago

usmandroid commented 1 year ago

Using hard demodulation we get a binary {0,1} vector. Now given that we previously punctured "erased or removed" the bits to reduce the rate say e.g from 1/2 to 3/4, and then after depuncturing, we inserted '0' at the punctured location. Now when we decode this sequence using viterbi decoder with argument hard decision and rate 1/2, the decoder will not be able to differentiate between an actual error and intentional erasure. When using soft-decision this problem can be mitigated since the '0' value of punctured location indicates LLR of 0 or total uncertainity.

I would like to know if it is possible to perform hard-decision decoding that takes this additional information of puncturing into account.

The error rate is also very high when using hard decision decoding and puncturing due to the above-mentioned reason.

Viterbi-decoder