Digital Transmission

Digital Transmission


In this section, we see how we can represent digital data by using digital signals. The conversion involves three techniques: line coding, block coding, and scrambling. Line coding is always needed; block coding and scrambling may or may not be needed.

The baud or signal rate can be expressed as:
S = c x N x 1/r bauds
where N is data rate
c is the case factor (worst, best & avg.)
r is the ratio between data element & signal element

Topics discussed in this section:

Line Coding
Line Coding Schemes
Block Coding

Line Coding

Converting a string of 1’s and 0’s (digital data) into a sequence of signals that denote the 1’s and 0’s.
For example a high voltage level (+V) could represent a “1” and a low voltage level (0 or -V) could represent a “0”.

Mapping Data symbols onto Signal levels

A data symbol (or element) can consist of a number of data bits:
1 , 0 or
11, 10, 01, ……
A data symbol can be coded into a single signal element or multiple signal elements
1 -> +V, 0 -> -V
1 -> +V and -V, 0 -> -V and +V
The ratio ‘r’ is the number of data elements carried by a signal element.

Relationship between data rate and signal rate

The data rate defines the number of bits sent per sec - bps. It is often referred to the bit rate.
The signal rate is the number of signal elements sent in a second and is measured in bauds. It is also referred to as the modulation rate.
Goal is to increase the data rate whilst reducing the baud rate.

Data rate and Baud rate

The baud or signal rate can be expressed as:
S = c x N x 1/r bauds
where N is data rate
c is the case factor (worst, best & avg.)
r is the ratio between data element & signal element


A signal is carrying data in which one data element is encoded as one signal element ( r = 1). If the bit rate is 100 kbps, what is the average value of the baud rate if c is between 0 and 1?

We assume that the average value of c is 1/2 . The baud rate is then

Considerations for choosing a good signal element referred to as line encoding

Baseline wandering - a receiver will evaluate the average power of the received signal (called the baseline) and use that to determine the value of the incoming data elements. If the incoming signal does not vary over a long period of time, the baseline will drift and thus cause errors in detection of incoming data elements.
A good line encoding scheme will prevent long runs of fixed amplitude

Line encoding C/Cs

DC components - when the voltage level remains constant for long periods of time, there is an increase in the low frequencies of the signal. Most channels are bandpass and may not support the low frequencies.
This will require the removal of the dc component of a transmitted signal.

Self synchronization - the clocks at the sender and the receiver must have the same bit interval.
If the receiver clock is faster or slower it will misinterpret the incoming bit stream.

Error detection - errors occur during transmission due to line impairments.
Some codes are constructed such that when an error occurs it can be detected. For example: a particular signal transition is not part of the code. When it occurs, the receiver will know that a symbol error has occurred

Noise and interference - there are line encoding techniques that make the transmitted signal “immune” to noise and interference.
This means that the signal cannot be corrupted, it is stronger than error detection.

Complexity - the more robust and resilient the code, the more complex it is to implement and the price is often paid in baud rate or required bandwidth.

Line coding schemes


All signal levels are on one side of the time axis - either above or below
NRZ - Non Return to Zero scheme is an example of this code. The signal level does not return to zero during a symbol transmission.
Scheme is prone to baseline wandering and DC components. It has no synchronization or any error detection. It is simple but costly in power consumption.

Polar - NRZ

The voltages are on both sides of the time axis.
Polar NRZ scheme can be implemented with two voltages. E.g. +V for 1 and -V for 0.
There are two versions:
NZR - Level (NRZ-L) - positive voltage for one symbol and negative for the other
NRZ - Inversion (NRZ-I) - the change or lack of change in polarity determines the value of a symbol. E.g. a “1” symbol inverts the polarity a “0” does not.

In NRZ-L the level of the voltage determines the value of the bit. In NRZ-I the inversion or the lack of inversion determines the value of the bit.

Polar - RZ

The Return to Zero (RZ) scheme uses three voltage values. +, 0, -.
Each symbol has a transition in the middle. Either from high to zero or from low to zero.
This scheme has more signal transitions (two per symbol) and therefore requires a wider bandwidth.
No DC components or baseline wandering.
Self synchronization - transition indicates symbol value.
More complex as it uses three voltage level. It has no error detection capability

