我正在发送长度为 32 位的数据比特流(消息)。 我想向这些消息添加纠错代码。例如 16 位“奇偶校验”位。 作为第一种方法,我使用 RS(6,4) 而不是 GF(256) - 因此,数据被视为 4 个字节,并添加了两个字节的纠错码。据我了解,对于RS的这种配置,整个6字节消息中的一个字节可以被更改(损坏),并且RS解码算法仍然能够恢复原始消息。 (如果两个字节被损坏,RS 解码将发出不可恢复错误的信号)。
因此,理论上,一个字节的所有 8 位都可以更改,消息仍然可以恢复。 但场景中可能出现的错误的本质是每个位都可能以一定的概率发生改变。 因此,如果仅在某些随机位置(而不是在同一字节内)更改两个位,则使用 RS(6,4)/GF(256) 将无法恢复消息。 如果任何 8 位发生更改,我想恢复。
有哪些选项?
有许多比特流纠错码,其中许多用于各种电信标准。例如,低密度奇偶校验、卷积码、turbo码等。其中许多代码支持“软”解码,其中每个比特的确定性级别可用于执行最大似然解码,增加找到正确比特的概率代码字。
其中任何一个都更适合您的应用。其中许多代码都具有针对不同稳健性级别的高度可配置的速率,使您可以根据传输介质的质量精确选择要添加的纠错量。