检错编码
奇偶校验码
定义: 奇偶校验码是通过增加冗余位使得码字中1的个数恒为奇数或偶数的编码方法,它是一种检错码。
求校验码:
假如要传输数据为
1100101
,采用奇校验
:
1100101
?
‾
⏟
奇数个
1
⟹
1100101
1
‾
,
原本
4
个
1
,要使得总共奇数个
1
,故校验位取值
1
假如要传输数据为
1100101
,采用偶校验
:
1100101
?
‾
⏟
偶数个
1
⟹
1100101
0
‾
,
原本
4
个
1
,要使得总共偶数个
1
,故校验位取值
0
\begin{array}{lcl} 假如要传输数据为1100101,采用奇校验:\\ \underset{奇数个1}{\underbrace{ 1100101\underline{? }}}\Longrightarrow 1100101\underline{1 },原本4个1,要使得总共奇数个1,故校验位取值1\\\\ 假如要传输数据为1100101,采用偶校验:\\ \underset{偶数个1}{\underbrace{ 1100101\underline{? }}}\Longrightarrow 1100101\underline{0},原本4个1,要使得总共偶数个1,故校验位取值0 \end{array}
假如要传输数据为1100101,采用奇校验:奇数个1
1100101?⟹11001011,原本4个1,要使得总共奇数个1,故校验位取值1假如要传输数据为1100101,采用偶校验:偶数个1
1100101?⟹11001010,原本4个1,要使得总共偶数个1,故校验位取值0
校验码检错:
只能检测奇数个位出错,不能确定出错位置,不能检测偶数个位出错
假设要传输数据为
1100101
,采用奇校验,即发送数据
11001011
1100101
1
‾
→
第
1
位出错
1100101
0
‾
→
检验,发现共偶数个(
4
个
)
1
,
出错
检测到错误
1100
1
‾
011
→
第
4
位出错
1100
0
‾
011
→
检验,发现共偶数个
1
,
出错
检测到错误
11001
011
‾
→
第
1
、
2
、
3
位出错
11001
100
‾
→
检验,发现共偶数个
1
,
出错
检测到错误
110
01
‾
011
→
第
4
,
5
位出错
110
10
‾
011
→
检验,发现共奇数个
1
,
没出错
没有检测到错误
\begin{array}{lcl} 假设要传输数据为1100101,采用奇校验,即发送数据11001011\\\\ 1100101\underline{1 }\xrightarrow{第1位出错}1100101\underline{0 }\xrightarrow{检验,发现共偶数个(4个)1,出错}检测到错误\\\\ 1100\underline{1}011\xrightarrow{第4位出错}1100\underline{0}011\xrightarrow{检验,发现共偶数个1,出错}检测到错误\\\\ 11001\underline{011}\xrightarrow{第1、2、3位出错}11001\underline{100}\xrightarrow{检验,发现共偶数个1,出错}检测到错误\\\\ 110\underline{01}011\xrightarrow{第4,5位出错}110\underline{10}011\xrightarrow{检验,发现共奇数个1,没出错}没有检测到错误\\ \end{array}
假设要传输数据为1100101,采用奇校验,即发送数据1100101111001011第1位出错11001010检验,发现共偶数个(4个)1,出错检测到错误11001011第4位出错11000011检验,发现共偶数个1,出错检测到错误11001011第1、2、3位出错11001100检验,发现共偶数个1,出错检测到错误11001011第4,5位出错11010011检验,发现共奇数个1,没出错没有检测到错误
循环冗余校验CRC
海明校验码
不想写了