Polar - Biphase: Manchester and Differential Manchester

Manchester coding consists of combining the NRZ-L and RZ schemes.
Every symbol has a level transition in the middle: from high to low or low to high. Uses only two voltage levels.
Differential Manchester coding consists of combining the NRZ-I and RZ schemes.
Every symbol has a level transition in the middle. But the level at the beginning of the symbol is determined by the symbol value. One symbol causes a level change the other does not

In Manchester and differential Manchester encoding, the transition
at the middle of the bit is used for synchronization

The minimum bandwidth of Manchester and differential Manchester is 2 times that of NRZ. The is no DC component and no baseline wandering. None of these codes has error detection.

Bipolar - AMI and Pseudoternary

Code uses 3 voltage levels: - +, 0, -, to represent the symbols (note not transitions to zero as in RZ).
Voltage level for one symbol is at “0” and the other alternates between + & -.
Bipolar Alternate Mark Inversion (AMI) - the “0” symbol is represented by zero voltage and the “1” symbol alternates between +V and -V.
Pseudoternary is the reverse of AMI.

Bipolar C/Cs

It is a better alternative to NRZ.
Has no DC component or baseline wandering.
Has no self synchronization because long runs of “0”s results in no signal transitions.
No error detection.

Multilevel Schemes

In these schemes we increase the number of data bits per symbol thereby increasing the bit rate.
Since we are dealing with binary data we only have 2 types of data element a 1 or a 0.
We can combine the 2 data elements into a pattern of “m” elements to create “2m” symbols.
If we have L signal levels, we can use “n” signal elements to create Ln signal elements.

Multilevel: 2B1Q scheme

In the 2B1Q scheme we have no redundancy and we see that a DC component is present.
If we use a code with redundancy we can decide to use only “0” or “+” weighted codes (more +’s than -’s in the signal element) and invert any code that would create a DC component. E.g. ‘+00++-’ -> ‘-00--+’
Receiver will know when it receives a “-” weighted code that it should invert it as it doesn’t represent any valid symbol.

Multilevel using multiple channels

In some cases, we split the signal transmission up and distribute it over several links.
The separate segments are transmitted simultaneously. This reduces the signalling rate per link -> lower bandwidth.
This requires all bits for a code to be stored.
xD: means that we use ‘x’ links
YYYz: We use ‘z’ levels of modulation where YYY represents the type of modulation (e.g. pulse ampl. mod. PAM).
Codes are represented as: xD-YYYz

Multitransition Coding

Because of synchronization requirements we force transitions. This can result in very high bandwidth requirements -> more transitions than are bits (e.g. mid bit transition with inversion).
Codes can be created that are differential at the bit level forcing transitions at bit boundaries. This results in a bandwidth requirement that is equivalent to the bit rate.
In some instances, the bandwidth requirement may even be lower, due to repetitive patterns resulting in a periodic signal.


Signal rate is same as NRZ-I
But because of the resulting bit pattern, we have a periodic signal for worst case bit pattern: 1111
This can be approximated as an analog signal a frequency 1/4 the bit rate!

Block Coding

For a code to be capable of error detection, we need to add redundancy, i.e., extra bits to the data bits.
Synchronization also requires redundancy - transitions are important in the signal flow and must occur frequently.
Block coding is done in three steps: division, substitution and combination.
It is distinguished from multilevel coding by use of the slash - xB/yB.
The resulting bit stream prevents certain bit combinations that when used with line encoding would result in DC components or poor sync. quality.


A 4 bit data word can have 24 combinations.
A 5 bit word can have 25=32 combinations.
We therefore have 32 - 26 = 16 extra words.
Some of the extra words are used for control/signalling purposes.

More bits - better error detection

The 8B10B block code adds more redundant bits and can thereby choose code words that would prevent a long run of a voltage level that would cause DC components.


The best code is one that does not increase the bandwidth for synchronization and has no DC components.
Scrambling is a technique used to create a sequence of bits that has the required c/c’s for transmission - self clocking, no low frequencies, no wide bandwidth.
It is implemented at the same time as encoding, the bit stream is created on the fly.
It replaces ‘unfriendly’ runs of bits with a violation code that is easy to recognize and removes the unfriendly c/c.

No comments:

Post a Comment