数据编码理论/前向纠错
外观
< 数据编码理论
如果我们通过不可靠的通信信道发送数据,通常最好提供一些机制来纠正接收到的错误数据。在你的数据包中加入冗余信息,以检测和可能纠正数据中的错误,这被称为 **前向纠错** (FEC)。
FEC 的形式很多。最简单的形式是重复码,其中数据被复制并多次传输。如果信息在重复之间不匹配,则选择最常接收到的值作为“正确”版本。
更先进的 FEC 形式是分组码和汉明码。我们将在后面讨论所有这些内容。
奇偶校验严格来说不是一种 FEC 技术,但我们将在后面经常引用它。在奇偶校验情况下,一个额外的位附加到数据以检测简单的错误。奇偶校验有两种类型:偶校验和奇校验。
- 偶校验
- 偶校验计算数据中 1 的数量。如果 1 的数量为奇数,则奇偶校验位为 1。否则,奇偶校验位为 0。
- 奇校验
- 奇校验计算数据中 1 的数量。如果 1 的数量为偶数,则奇偶校验位为 1。否则为零。
奇偶校验可以检测到单个位错误,但无法确定哪个位错误。此外,奇偶校验无法检测到多个位错误。如果两位、四位或六位出错,奇偶校验将表明数据是正确的。
正如奇偶校验只能处理最多 1 个错误的情况一样,各种 FEC 码被设计用于其他情况。FEC 码可以检测一定数量的错误,并且可以纠正另一个数量的错误。例如,特定代码可以检测最多 3 个错误,但只能纠正最多 1 个错误。