差错控制的方式 采用检错码的差错控制 采用纠错码的差错控制 不用编码的差错控制 关于帧或分组顺序的差错控制
1.概述 按照噪声或干扰的变化规律,可把信道分为三类: 随机信道:恒参高斯白噪声信道是典型的随机信道,其中差错的出现是随机的,而且错误之间是统计独立的。 突发信道:具有脉冲干扰的信道,是典型的突发信道。错误是成串成群出现的,即在短时间内出现大量错误。 混合信道
差错控制的基本工作方式 前向纠错方式FEC 检错重发方式ARQ 混合纠错方式HEC 信息反馈方式IF 发端发送能够纠正错误的码,收端收到信码后自动地纠正传输中的错误。 特点是单向传输,实时性好,但译码设备较复杂。 检错重发方式ARQ 发端发送检错码,收端收到信码后能够检查出错误。 混合纠错方式HEC 是FEC和ARQ方式的结合。 信息反馈方式IF 收端将接收的消息原封不动地送回发端,由发端将反馈信息和原发送信息进行比较,发现错误进行重发,其优点是方法和设备简单,无需纠(检)错编译系统。
差错控制编码的分类 按照差错控制编码的用途:检错码、纠错码和纠删码。 按照信息码元和监督码元之间的函数关系:线性码和非线性码。 按照对信息元处理方式的:分组码和卷积码。 按照码组中信息码元在编码前后是否相同:系统码和非系统码。 按照纠(检)错误的类型:纠(检)随机错误码、纠(检)突发错误码和既能纠(检)随机错误同时又能纠(检)突发错误码。 按照每个码元的取值:二进码和多进码。
差错控制编码的基本原理 差错编码的基本思想是在被传输信息中增加一些冗余码,利用附加码元和信息码元之间的约束关系加以校验,以检测和纠正错误,增加冗余码的个数可增加纠检错能力。
码长、码重、码距 编码码组的码元总位数称为码组的长度,简称码长。 码组中,“1”码元的数目称为码组的重量,简称码重。 两个等长码组之间对应位上码元不同的数目称为这两个码组的距离,简称码距。
编码效率 R=d/(d+r) 用差错控制编码提高通信系统的的可靠性,是以降低有效性为代价换来的。定义编码效率R来衡量有效性:
2.常用的几种简单编码 奇偶监督码 行列监督码 恒比码 奇偶监督码是在原信息码后面附加一个监督元,使得码组中“1”的个数是奇数或偶数,或者说,它是含一个监督元,码重为奇数或偶数的(n,n-1)系统分组码。奇偶监督码又分为奇监督码和偶监督码。 行列监督码 奇偶监督码不能发现偶数个错误。为了改善这种情况,引入行列监督码。这种码不仅对水平(行)方向的码元,而且对垂直(列)方向的码元实施奇偶监督。 恒比码 码字中1的数目与0的数目保持恒定比例的码称为恒比码。由于恒比码中,每个码组均含有相同数目的1和0,因此恒比码又称等重码,定1码。这种码在检测时,只要计算接收码元中1的个数是否与规定的相同,就可判断有无错误。
3.线性分组码 线性分组码的定义和特点 线性分组码,是指信息码元与监督码元之间的关系可以用一组线性方程来表示的分组码,即在(n,d)分组码中,每一个监督码元都是码组中某些信息码元按模2和而得到的,线性分组码是一类重要的纠错码,应用很广。
汉明码 汉明码是一类常见的线性分组码,是一种能够纠正单个错误的完备码。要纠正码组中的单个错误,则要求与单个错误图样对应的伴随式各不相同,且不能为全零。若码长为n,监督码元的个数为r,则要求2r-1≥n。码组为汉明码时取等号。即用来纠正单个错误时,汉明码所用的监督码元个数最少,效率最高。
循环码 循环码是另一类重要的线性分组码,它除了具有线性码的一般性质外,还具有循环性,即循环码组中任一码组循环移位所得的码组仍为该循环码中的一许用码组。
CRC码的原理 如果有r个校验码元,其中每一个校验码元是该码元组中某些信息码元的模2和,由此组成的一组长为n=k+r的码,称为线性码, 假定我们构成(n=7,k=3)这样的线性码,若已知三个信息码元为C6、C5和C4,而校验码元C3、C2、C1和C0是未知的。校验码元与信息码元间的关系是根据以下四个线性关系式确立的。
CRC码的原理
CRC码的原理 按上页编出的线性码 息码元 码 组 C6 C5 C4 C3 C2 C1 C0 1
CRC码的原理 当我们从表中任意挑选出两个码组时,将对应比特按模2相加,所得到的新码组仍然是上页表中的某一码组。这说明由8个码字组成的线性码具有封闭性。 封闭性是线性码的一个重要特性。
CRC码的原理 假设待传送的数据 M (k bit)。我们在M的后面再添加供差错检测用的 r bit 冗余码一起发送。 用二进制的模 2 运算进行 2r 乘 M 的运算,这相当于在 M 后面添加 r 个 0。 得到的 (k + r) bit 的数除以事先选定好的长度为 (r + 1) bit 的数 G,得出商是 Q 而余数是 R,余数 R 比除数 G 至少要少1 个比特。
例子 设 M = 1010001101,r = 5,G = 110101,模 2 运算的结果是: 商 Q = 1101010110, 将余数 R 作为冗余码添加在数据 M 的后面发送出去,即发送的数据是101000110101110,或 2rM + R。
例子 1101010110 ← Q 商 除数 P → 110101 101000110100000 ← 2nM 被除数 110101 111011 111010 111110 101100 110010 01110 ← R 余数
采用纠错码的差错控制 Hamming于1950年在美国贝尔实验室提出了海明码,是第一个用来纠错的线性码,被广泛地应用在数据通信和数据存储系统的差错控制中。 所谓海明校验实质上是奇偶校验,是分组奇偶校验。
海明校验码 P1P21P3000P4101 分组 编码,设发送与接收双方均采用奇校验,则P1 = 0,P2 = 1,P3 = 1,P4 = 1 发送端发送的比特流为01110001101 组 P1 P2 1 P3 P4 √ 2 3 4