微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
本节目录
一、通信系统模型中的信道编码
二、常用的编码
1、重复码
2、分组码
3、奇偶校验码
4、汉明码
本节内容
一、通信系统模型中的信道编码
在通信系统模型中,信道编码与交织的位置如图所示:
信道编码的作用是为了解决数据在信道中传输时,所引入的误码问题。当然,解决误码问题有两个办法,一是在接收端在发现误码后,请求发送端对错误数据进行重传,称为后向纠错。ARQ是一种后向纠错算法。二是发送端在发送数据时加入一定的冗余信息,以便在出现误码时接收端可以直接进行纠错,称为前向纠错。FEC是一种前向纠错算法。全称为Forward Error Correction。
二、常用的编码
1、重复码
在数据中增加冗余信息的最简单方法,就是将同一数据重复多次发送,就是重复码。重复码的传输效率很低。
2、分组码
为了提高传输效率,将k位信息比特分为一组,增加少量多余码元,共计n位,就是分组码。包含k位信息比特的n位分组码,记为(n,k)分组码。分组码中的(n-k)位多余码元是用于检测和纠错的,称为监督码元或校验码元,仅仅监督码组中的k个信息比特。
3、奇偶校验码
最简单的分组码就是奇偶校验码,其监督码元只有1位。奇偶校验码只有1位监督码元,只能发现奇数个错误,但不能纠正错误。
检错,收到1个码字,对所有位做异或,如果为0,正确;如果为1,错误。
纠错,奇偶校验码只能检测奇数个错误,不能纠正错误。
4、汉明码
汉明码就可以检测2位错误,纠正1位错误。以(7,4)汉明码为例,信息码元为4位,监督码元为3位。
a2是a6、a5、a4的偶校验码,因此:a6⊕a5⊕a4⊕a2=0
a1是a6、a5、a3的偶校验码,因此:a6⊕a5⊕a3⊕a1=0
a0是a6、a4、a3的偶校验码,因此:a6⊕a4⊕a3⊕a0=0
汉明码的16个码字
检错过程,分别对3组偶校验码的所有位做异或,得到s2、s1、s0:
s2=a6⊕a5⊕a4⊕a2
s1=a6⊕a5⊕a3⊕a1
s0=a6⊕a4⊕a3⊕a0
根据计算结果s2s1s0,可以判断出是否出错,如果出错,具体是哪个码元出错。若无错误,则s2s1s0=000。
若信息码元a6错误,则s2s1s0=111;若信息码元a5错误,则s2s1s0=110;若信息码元a4错误,则s2s1s0=101;若信息码元a3错误,则s2s1s0=011。
如果监督码元a2错误,则s2s1s0=100;如果监督码元a1错误,则s2s1s0=010;如果监督码元a0错误,则s2s1s0=001。
纠错过程,在发现错误位后,只要将对应位取反,0改为1,1改为0,就完成了纠错。