计算机网络中的前向纠错
什么是前向纠错?
前向纠错 (FEC) 是一种在数据传输中进行错误控制的方法,其中源(发送方)提供冗余数据,而目标(接收方)仅识别数据中无错误的部分。 FEC 可以从单个源同时向多个目的地广播数据,因为它不需要源和目的地之间的握手。
在最简单的 FEC 形式中,每个字符传送两次。
接收方验证每个字符的两个实例是否遵循所使用的协议。
如果两种情况都符合,则接受该字符。
如果一种情况符合,另一种情况不符合,则接受遵循协议的字符。
如果两种情况都不符合,则拒绝该字符,并用空格或下划线替换。
简单 FEC 是业余无线电爱好者使用的两种自校正数字模式之一,称为 AMTOR(业余无线电电传打字的缩写)。它也被称为模式 B。另一种结合握手的 AMTOR 模式是自动重复请求 (ARQ),用于全球移动通信系统 (GSM) 等通信系统。
FEC 的优缺点
FEC 可用于从单个源同时向多个目的地广播数据,因为它不需要源和目的地之间进行握手。
FEC 的另一个好处是减少了重传所需的带宽。因此,它被用于实时系统。
其主要缺点是,如果错误过多,则必须重发帧。
FEC 的类型
分组码和卷积码是两种结构不同的编码类型,目前经常使用。
分组码
分组码编码器将信息序列"u"分成"k"个信息比特(符号)的消息块,并将每个消息"u"转换为 n 位代码(符号)。编码率定义为"R = k/n"。冗余比特(符号)n-k 赋予编码处理信道噪声的能力。
两个最接近码字之间的最小距离 dmin 是分组码的一个重要参数,它指定了将一个有效码字转换为另一个有效码字所需的最小数据更改量。此参数决定了编码检测和纠正错误的能力。
通常,FEC 码每个码字最多可以检测和纠正 (dmin - 1)/2 个错误。
卷积码
卷积码编码器接受信息序列"u"的 k 位块,并生成由 n 个符号块组成的编码序列"v"。但是,每个编码块都依赖于"m"先前的消息块和匹配的 k 位消息块在同一时间单元内。
为了在噪声信道和冗余位 n-k 中提供可靠的传输,通过提高代码的内存阶数"m"来添加进一步的冗余。

