HDB3 编码规则
1. 普通 1(B 脉冲):极性交替;普通 0:输出 0
2. 出现4 个连续 0(0000)时替换:
上一个 V 脉冲到当前 4 连 0 之间,1 的个数为奇数 → 替换为 `000V`
上一个 V 脉冲到当前 4 连 0 之间,1 的个数为偶数(含 0) → 替换为 `B00V`
3. V 脉冲:和它前面最近一个非 0 脉冲同极性;V 脉冲之间极性交替
4. 约定:第一个 “1” 起始极性为 +1
说明:V 是破坏脉冲,B 是新增的调节脉冲
消息码:
`1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1`
分组方便看:
`1 1 | 0 0 0 0 | 0 1 | 0 0 0 0 | 0 0 1 | 0 0 0 0 | 1 1 | 0 0 0 0 | 0 1 | 0 0 0 0 | 1`
### 逐段推导
初始:前一个非 0 电平:无,上一个 V:无
1. 前两个 1:交替`+1,-1`
✅ 最近非 0:-1;无 V
2. 接下来:`0000`(第 1 组 4 连 0)
上一个 V 到这里中间 1 的数量:2 个(偶数)→ 替换成 `B00V`
B 和前一个非 0 (-1) 反相 → B=+1;V 和 B 同极性 → V=+1
本段:`+1 0 0 +1`
现在序列:`+1 -1 +1 0 0 +1`
✅ 最近 V:+1;最近非 0:+1
3. 后面一个 0,再一个 1:正常交替,和前面 + 1 反相 → -1
序列:`+1 -1 +1 0 0 +1 0 -1`
✅ 最近非 0:-1;上 V:+1
4. 接下来 `0000`(第 2 组 4 连 0)
上 V (+1) 到这里中间 1 的个数:1 个(奇数)→ 替换 `000V`
V 和前一个非 0 (-1) 同极性 → V=-1
本段:`0 0 0 -1`
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1`
✅ 最近 V:-1;最近非 0:-1
5. 两个 0,再一个 1:交替,+1
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1`
✅ 最近非 0:+1;上 V:-1
6. 接下来 `0000`(第 3 组 4 连 0)
上 V (-1) 到这里中间 1 的个数:1 个(奇数)→ `000V`
V 和前非 0 (+1) 同极性 → V=+1
本段:`0 0 0 +1`
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1 0 0 0 +1`
✅ 最近 V:+1;最近非 0:+1
7. 两个 1:交替,-1、+1
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1 0 0 0 +1 -1 +1`
✅ 最近非 0:+1;上 V:+1
8. 接下来 `0000`(第 4 组 4 连 0)
上 V (+1) 到这里中间 1 的个数:2 个(偶数)→ `B00V`
B 和前非 0 (+1) 反相 → B=-1;V=-1
本段:`-1 0 0 -1`
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1 0 0 0 +1 -1 +1 -1 0 0 -1`
✅ 最近 V:-1;最近非 0:-1
9. 一个 0,一个 1:交替 +1
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1 0 0 0 +1 -1 +1 -1 0 0 -1 0 +1`
✅ 最近非 0:+1;上 V:-1
10. 接下来 `0000`(第 5 组 4 连 0)
上 V (-1) 到这里中间 1 的个数:1 个(奇数)→ `000V`
V 和前非 0 (+1) 同极性 → V=+1
本段:`0 0 0 +1`
序列:`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1 0 0 0 +1 -1 +1 -1 0 0 -1 0 +1 0 0 0 +1`
11. 最后一个 1:交替,-1
# ✅ 最终完整 HDB3 码(电平)
消息码:
`1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 1`
HDB3 输出:
`+1 -1 +1 0 0 +1 0 -1 0 0 0 -1 0 0 +1 0 0 0 +1 -1 +1 -1 0 0 -1 0 +1 0 0 0 +1 -1`