# AMI, ones density, and zero code suppression

To reduce crosstalk on T1 and E1 trunks, and to eliminate DC bias, each 1 bit on the trunk is sent with the opposite electrical polarity of the preceding 1 bit. This transmission method is called alternate mark inversion (AMI).

Zero bits are sent as intervals of zero voltage. Multiple zeros in a row appear at the receiving end as one long interval of no voltage. If these gaps are too long, it is difficult for the receiving end to maintain framing synchronization with the transmitting end. Algorithms used in T1 and E1 transmissions solve this problem by ensuring that sufficient ones (enough ones density) keep the transmitting and receiving ends synchronized. These algorithms, called zero code suppression algorithms, are described in the following table:

Algorithm | Description
B8ZS - binary 8-zero suppression | Used with ISDN protocols. To send an interval of successive zeroes, the sending end replaces the zeroes with a pattern of ones and zeroes in which bipolar violations occur; that is, one or more successive ones are sent with the same polarity, disrupting the AMI pattern. The pattern of bipolar violations is recognized at the receiving end and turned back into zeroes.
HDB3 | High density bipolar 3 code uses patterns of bipolar violations to replace sequences of 4 zero data bits in order to maintain ones density on clear channel transmission.
Jammed-bit 7 zero code suppression | In an interval of zeroes, the sending end jams every bit 7 high so the receiving end can recognize it. This method sacrifices data integrity, but quality is sufficient for voice transmissions.
No zero code suppression | Zero code suppression disabled.

CG boards configured as E1 boards can be set up to transmit without zero code suppression, or to use the high density bipolar 3 code (HDB3) algorithm. In HDB3, sequences of 4 zero data bits are replaced by patterns of bipolar violations.

When configuring a CG board, use the NetworkInterface.T1E1[x].LineCode keyword to specify which algorithm to use. For more information, refer to the CG board documentation.