ch3常用差错控制编码方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。


差错控制的核心就是抗干扰编码,为 了提高通信系统的检错和纠错能力,人们 创造出许多差错控制编码,比较常用的有 奇偶校验编码、循环冗余校验编码、卷积 码等。
3.3.1
奇偶校验编码
• 又称奇偶监督编码,或垂直冗余校验(VRC, Vertical Redundancy Check),在计算机数 据传输中应用广泛。 • 编码规则:
– 发送端,将所要传输的数据码元分组,在分组 数据后面加一位监督码(校验位),使得该组 码连同监督码在内的码组中“ 1” 的个数为奇数 (奇校验)或偶数(偶校验)。 – 接收端,按照编码规则检查如果发现不符,就 说明产生差错,但不能明确差错的具体位置即 不能纠错。
奇偶校验编码
• 公式表示:设码组长度为n,表示为 (an-1,an-2……,a1,c0)其中前n-1位为信息 位,第n位c0为监督位
6.CRC码生成器和校验器
• 循环冗余码生成器采用模2除法。下图显 示了这一过程。 • CRC校验器的功能完全像发生器一样, 当收到附加了CRC码的数据后,做同样 的模2 除法。如果余数是全0,则将CRC 码丢弃,接受数据。否则,丢弃收到的 数据。
CRC校验码的生成器和校验器
数据 r个比特0数据
5.多项式
• 任何一个二进制数序列可以和一个只含有
0和1两个系数的代数多项式建立起一一对 应的关系。因此,用来求CRC码的那个除 数通常用多项式来表示。原因如下:
– 代数多项式很短 – 可以通过多项式来进行概念的数学证明。
多项式
• 任何一个n位的二进制数都可以用一个n-1 次的 多项式来表示,这种多项式叫码多项式(又叫信息 多项式) 。

1 2
全“0” 4个“1” 一个“0”
无错 信息码中有一位出错, 出错位置就是检验码组 中0所对应的位置
3
4个“0” 一个“1”
监督码中有一位出错, 出错位置就是检验码组 中1所对应的位置
差错个数>1个
4
其他
实例:
• 已知信息码11010使用正反码差错控制方式, 试问下列接收端收到的数据是否有错?能 否纠正? ① 11010 11010 ② 10010 11010 ③ 11010 01010 ④ 10000 11010
• (1) 编码:11010(信息码)11010 (监督码)→11010 11010(正反码) • (2) 解码:
– ①接收端11010 11010 – ②接收端10010 11010 – ③接收端11010 01010 – ④接收端10000 11010
• 判断:
• • • •
11010 + 11010 00000 结果为0,正确。
1.பைடு நூலகம்RC校验基本思想
• CRC校验的基本思想是: (1) 根据欲发的 k 位信息生成一个 r 比特的序 列 , 称 为 帧 校 验 序 列 FCS ( Frame checking Series)。 ( 2 )求出实际发送的数据帧( k+r 位),这 个帧所对应二进制序列恰好能够被某个预先 确定的数(生成多项式)整除。 (3)接收器用相同的数(生成多项式)去除 传来的帧。如果无余数,则认为无差错;如 果余数不为0,刚认为传输出错。
• 码多项式与二进制序列之间的一一对应关系:
– (an-1 an-2……a1a0)N – A (x)= an-1Xn-1+an-2Xn-2 +……+a1X+a0X0
码多项式
多项式
二进制序列实例
1011011 x6+x4+x3+x+1

