MATLAB Examples

QPSK Modulation in Fading Channel

Pass a QPSK signal through a Rayleigh multipath fading channel. Change the signal bandwidth to observe the impact of the fading channel on the QPSK constellation.

Contents

QPSK Modulation in Flat Fading

Set the symbol rate parameter to 500 bps.

symbolRate = 500;

Generate random data symbols and apply QPSK modulation.

data = randi([0 3],10000,1);
modSig = pskmod(data,4,pi/4,'gray');

Set the path delays and average path gains for the fading channel.

pathDelays = [0 3 10]*1e-6;     % Discrete delays of three-path channel (s)
avgPathGains = [0 -3 -6];       % Average path gains (dB)

By convention, the delay of the first path is typically set to zero. For subsequent paths, a 1 microsecond delay corresponds to a 300 meter difference in path length. The path delays and path gains specify the average delay profile of the channel.

Create a Rayleigh channel using the defined parameters. Set the Visualization property to display the impulse and frequency responses.

fsamp = symbolRate;
channel = comm.RayleighChannel(...
    'SampleRate',fsamp, ...
    'PathDelays',pathDelays, ...
    'AveragePathGains',avgPathGains, ...
    'MaximumDopplerShift',0.01, ...
    'Visualization','Impulse and frequency responses');

Pass the signal through the Rayleigh channel and apply AWGN.

rxSig = awgn(channel(modSig),25);

The impulse and frequency responses show that the channel behaves as though it were flat. This is because the signal bandwidth, 500 Hz, is much smaller than the coherence bandwidth, 50 kHz. Alternatively, the delay span of the channel (10 microseconds) is much smaller than the QPSK symbol period (2 milliseconds) so the resultant bandlimited impulse response is approximately flat.

Plot the constellation.

constDiagram = comm.ConstellationDiagram;
constDiagram(rxSig)

The QPSK constellation shows the effects of the fading channel; however, the signal still has four identifiable states.

QPSK Modulation in Frequency-Selective Fading

Increase the symbol rate to 500 kbps and update the related channel property. Pass the signal through the Rayleigh channel and apply AWGN.

symbolRate = 500e3;

release(channel)
channel.SampleRate = symbolRate;

rxSig = awgn(channel(modSig),25);

The impulse and frequency responses show that the multipath fading is frequency selective.

Plot the constellation.

constDiagram(rxSig)

As the signal bandwidth is increased from 500 Hz to 500 kHz, the signal becomes highly distorted. This distortion is due to the intersymbol interference (ISI) that comes from time dispersion of the wideband signal. The delay span of the channel (10 microseconds) is now larger than the QPSK symbol period (2 microseconds) so the resultant bandlimited impulse response is no longer flat. Alternatively, the signal bandwidth is much larger than the coherence bandwidth, 50 kHz.