由于教科书中没有详细说明HDB3码的编码方式,在查阅了多部参考书后,特别对HDB3码的编码方式进行了如下总结
步骤:(以下步骤是,对于存在4连零0000的原代码,将不存在4连零的原代码作为AMI代码进行编辑后得到的HDB3代码。 )
原代码的前一个“1”代码用1表示(注:不再像大多数书说的那样先写AMI代码),如001000011写0010000011。
检查四连零情况,将四连零编成一组,代替变换节,将0000的最后0替换为v,表示为000V。
检查相邻v中间非零码的个数,相邻v之间有奇数个非零码,表示为000V;有偶数个非零码,表示为B00V。
对“1”“b”标注符号,首先把“1”和“b”看成一个整体,保证这个整体按正负交替规律变化。
给“v”加上符号,保证v与其前非零符号的符号相同(这也是在最后一个B00V符号段中b和v符号始终相同的原因)。
整理,根据需要将b和v替换为1。 导出HDB3代码。
原理:
“V”码称为破坏码(Violate ),它的加入破坏了原来正负交替的规律。 “b”码被称为平衡码(Balance ),之所以引入b,是因为如果两个相邻v之间存在偶数个非零码,则“v”不满足正负极性交替的法则,加上b进行平衡。
例如:
原代码: 100001000000100000010000000000
: 100000110000000100000000000
:1000v01000v000v100v100v100 (注: 8连零时,两v之间无非零代码,为偶数时处理。 )
) 100 v01 b0vb0v 1000 v10 v 1000 v 1000 v 100
:100v0-11-b0vB0v-100v10000v10
) 100V0-11-B0-VB0V-100-V10
:根据需要,将b和v替换为1。 B和V只是为了表示该非零代码是从原始代码的0转换而来的。