comm.ViterbiDecoder performing worse than vitdec

I'm trying to get a simple "Hello World" example of convolutional coding and decoding to work. For some reason, the comm.ViterbiDecoder won't ever correctly decode the data, no matter which options I tried, while vitdec works just fine.
trellis = poly2trellis(7,[171 133]);
encoder1 = comm.ConvolutionalEncoder(trellis);
data = randi([0 1],70,1);
codedData = encoder1(data);
tbdepth = 34;
commDecoder = comm.ViterbiDecoder(trellis, 'TracebackDepth', tbdepth, 'InputFormat','Hard','TerminationMethod','Terminated');
decodedData1 = vitdec(codedData,trellis,tbdepth,'trunc','hard');
decodedData2 = commDecoder(codedData);
BER1 = biterr(data,decodedData1)
BER1 = 0
BER2 = biterr(data,decodedData2)
BER2 = 5

 Respuesta aceptada

Hi Marian,
I understand that "comm.ViterbiDecoder" is not decoding the data as compared to "vitdec". The different termination methods could explain why the bit error rate differs between the two decoders.
In your case, you are using the "Terminated" method for "comm.ViterbiDecoder", and "trunc" for "vitdec". Consider setting the termination method "Truncated" for "comm.ViterbiDecoder" instead.
Here is the updated code snippet:
trellis = poly2trellis(7,[171 133]);
encoder1 = comm.ConvolutionalEncoder(trellis);
data = randi([0 1],70,1);
codedData = encoder1(data);
tbdepth = 34;
commDecoder = comm.ViterbiDecoder(trellis, 'TracebackDepth', tbdepth, 'InputFormat','Hard','TerminationMethod','Truncated');
decodedData1 = vitdec(codedData,trellis,tbdepth,'trunc','hard');
decodedData2 = commDecoder(codedData);
BER1 = biterr(data,decodedData1)
BER1 = 0
BER2 = biterr(data,decodedData2)
BER2 = 0
I hope this helps!

1 comentario

Thank you very much. Could've sworn I also tried that, apparently not. The alternative solution my professor suggested was to append a few zeros to the data.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Productos

Versión

R2022a

Preguntada:

el 13 de Feb. de 2023

Comentada:

el 6 de Mzo. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by