comm.ViterbiDecoder performing worse than vitdec
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Marian Keller
el 13 de Feb. de 2023
Comentada: Marian Keller
el 6 de Mzo. de 2023
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)
BER2 = biterr(data,decodedData2)
0 comentarios
Respuesta aceptada
Nadia Shaik
el 6 de Mzo. de 2023
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)
BER2 = biterr(data,decodedData2)
I hope this helps!
Más respuestas (0)
Ver también
Categorías
Más información sobre Error Detection and Correction en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!