In telecommunication, bipolar encoding is a type of line code, where two nonzero values are used, so that the three values are +,-, and zero. Such a signal is called a duobinary signal. Bipolar encoding typically has at least a rough a balance of +'s and -'s.
Alternate mark inversion
One kind of bipolar encoding is a paired disparity code. The simplest example of this is alternate mark inversion. In this code, a binary 0 is encoded as zero volts, as in unipolar encoding, whereas a binary 1 is encoded alternately as a positive voltage or a negative voltage. The name arose because, in the context of a T-carrier, a binary '1' is referred to as a "mark", while a binary '0' is called a "space".
The use of a bipolar code prevents a significant build-up of DC, as the positive and negative pulses average to zero volts. Little or no DC-component is considered an advantage because the cable may then be used for longer distances and to carry power for intermediate equipment such as line repeaters. The DC-component can be easily and cheaply removed before the signal reaches the decoding circuitry.
Synchronization and Zeroes
Bipolar encoding is preferable to non-return-to-zero whenever signal transitions are required to maintain synchronization between the transmitter and receiver. Other systems must synchronize using some form of out-of-band communication, or add frame synchronization sequences that don't carry data to the signal. These alternative approaches require either an additional transmission medium for the clock signal or a loss of performance due to overhead, respectively. A bipolar encoding is an often good compromise: runs of ones will not cause a lack of transitions.
However, long sequences of zeroes remain an issue. Long sequences of zero bits result in no transitions and a loss of synchronization. Where frequent transitions are a requirement, a self-clocking encoding such as return-to-zero or some other more complicated line code may be more appropriate, though they introduce significant overhead.
The coding was used extensively in first-generation PCM networks, and is still commonly seen on older multiplexing equipment today, but successful transmission relies on no long runs of zeroes being present. No more than 15 consecutive zeros should ever be sent to ensure synchronization.
T-carrier uses robbed-bit signaling: the least-significant bit of the byte is simply forced to a "1" when necessary.
The modification of bit 7 causes a change to voice that is undetectable by the human ear, but it is an unacceptable corruption of a data stream. Data channels are required to use some other form of pulse-stuffing, such as always setting bit 8 to '1', in order to maintain a sufficient density of ones.
If the characteristics of the input data do not follow the pattern that every eighth bit is '1', the coder using alternate mark inversion adds a '1' after seven consecutive zeros to maintain synchronisation. On the decoder side, this extra '1' added by the coder is removed, recreating the correct data. Using this method the data sent between the coder and the decoder is longer than the original data by less than 1% on average. Of course, this lowers the effective data throughput to 56 kbit/s per channel.
Another benefit of bipolar encoding compared to unipolar is error detection. In the T-carrier example, the bipolar signals are regenerated at regular intervals so that signals diminished by distance are not just amplified, but detected and recreated anew. Weakened signals corrupted by noise could cause errors, a mark interpreted as zero, or zero as positive or negative mark. Every single-bit error results in a violation of the bipolar rule. Each such bipolar violation (BPV) is an indication of a transmission error. (The location of BPV is not necessarily the location of the original error).
Other T1 encoding schemes
For data channels, in order to avoid the need of always setting bit 8 to 1, as described above, other T1 encoding schemes (Modified AMI codes) ensure regular transitions regardless of the data being carried. In this way, data throughput of 64 kbit/s per channel is achieved. B8ZS is a newer format for North America, where HDB3 is the original line coding type used in Europe and Japan.
A very similar encoding scheme, with the logical positions reversed, is also used and is often referred to as pseudoternary encoding. This encoding is otherwise identical.
|Wikimedia Commons has media related to AMI code.|