High Density Bipolar Order 3 Encoding (HDB3)
High Density Bipolar Order 3 Encoding (HDB3)
Extra information for course - not included in assessment.
The HDB3 code is a bipolar signaling technique (i.e. relies on the transmission of both positive and negative pulses). It is based on Alternate Mark Inversion (AMI), but extends this by inserting violation codes whenever there is a run of 4 or more 0's. This and similar (more complex) codes have replaced AMI in modern distribution networks.
HDB3 Encoding Rules
The encoding rules follow those for AMI, except that a sequence of four consecutive 0's are encoding using a special "violation" bit. This bit has the same polarity as the last 1-bit which was sent using the AMI encoding rule. The purpose of this is to prevent long runs of 0's in the data stream which may otherwise prevent a DPLL from tracking the centre of each bit. Such a code is sometimes called a "run length limited" code, since it limits the runs of 0's which would otherwise be produced by AMI.
By introducing violations, extra "edges" are introduced, enabling a DPLL to provide reliable reconstruction of the clock signal at the receiver. This encoding rule is said to make HDB3 transparent to the sequence of bits being transmitted (i.e. whatever data is sent, the DPLL will be able to reconstruct the data and extract the bits at the receiver).
One refinement is necessary, to prevent a dc voltage being introduced by excessive runs of zeros. This refinement is to encode any pattern of more than four bits as B00V, where B is a balancing pulse. The value of B is assigned as + or - , so as to make alternate "V"s of opposite polarity.
The receiver removes all Violation pulses, but in addition a violation preceded by two zeros and a pulse is treated as the "BOOV" pattern and both the viloation and balancing pulse are removed from the receieved bit stream. This restores the original bit stream.
Transmitted Data | HDB3 Encoded Pattern |
0 | 0 |
1 | Alternate Mark Inversion (AMI) |
0000 | 000V (three 0's and a violation) |
0000 0000 | B00V B00V |
Example 1 of HDB3 encoding
The pattern of bits
" 1 0 0 0 0 1 1 0 "
encoded in HDB3 is
" + 0 0 0 V - + 0 "
(the corresponding encoding using AMI is " + 0 0 0 0 - + ").
Example 2 of HDB3 encoding
The pattern of bits
" 1 0 1 0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0 0 0 0 "
encoded in HDB3 is " + 0 - 0 0 0 V 0 + - B 0 0 V - + B 0 0 V 0 0 " which is:
" + 0 - 0 0 0 - 0 + - + 0 0 + - + - 0 0 - 0 0 "
(the corresponding encoding using AMI is " + 0 - 0 0 0 0 0 + - 0 0 0 0- + 0 0 0 0 0 0 ").