In telecommunication, bipolar encoding is a type of line code (a method of encoding digital information to make it resistant to certain forms of signal loss during transmission). A duobinary signal is such an encoding.
Contents |
A binary 0 is encoded as zero volts as in unipolar encoding. A binary 1 is encoded alternately as a positive voltage and a negative voltage. This 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.[1] The DC-component can be easily and cheaply removed before the signal reaches the decoding circuitry.
Bipolar encoding is preferable to non-return-to-zero where 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 are still 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.
When used on a T-carrier, the code is known as alternate mark inversion because, in this context, a binary '1' is referred to as a "mark", while a binary '0' is called a "space".[2] 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.[3] No more than 15 consecutive zeros should ever be sent to ensure synchronization. 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,[1] 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, resulting that the correct data arrives for the receiver. Due to this, 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.[4]
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).
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.
|