Main Content

Delays in Communication Systems

Delays in communications systems influence the overall performance and reliability of data transmission. Delays arise from sources such as signal propagation, processing time, and protocol stack handling. These sources cause symbol, frame, or packet delays, each with implications on the system throughput and synchronization. Understanding and managing delays is crucial for designing efficient, reliable, and high-performance communications systems. Communications Toolbox™ software provides the tools you need to simulate and analyze the effects of delays on your wireless communication systems.

Propagation Delay

Propagation delay is the time it takes for a signal to travel from the transmitter to the receiver through a communications channel. The propagation speed of the signal depends on the medium through which it travels. You can calculate this delay using:

Propagation Delay = Distance between transmitter and receiver (in meters)Speed of signal in transmission medium (in meters/second)

In vacuum, electromagnetic signals travel at the speed of light, which is 3x108 meters per second. In other media like fiber optics or copper cables, the speed is slightly less due to the refractive index of the medium.

Simulate Propagation Delay in QPSK System

To understand the effect of propagation delay, you can simulate it in a model.

Configure the Model

The Bernoulli Binary Generator block has the Probability of zero parameter set to 0.5 to generate zeros and ones at equal probability. Configure the QPSK Modulator Baseband and QPSK Demodulator Baseband blocks for bit input and outputs. Set the AWGN Channel block Eb/N0 to 5 dB. Use the Variable Integer Delay (Simulink) block to create the propagation delay. Use three Time Scope blocks to view the input, delayed, and output signal. The Simulation tab has Stop time set to 0.1.

Run the Model

In the Variable Integer Delay block, set the receive delay to the same value as the propagation delay. Then run the simulation and display the computed error rate.

Propagation Delay: 1000 samples

Observe the Results

Take a closer look at the input and output signals.

You can see that the signal shifts to the right in the output signal scope due to the propagation delay. The scope shows a delay of 1 ms as expected, and with a sample period of 1 microsecond, this corresponds to 1000 samples being taken at the given sample rate of 1 MHz during the propagation delay.

Processing Delay

Processing delay includes the time for various tasks, such as encoding, decoding, modulation, demodulation, filtering, and error correction. The time that these operations take depends on the complexity of the algorithms, the processing power of the equipment, and any additional signal processing techniques.

View Filter Processing Delay

To view processing delay due to filters, you can compare original data before and after sending it through a transmit filter and a receive filter.

Generate random binary data as a column vector.

txData = randi([0,1],100,1); % 100 rows, 1 column

Create a pair of matched raised cosine filters by using the comm.RaisedCosineTransmitFilter System object™ and the comm.RaisedCosineReceiveFilter System object.

txFilter = comm.RaisedCosineTransmitFilter(OutputSamplesPerSymbol= 4);
rxFilter = comm.RaisedCosineReceiveFilter(InputSamplesPerSymbol=4,DecimationFactor=4);

Filter the data through the transmit filter.

txFilteredData = txFilter(txData);

Filter the transmitted data through the receive filter. The operation simulates the reception process with matched filtering.

rxFilteredData = rxFilter(txFilteredData);

Calculate the group delay introduced by the filters in samples. For a back-to-back cascade, the delay is just the two spans/2 at the symbol level.

groupDelay = (txFilter.FilterSpanInSymbols+rxFilter.FilterSpanInSymbols)/2;

Plot the original transmitted data, the filtered transmitted data, and the filtered received data.

subplot(3, 1, 1);
stem(txData);
title('Transmitted Data');

subplot(3, 1, 2);
stem(txFilteredData);
title('Transmitted Data After Transmit Filter');

subplot(3, 1, 3);
stem(rxFilteredData);
title('Received Data After Receive Filter');
xlabel(['Note: The processing delay is ' num2str(groupDelay) ' samples']);

You can see the processing delay caused by the filters in the plots. The signal peaks in the received data in comparison to the original data.

See Also

|

Related Topics