微信公众号上线,搜索公众号小灰灰的FPGA,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等
1、分组码
将信息码分组,为每组信息码附加若干监督码的编码称为分组码
监督码元仅监督本码组中的信息码元
分组码一般用符号(n,k)表示
n表示码组的总位数,又称为码组的长度(码长)
k表示码组中信息码元的数目
r=n-k表示码组中的监督码元的数目,或监督位数目
2、分组码的结构
前k位为信息位,后面附件r个监督位
3、码重与码距(汉明距离)
在分组码中,把码组中“1”的个数目称为码组的重量,即码重
把两个码组中对应位上数字不同的位数称为码组的距离,即码距或汉明距离
把某种编码中各码组之间距离的最小值称为最小码距d0
4、一个纠错编码的示例
用3位二进制数字构成的码组,共有8中不同组合。
(1)若用来表示天气,则可表示8中不同天气,如下:
“000”——晴
“001”——云
“010”——阴
“011”——雨
“100”——雪
“101”——霜
“110”——雾
“111”——雹
如果上述中任一码组在传输中发送一个或多个错码,则将变成另一个信息码组,接收端将无法发现错误。
(2)若只准使用4种码组来传送天气,即:
“000”——晴
“011”——云
“101”——阴
“110”——雨
若上述中任一码组在传输中发送错码,接收端有可能发现码组中的错码
比如“000”(晴)传输过程中出现一位错码,接收码组可能变成“001”或者“010”或“100”,这三种码组均是不准使用的,为禁用码组;
若“000”(晴)传输过程中出现三位错码,接收码组变成“111”,也为禁用码组;
若“000”(晴)传输过程中出现两位错码,接收码组检测后的码组仍为许用码组。
(3)若不需要检错和纠错,则传输4种不同的消息,用两位码组“00”、“01”、“10”、“11”即可。故此两位称为信息码,再每个码组中增加一位监督位。信息码和监督码共同构成了分组码
(4)分组码中码组的长度(码长)n=3,信息码元的数目k=2,监督码元的数目r=1,由此上述分组码可表示为(3,2),且最小码距d0=2。
对于3位的编码组,采用三维空间说明码距的几何意义。
每个码组的3个码元的值(a1,a2,a3)表示立方体各顶点的坐标。
码距即对应各顶点之间沿立方体各边行走的几何距离。
4个码组之间的距离均为2,即d0=2。
5、编码的最小码距d0与编码的检错和纠错能力
(1)为检测e个错码,要求最小码距:d0≥e+1
一个码组A位于0点,若码组A发送一个错码,则A的位置随机出现在以0为圆心,1为半径的圆内,但不会超出此圆。若码组A发送两个错码,则A的位置随机出现在以0为圆心,2为半径的圆内,但不会超出此圆。码组A发生两位及以下错码时,需要保持最小码距不小于3。
故若一种编码的最小码距为d0,则能检测(d0-1)个错码。
若要检测e个错码,要求最小码距d0至少不小于(e+1)。
(2)为了纠正t个错码,要求最小码距:d0≥2t+1
码组A和码组B的距离为5。码组A或B发生不多于两位错码,则位置均不会超过以原位置为圆心,半径为2的圆。两个圆是不重叠的。
由此可以判决码组A和码组B,若接收码组落于以A为圆心的圆上判决为码组A,若接收码组落于以B为圆心的圆上判决为码组B。
当最小码距d0=5时,最多能纠正两个错码。一旦错码达到三个,接收码组将落入另一码组圆上,从而发生错判。
故为纠正t个错码,最小码距应不小于(2t+1)。
(3)为了纠正t个错码,同时检测e个错码,要求最小码距:
d0≥e+t+1且e>t
使某一码组(以码组A为例)发生e个错码之后,所处的位置,与其他码组(码组B)的纠错圆圈至少距离等于1,否则将落在该纠错圆上,从而发生错误地“纠正”。
故要求最小码距不小于(e+t+1),且e>t。
6、纠错编码的性能
为了减少接收错误码元数量,需要在发送信息码元中加入监督码元。
发送序列增长,冗余度增大,保持发送信息码元速率不变,需要增大传输速率,增大系统带宽,将引起系统中噪声功率增大,信噪比下降。
信噪比现将又使得系统接收码元序列中的错码增多。
故采用纠错编码,误码率与所用的编码相关,需评估系统改善的性能。
(1)信噪比保持7dB
图中A点,在未采用纠错编码,误码率约为8×10^(-4)
图中B点,在采用纠错编码后,误码率约为4×10^(-5)
不增大发送功率即可降低误码率一个半数量级。
(2)保持误码率10^(-5)
图中C点,在未采用纠错编码,信噪比为9.5dB
图中A点,在采用纠错编码后,信噪比为7.5dB
节省功率2dB,即编码增益为2dB。
(3)传输速率和信噪比Eb/n0的关系
Eb/n0=(Ps×T)/n0=Ps/(n0×(1/T))=Ps/(n0×RB)
RB为码元速率
系统从C点,提高传输速率到E点,信噪比下降,误码率增大。
使用纠错编码,将误码率降低原来水平D点,则仍需要增大带宽。