You are on page 1of 2

HDB3

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.

Summary of HDB3 encoding rules


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

"10000110"

encoded in HDB3 is
"+000V-+0"

(the corresponding encoding using AMI is " + 0 0 0 0 - + ").

Example 2 of HDB3 encoding

The pattern of bits

"1010000011000011000000"

encoded in HDB3 is " + 0 - 0 0 0 V 0 + - B 0 0 V - + B 0 0 V 0 0 " which is:

"+0-000-0+-+00+-+-00-00"

(the corresponding encoding using AMI is " + 0 - 0 0 0 0 0 + - 0 0 0 0- + 0 0 0 0 0 0 ").

You might also like