大纲
一、编码和调制
1.曼彻斯特码
编码
一个周期(两两一组)内必是跳转电平(01或10)
- 1:
10
- 0:
01
信息块
两位起始位:
10
编码
两位结束位:
00
解码
每bit解码再组合
- 10:1
- 01:0
判断
各种干扰和多设备同时发送可能会使收到的编码错误。
在判断编码数据是否正确时,我们需要检查每组数据(每两位)是否符合曼切斯特编码规则(1表示为10,0表示为01)。
案例
正确案例:
原始数据:
1101
曼彻斯特编码:
10 10 01 10
信息块(起始+编码+结束):
10 10 10 01 10 00
错误案例:
编码:
10 10 11 01
判断:第3组(11)不符合曼彻斯特编码规则。
编码:
10 10 11 10
判断:第3组(11)不符合曼彻斯特编码规则。
编码:
10 10 00 10
判断:第3组(00)不符合曼彻斯特编码规则。
求NRZ码值
对编码部分解码即NRZ
码值
曼彻斯特码读入串(信息块):
10 10 01 01 10 01 00
去除起始位和结束位:
10 01 01 10 01
NRZ
(解码):10010
2.密勒码
编码
跳转与前一个的编码有关。编码规则与原数据有关,跳变即0->1或1->0
每个数字被编码为一个字节,第一个是起始位置,后一个为中间位置。
信息块
两位起始位:
10
编码
两位结束位:
00
解码
每bit解码再组合。密勒码解码有两种。
10或01:1
11或00:0
案例
原数据:
10110010
编码[假设开始时
bit (i-1)=1
(与第一个数相同)]:注意看表规则
- 原数据第一位是1,根据表格前一位不需要,而
bit(i-1)
是1,起始位不跳转还是1
,中间位跳转是0
,则第一位编码为10
- 原数据第二位是0,前一位是1,根据前一位的编码(10)末尾0,此时的
bit(i-1)
更新为0,根据编码规则,起始位不跳转还是0
,中间位不跳转是0
,则第二位编码为00
- 原数据第三位是1,根据表格前一位不需要,根据前一位的编码(00)末尾0,此时的
bit(i-1)
为0,起始位不跳转还是0
,中间位0跳转是1
,则第三位编码为01
- 其余同理….…
- 原数据最后一位是0,前一位是1,根据前一位的编码(10)末尾0,此时的
bit(i-1)
为0,起始位不跳转还是0
,中间位不跳转是0
,则最后一位编码为00
编码结果:
10 00 01 10 00 11 10 00
即下方图片:
求NRZ码值
对编码部分解码即NRZ
码值
密勒码读入串(信息块):
10 00 01 10 00 11 10 00
去除起始位和结束位:
00 01 10 00 11 10
NRZ
(解码):011001
二、数据校验
1.分类
2.CRC循环冗余码
算法步骤
注意多项式和信息码的转换
如: M ( X ) = X 6 + X 4 + x 3 + 1 M(X)=X^6+X^4+x^3+1 M(X)=X6+X4+x3+1即 1 ∗ X 6 + 0 ∗ X 5 + 1 ∗ X 4 + 1 ∗ x 3 + 0 ∗ X 2 + 0 ∗ X 1 + 1 ∗ X 0 1*X^6+0*X^5+1*X^4+1*x^3+0*X^2+0*X^1+1*X^0 1∗X6+0∗X5+1∗X4+1∗x3+0∗X2+0∗X1+1∗X0
则信息码为系数:1011001
根据多项式