Documentation |
Simulate multipath Rayleigh fading propagation channel
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 with Inline parameters off 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.
A positive scalar value that indicates the maximum Doppler shift.
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.
A vector that specifies the propagation delay for each path.
A vector that specifies the gain for each path.
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.
The scalar seed for the Gaussian noise generator.
Select this check box to open the channel visualization tool when a simulation begins.
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).
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 herehere 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 Rayleigh
For 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.