Hi everyone,
Is it possible to modify the
traceback depth of the built-in
CC Decoder Definition? It appears unable to recover errors I have introduced during puncturing/depuncturing, returning values with bit errors still present.
I am trying to decode a PDU I originally convolutionally encoded using the
FEC Async Encoder block with the default 1/2 rate, K=7, 79/109
CC Encoder Definition in 'terminated mode'. I then perform async puncturing using a custom block I wrote to achieve 2/3 and 3/4 code rates, followed by the corresponding async depuncturing block, which inserts zeroes in previously punctured positions. I then attempt to decode the depunctured code using the
FEC Async Decoder block with the default 1/2 rate, K=7, 79/109
CC Decoder Definition in 'terminated mode'.
Without puncturing (rate = 1/2) decoding works perfectly. I have confirmed the puncture/depuncture behaviour is correct, so it appears that the decoder just isn't looking back far enough when performing Viterbi decoding. I haven't been able to find an obvious way to modify the decoder's traceback depth...
SSE2 Viterbi decoding methods like that used in
DVB-T and
802.11 actually already modify their traceback depth to accommodate puncturing.
Anyone have any advice? Ideally I'd make the default cc encoders/decoders work since they perform the necessary flushing of bits for fixed length packets, rather than modifying the SSE2 versions to do the same.