用维特比解码最终位

信息处理 维特双算法
2022-02-07 06:21:34

我正在编写一个维特比解码器,我对解码三阶卷积滤波器的最终k比特的正确过程感到困惑。k

对于大部分消息,我的过程考虑了每个状态的 0-后继和 1-后继,即分别通过将 0 移入或 1 移入找到的移位寄存器状态。这两个后继者共享维特比算法中的动态规划步骤找到的最小错误祖先。

对于最后一位k,我们知道编码器移入 0 以清除有效负载并重置为 0 状态。我可以确认是这种情况,因为我还编写了编码器。因此,当我收到这部分消息时,我的解码器只考虑 0 后继。我认为这就是我可以用这些信息做的所有事情,但我觉得我可能会丢失一些有助于恢复消息的额外信息。

我在现实中发现的是,不可恢复的错误更可能发生在k导致这些 0 刷新位的消息的最后位中。例如,如果我的解码消息长度为 256 个字节,并且我以 3% 的速率注入错误,我发现 15% 的未恢复错误发生在最后一个字节中。

在某种程度上,我可能预计会出现这种情况,因为没有额外的位可以帮助 Viterbi 最佳路径收敛。我正在使用5k7 阶滤波器的收敛长度或 35 个解码位。我是否应该期望在没有 35 位填充的情况下,我的消息结尾更有可能收到错误?还是我应该继续在我的解码器实现中寻找错误?在实践中,添加额外的有效载荷位来帮助维特比收敛是否很常见?

1个回答

您不需要任何额外的位来帮助解码器收敛。不需要在边界处收敛,因为开始和结束状态是完全已知的(全零状态),因此不涉及猜测。

如果您最后遇到更多错误,则可能是由于解码器中的错误。