《计算机网络体系结构》学习笔记之 第三章 数据通信基础(四)

•第八节检错纠错技术
按照差错控制编码的不同功能,可以将其分为检错码、纠错码和纠删码。检错码仅能检测误码;纠错码则兼有纠错和检错能力,当发现不可纠正的错误时可以发出错误指示。
按照信息码元和附加的监督码元之间的检验关系,又可分为线性码和非线性码。若信息码元与监督码元之间的关系为线性关系,即满足一组线性方程式,则称为线性码。反之,则称为非线性码。常用的差错控制编码一般均为线性码,其中包含分组码和卷积码。
一、分组码
一个 (n,k) 分组码,其码字长度为 n 个比特,信息位有 k 位,监督码元有 n-k 位,分组码可以看作是从 2 k 个长为 n 的码字中选择其中 2 k 个码字,作为许用码字与 2 k 个信息码字一一对应,其余 2 n -2 k 个码字为禁用码字。
1.分组码的基本参数
(n,k) 分组码的编码率定义为 Rc k/n ,任一个码字所含的非 0 元素的个数,称为该码字的汉明重量,每个码字均有其重量。两个码字的对应位为不同码元的个数,则被称为两个码字之间的汉明距离。
(n,k) 线性分组码中,任意两个不同码字之间的距离最小值,称为该分组码的最小汉明距离 dmin ,它表征了各码字之间的差异程度,若 dmin 越大,分组码字之间差别越大,则发生差错的概率越小,纠、检错的能力超强,实际上 dmin 与分组码的纠、检错能力存在以下关系:
(1) dmin>=e+1 时,可检出 e 个错码;
(2) dmin>=2t+l 时,具有纠正 t 个错误的能力;
(3) dmin>=t+e+1(e>t) ,具有同时检 e 个错,纠 t 个错的能力。
2.校验矩阵与生成矩阵
引入检验矩阵和生成矩阵的概念,以说明线性分组码的编码原理。构造一个 (7 4) 分组码,设四个信息元为 C 6 C 5 C 4 C 3 三个监督码元为 C 2 C 1 C 0 ,该码字为 C [C 6 C 5 C 0 ] 。由生成矩阵 G 可以求得 C 2 C 1 C 0
取生成矩阵
三、奇偶校验码
奇偶校验码是最简单的检错码,由于实现起来比较容易而被广泛采用。这种码的校验关系可以用一个简单的方程来表示。设要传送五比特信息为 C 1 C 2 C 3 C 4 C 5 ,其中 C i 取值 "0" "1"
经过编码以后变成六比特编码码字,其中校验位 C 6 应满足下列关系:
C 1 +C 2 +C 3 +C 4 +C 5 +C 6 0( 1)(3-12)
式中的加法是模 2 加。上式的右边等于零称为偶校验,此时等式的右边含偶数个 1 ;等于 1 就是奇校验,则含奇数个 l
在接收端,将收到 C 1 C 2 C 6 比特进行累加,检查其是否符合式 (3-12) 的关系。如果收到的码组符合奇偶校验关系,则认为传输没有错。应当指出,这里只是说 " 认为 " 传输没有错,实际上,它是可能错的。因为,如果偶数位发生错误,则接收端根据奇偶校验关系仍然认为没有错误。奇偶校验码可以发现所有奇数个错误。在上例中,信息位数 k 5 ,码组位数 n=6 ,所以编码率 Rc 5/6 。奇偶校验码的编码率可以做得很高。
四、水平垂直校验码
水平垂直校验码是在两维上的奇偶校验码。为增加检测出多比特错误和突发错误的可能性,需要通过对数据中每个比特扫描两次来加大校验的复杂性。
水平垂直校验码按照预定数目将数据单元组成一个数据块,每个数据单元本身都有一个奇偶校验码的校验位。每个数据单元的对应位(所有第一位,所有第二位,等等)将通过一个生成器来生成每一个位置上的对应校验位。每个位置因此得到了本身的一个校验位。所有位置的校验位又组成了一个新的数据单元,并附加在数据块的最后。当数据块到达接收方时,它将通过一个校验器。包括奇偶校验码和水平垂直校验码在内的所有校验位必须与预期的校验符合 -- 根据采用的方式不同,要么都是偶校验,要么都是奇校验。接收方于是丢弃校验码并接受数据。如果任何一个值发生错误,接收方立即知道数据块的某一部分在传输中被破坏并因此拒绝接收整个数据块。
3.1(7 4) 循环码的编码过程
节拍
信息组输入
移存器内容
D0D1D2
输出码字
0
0
0
0
0
 
1
1
1
1
0
1
2
0
0
1
1
0
3
1
0
0
1
1
4
0
1
1
0
0
5
 
0
1
1
0
6
 
0
0
1
1
7
 
0
0
0
1
循环码译码器也可用除法电路组成。由于循环码的码字都是 g(x) 的倍式,能被 g(x) 整除,即余式为 0 。因此,可根据接收的码字能否被 g(x) 整除,来判断接收码字是否有错。
设发送的码字是 C(x) ,由信道噪声引起的错误图样是 E(x) ,则译码器收到的码字为 R(x) C(x)+E(x) 。译码器的主要任务就是如何从 R(x) 中得到 E(x) ,然后求得 C(x) ,最后得到信息码 m(x) 。循环码的译码,包括以下三个步骤: (1) 由所收到的 R(z) 计算伴随式 S(x) (2) 根据伴随式 S(z) 求出错误图样 E(z) (3) 计算 R(x)-E(x)=C(x) ,得到译码器输出的估值码字 C'(x) 。如果 C'=C ,则译码正确,否则译码错误。若 C 是非系统码,则必须由 C 求出估值信息 m ,若为系统码, C 中的前 k 位即为信息 m
4.循环冗余校验码(CRC)
CRC 码利用循环码的误码检测特性进行误码检测,它是从循环差错控制编码中分出的一类检错码。循环码的已编码码字可被生成多项式 g(x) 整除。收端可以利用这一特点进行检错,若收码字不能被 g(x) 整除,则有错。由 (n k) 循环码可以导出循环冗余检错码 CRC- m 这种表示方式,其中 m n-k 。常用 CRC-m 编码的生成多项式列于表 3.2
3.2 常用 CRC
检错码
生成多项式
CRC-4
CRC-12
CRC-16
x 4 +x+1
x 12 +x 11 +x 3 +x 2 +1
x 16 +x 15 +x 2 +1
CCITT 建议速率为 2048kbit/s 的基群设备采用 CRC-4 方案。一个 CRC 块的信息位数为 2048 比特。在发端采用循环码编码的生成校验位 C 1 C 2 C 3 C 4 和信息比特一起发往收端。收端将信息比特取出,经再次编码得校验位 C 11 C 12 C 13 C 14 。比较两组校验码字,也可确定传输信道的误码特性。
六、卷积码
卷积码和分组码的不同之处是它在任意给定时间单元内,编码器的 n 个输出不仅与本时间单元的 k 个输入码元有关,而且和前 (m-1) 个时间单元的输入码元有关, m 称为约束度。
此种约束关系使已编码序列的相邻码字之间存在某种相关性,又称记忆特性,使该序列可以看成是输入序列经某种卷积运算的结果,因此而得名。利用此种相关性又导出了维特比( Viterbi )译码算法。它是一种最佳的译码方法,并具有一定的克服突发错误的能力,在 GSM CDMA 移动通信系统和无线接入网中都有应用。

你可能感兴趣的:(网络,职场,学习笔记,结构,休闲,清华大学,体系)