Simulate multipath Rayleigh fading propagation channel

Channels

The Multipath Rayleigh Fading Channel block implements a baseband simulation of a multipath Rayleigh fading propagation channel. You can use this block to model mobile wireless communication systems. For details about fading channels, see the references listed below.

This block accepts a scalar value or column vector input signal. The block inherits sample time from the input signal. The input signal must have a discrete sample time greater than 0.

Relative motion between the transmitter and receiver causes
Doppler shifts in the signal frequency. You can specify the Doppler
spectrum of the Rayleigh process using the** Doppler spectrum
type** parameter. For channels with multiple paths, you can
assign each path a different Doppler spectrum, by entering a vector
of doppler objects in the **Doppler spectrum** field.

Because a multipath channel reflects signals at multiple places,
a transmitted signal travels to the receiver along several paths,
each of which may have differing lengths and associated time delays.
In the block's parameter dialog box, the **Discrete path delay
vector** specifies the time delay for each path. If you do
not check **Normalize gain vector to 0 dB overall gain**,
then the **Average path gain vector** specifies the
gain for each path. When you check the box, the block uses a multiple
of **Average path gain vector **instead of the **Average
path gain vector** itself, choosing the scaling factor so
that the channel's effective gain, considering all paths, is 0 dB.

The number of paths indicates the length of **Discrete
path delay vector** or **Average path gain vector**,
whichever is larger. If both of these parameters are vectors, then
they must have the same length; if exactly one of these parameters
contains a scalar value, then the block expands it into a vector whose
size matches that of the other vector parameter.

The block multiplies the input signal by samples of a Rayleigh-distributed
complex random process. The scalar **Initial seed** parameter
seeds the random number generator and the block generates random numbers
using the Ziggurat method.

Double-clicking this block during simulation or selecting **Open
channel visualization at start of simulation** plots the
channel characteristics using the channel visualization tool. See Channel Visualization in *Communications
System Toolbox User's Guide* for details.

**Maximum Doppler shift (Hz)**A positive scalar value that indicates the maximum Doppler shift.

**Doppler spectrum type**Specifies the Doppler spectrum of the Rayleigh process.

This parameter defaults to

`Jakes`

Doppler spectrum. Alternatively, you can also choose any of the following types:For all Doppler spectrum types except

`Jakes`

and`Flat`

, you can choose one or more parameters to control the shape of the spectrum.You can also select

`Specify as dialog parameter`

for the**Doppler spectrum type**. Specify the Doppler spectrum by entering an object in the**Doppler spectrum**field. See the`doppler`

function reference in*Communications System Toolbox User's Guide*for details on how to construct Doppler objects, and also for the meaning of the parameters associated with the various Doppler spectrum types.**Discrete path delay vector (s)**A vector that specifies the propagation delay for each path.

**Average path gain vector (dB)**A vector that specifies the gain for each path.

**Normalize gain vector to 0 dB overall gain**Checking this box causes the block to scale the

**Gain vector**parameter so that the channel's effective gain (considering all paths) is 0 dB.**Initial seed**The scalar seed for the Gaussian noise generator.

**Open channel visualization at start of simulation**Select this check box to open the channel visualization tool when a simulation begins.

**Complex path gains port**Select this check box to create a port that outputs the values of the complex path gains for each path. In this

*N*-by-*M*multichannel output,*N*represents the number of samples the input signal contains and*M*represents the number of discrete paths (number of delays).**Channel filter delay port**Select this check box to create a port that outputs the value of the delay (in samples) that results from the filtering operation of this block. This delay is zero if only one path is simulated, but can be greater than zero if more than one path is present. See Methodology for Simulating Multipath Fading Channels: in

*Communications System Toolbox User's Guide*for a definition of this delay, where it is denoted as $${N}_{1}$$.

This implementation is based on the direct-form simulator described in Reference [1]. A detailed explanation of the implementation, including a review of the different Doppler spectra, can be found in [4].

Some wireless applications, such as standard GSM (Global System
for Mobile Communication) systems, prefer to specify Doppler shifts
in terms of the speed of the mobile. If the mobile moves at speed *v* making
an angle of θ with the direction of wave motion, then the Doppler
shift is

*f*_{d} = (*vf/c*)cos
θ

where *f* is the transmission carrier frequency
and *c* is the speed of light. The Doppler frequency
represents the maximum Doppler shift arising from motion of the mobile.

This example illustrates how to generate ideal theoretical BER results for a flat Rayleigh fading channel. The model uses reproduces known theoretical results and shows the correct BER performance for a flat Rayleigh fading channel. In this example, you will run the model and compare the simulation results to the BERTool theoretical results for verification purposes. Note that the EbNo value for the model's AWGN block is 5 dB. You can change the noise power by double-clicking the AWGN block and entering another numeric value in the EbNo parameter.

You can open the model by clicking here in the MATLAB
Help browser. Alternatively, you can type `doc_qpsk_rayleigh_derotated`

at
the MATLAB command line.

You can run the example by clicking

**Simulation**>**Run**.After the model collects more than 5000 errors, click the stop button.

Close the three scopes.

In the Simulink model window, double-click the Transmitter Output block. In the mask window, click the

**Figure Properties**tab, uncheck**Open scope at start of Simulation**, then click**OK**.In the Simulink model window, double-click the Rayleigh Channel Output block. In the mask window, click the

**Figure Properties**tab, uncheck**Open scope at start of Simulation**, then click**OK**.In the Simulink model window, double-click the Noisy Rayleigh Channel Output block. In the mask window, click the

**Figure Properties**tab, uncheck**Open scope at start of Simulation**, then clock**OK**.In the Simulink model window, double-click the Error Rate Calculation block, check

**Stop simulation**, enter`5000`

for**Target number of error**, then click**OK**.Click the play button to rerun the example.

Open BERTool by typing

`bertool`

at the MATLAB command line.In BERTool, click the

**Theoretical**tab and make the following selections:For

**Eb/No range**enter`0:10`

For

**Channel type**, select`Rayleig`

hFor

**Diversity Order**enter`1`

For

**Modulation Type**, select`PSK`

For

**Modulation order**, select`4`

Click

**Plot**.Since the Simulink model uses an EbNo value of 5 dB, verify the probability of error on the BERTool curve at 5 dB. The two values should be approximately equal.

Click the Data Cursor button (second from right) and click on the BERTool curve at 5dB.

[1] Jeruchim, Michel C., Balaban, Philip, and
Shanmugan, K. Sam, *Simulation of Communication Systems*,
Second edition, New York, Kluwer Academic/Plenum, 2000.

[2] Jakes, William C., ed. *Microwave
Mobile Communications*, New York, IEEE Press, 1974.

[3] Lee, William C. Y., *Mobile Communications
Design Fundamentals*, 2nd Ed. New York, Wiley, 1993.

[4] Iskander, Cyril-Daniel, *A
MATLAB-based Object-Oriented Approach to Multipath Fading Channel
Simulation*, a MATLAB Central submission available
from www.mathworks.com.

Was this topic helpful?