• 以n=3位二进制数为例 二进制数 对应多项式 000 0 1 001 x 010 x+1 011 x2 100 2+1 x 101 111 x2+ x+1
码多项式
• 生成多项式G(x):
– 求CRC码时所用的“除数”所对应的多项 式叫生成多项式。
• 在串行通信中通常使用下列三种生成多 项式G(X)来产生CRC码。
–CRC-16:G(x)=X16+X15+X2+1,美国二进制同 步系统中采用。 –CRC-CCITT:G(x)=X16+X12+X5+1,CCITT推荐。 –CRC-32:G(x)=X32+X26+X23+X22+ X16+X12+ X11+X10+X8+1X7+ X5+X4+X2+X+ 1
• • •
10010 + 01101 11111
• 由于接收信息码中为偶数个1,所以检验码取反, 11111,1的个数大于1,结果错误,不能纠正
• • •
10000 + 01010 01010
• 检验码中1的个数>1,根据判决4,无法判断和纠错
3.3.5 循环冗余校验编码(CRC)
• Cyclic Redundancy checking (CRC)循环 冗余校验,又称多项式码。 • 在循环冗余校验中,不是通过将各比特位 相加来得到期望的校验,而是通过在数据 单元末尾加一串冗余比特,称作循环冗余 校验码或循环冗余校验余数,使得整个数 据单元可以被另一个预定的二进制数所整 除。
x +x4+x2+x 110110
5
码多项式
• 码多项式运算法则:
– 二进制码多项式的加减运算为⊕模2加运算, 即两个码多项式相加时,对应项系数进行模 2加减。 – 乘除运算与普通多项式类似;
• 模2加减:即各位做不带进位、借位的按 位加减。这种加减运算实际上就是逻辑 上的异或运算。即加法和减法等价。
3.3.4 正反码_能简单纠错的编码
• 多用于10单位电码的前向自动纠错设备中, 能纠正一位差错,发现大部分两位错,差错 编码和差错控制结合起来控制。以10单位电 码为例:
– n=k+r 且 k=r=5
• 1.编码规则:
– (1)当信息码中“1”的个数为奇数时,监督码与 信息码相同(正码)10101 10101 – (2)当信息码中“1”的个数为偶数时,监督码与 信息码相反(反码)10100 01011
方阵校验码
• 特点:
– 可以检测出某行某列上的奇数个错误和长度 不大于行(列)数的突发错误。 – 可以检测出某行或某列上偶数个错误 –不能纠正差错数正好是4的倍数且位置在行 列矩阵/子矩阵的4个顶点上的差错
失效!!!
信息码元 1 1
1 1 1 0
监督码元(偶) 1
0 1
1
0 0
0
1 0
0
0 0
0
• • •
10000 + 01010 01010
• 检验码中1的个数>1,根据判决4,无法判断和纠错
作业
• 已知信息码10010使用正反码差错控制方式, 试问下列接收端收到的数据是否有错?能 否纠正? ① 11010 01101 ② 10010 10010 ③ 10010 01101 ④ 10010 01001
X
X X
X
X X
X
X X
X
X X
X
X X
X
X X
X
X X
X
X X


实例
信息码元 监督码元(偶) 1 1 1 0 0 1 0 0 1 1 0 1 0 0 1 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 0 1 1 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 发送端在发送时则按列(或行)的顺序传输:111010 110011 100001 010100 ……001111 接收端仍将码元排成发送时方阵形式,然后按行、列 进行奇偶校验
2.CRC校验常用场合
• 奇偶校验对一个字符校验一次,适合异 步通讯;而CRC对一个数据块(frame) 校验一次,适合同步通讯。在串行同步 通信中,几乎都使用这种校验方法。如 磁盘信息的读/写等。
3.CRC码的生成
• CRC码生成和校验基本分为三步: – 第一步:在数据单元 (k 位)的末尾加 上r个0。r是一个比预定除数的比特位 数(r十1)少1的数。 – 第二步:采用二进制除法将新的加长 的数据单元( k+r 位 ) 除以除数。由此 除法产生的余数就是循环冗余码校验 码。
1 1
0
0 1
0 0 1 1
0 1
0 0
1
1 0
0
0 1
1
0 1
1
0 1
1
1 1
1
3.3.3 恒比码(定比码)
• 编码规则 :恒比码中每码组中“1”和 “0”个数保持恒定比例,接收端在检测 接收到的码组中“1”的数目是否对就知 道是否出错。 • 实例:
– 我国电传机传输汉字时使用数字代表汉字, 采用的所谓“保护电码”就是一种“3:2” 或“5中取3”的恒比码。 C52=10个许用码 组 – 英文电报采用“7中取3”或“4:3”恒比码,
3.3 常用差错控制编码方法
• 教学目的
–熟悉和掌握各种差错控制编码方法 –掌握各种差错控制编码的应用
3.3 常用差错控制编码方法
• • • • • • 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 奇偶校验编码 方阵校验码 恒比码 正反码 循环冗余校验编码(CRC) 卷积码
???100101101001000?由于接收信息码中为偶数个1所以检验码取反10111信息码中有一位出错根据判决2出错位置就是检验码组中0所对应的位置纠正后为11010???110100101010000?由于接收信息码中为奇数个1所以检验码不变根据判决3监督码码中有一位出错出错位置就是检验码组中1所对应的位置纠正后为11010???100000101001010?检验码中1的个数1根据判决4无法判断和纠错?已知信息码10010使用正反码差错控制方式试问下列接收端收到的数据是否有错能否纠正1101001101100101001010010011011001001001????由于接收信息码中为奇数个1所以检验码不变根据判决2信息码中有一位出错出错位置就是检验码组中0所对应的位置纠正后为10010110100110110111???100101101001000?由于接收信息码中为偶数个1所以检验码取反10111信息码中有一位出错根据判决2出错位置就是检验码组中0所对应的位置纠正后为11010???100100110111111?由于接收信息码中为偶数个1所以检验码取反111111的个数大于1结果错误不能纠正???100000101001010?检验码中1的个数1根据判决4无法判断和纠错335crc?cyclicredundancycheckingcrc循环冗余校验又称多项式码
实例
• 写出下列二进制序列的偶校验码: –①1001110 10011100 –②0101111 01011111

