Pregunta

I'm trying to learn more about convolutional encoding/decoding in the context of OFDM/802.11a. To that end, I've tried my hand at implementing the encoder/decoder from the 802.11a specification. However, I may be misunderstanding the goal of the decoder in terms of its error rate.

My encoder seems to work insofar as its output matches the output from the specification.

However, my decoder (which I implemented using the Viterbi algorithm and using http://home.netcom.com/~chip.f/viterbi/tutorial.html as a reference) does not seem to work as well when dealing with punctured codes. When I feed my decoder an encoded string which has been punctured at a rate of 3/4, the result has approximately 380 out of 864 bit errors. That is, 380 bits of the decoder output do not match the original input to the encoder. When I feed it the encoded string without puncturing, it recovers 100% of the bits correctly.

My question is: should a proper Viterbi decoder be able to decode an encoded string which has been punctured, but otherwise unaffected by noise, with 100% accuracy? Or, is it understood that puncturing an encoded string will produce bit errors in the decoded string?

¿Fue útil?

Solución

Puncturing degrades error-correction a little, but as long as the puncturing ratio is not too high, a punctured signal unaffected by noise should give no decoding errors.

How are you dealing with punctured bits at the receiver? If you use soft-decision at the demodulator, you should set the missing (punctured) bits to "zero", meaning that it could equally be a +1 or a -1

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top