写出下列二进制序列的奇校验码:

①1100101 11001011
②0110010 01100100
3.3.2 方阵校验码
• 又称行列监督码,矩阵码,纵向冗余校验码(LRC, Lognitudinal Redundancy Check),它的码元 受到行和列两个方向奇偶监督,又称二维奇偶校验 码。 • 编码规则:使的每个码元受到纵向(列)和横向两 次监督;
– ①奇校验:an-1⊕an-2⊕……⊕a1⊕c0=1即 – c0= an-1⊕an-2⊕……⊕a1⊕1 –②偶校验 : an-1⊕an-2⊕……⊕a1⊕c0=0 即 c0= an-1⊕an-2⊕……⊕a1
奇偶校验编码
• 特点:
– 无论信息位为多少位,监督位只有一位。 – 只能检测信息码组中奇数个错误,对偶数个 错误无能为力; – 信息位越长,效率越高.
– 将欲发送的信息码按行排成一个矩阵,矩阵中每一行为 一码组,每行的最后加上一个奇偶监督码元; – 矩阵中的每一列是由不同码组相同位置的码元组成,在 每列最后也加上一个监督码元,进行奇偶校验; – 最后按行或列码组的顺序发送。
方阵校验码结构
X X X X X X X X X X X X X X X X
正反码
• 2.解码方法: – (1)将接收到信息码与监督码按相应的 码位模2加(异或),得到一个新的5 位码组。 – (2)根据接收到的信息码中“1”的个数:
• if“1”的个数为奇数,则取新5位码组为校 验码组 • if“1”的个数为偶数,则取新5位码组的反 码为校验码组
正反码判决表
(3),最后可按下表,根据检验码组中“1” 的个数进行判断及纠正可能发现的错码 校验码组的组成 判决差错情况
CRC码的生成
第三步:求CRC循环冗余校验码 (K+r)被除数+r(余数)
如果余数位数小于r,最左的缺省位数为0。 如果余数为0,则r=0。
4.CRC码的校验
• CRC码校验:
– 到达接收方的数据单去除以用来产生 循环冗余校验余数的G(X)。 – 如果余数0,将通过检验。如果余数非 零,将通不过检验。
• • •
10010 + 11010 01000
• 由于接收信息码中为偶数个1,所以检验码取反,10111, 信息码中有一位出错,根据判决2,出错位置就是检验码 组中0所对应的位置,纠正后为11010
• • •
11010 + 01010 10000
• 由于接收信息码中为奇数个1,所以检验码不变,根据判 决3,监督码码中有一位出错,出错位置就是检验码组中1 所对应的位置,纠正后为11010
数据
g(x)
r+1 余数 先发数据位 后发校验位
g(x)
r+1
CRC校验码
r
余数
0接收,非0拒绝
r
发送方
接收方
G(X)
0
• • • •
111010100011010 CRC校验码 信息码 CRC冗余校验码
7.CRC码性能
• CRC码是很有效的差错校验方法。除了正好 数据块的比特值是按除数值变化的错误外, 循环冗余校验(CRC)将检测出其他所有错误。 而且,常用的CRC除数通常有17,或是33 个比特,使得不可检测的错误可能降低到几 乎近于零。 • CRC接收电路再配上适当的硬件电路不仅可 以检错,而且可以纠错,纠错能力很强特别 适合检测突发性错误,在数据通信中得到较 广泛的应用。
• • •
11010 + 01101 10111
对应的位置,纠正后为10010。
• 由于接收信息码中为奇数个1,所以检验码不变,根据判 决2,信息码中有一位出错,出错位置就是检验码组中0所
• • •
10010 + 11010 01000
• 由于接收信息码中为偶数个1,所以检验码取反,10111, 信息码中有一位出错,根据判决2,出错位置就是检验码 组中0所对应的位置,纠正后为11010
相关文档
最新文档