Why do the results of a Multipath Rayleigh Fading Channel differ when modeled as the addition of two single path channels than when modeled as a two-path channel using the Communications Blockset?

2 views (last 30 days)
I have modeled a two path multi-channel enviroment by using only one "Multipath Rayleigh Fading Channel" block and have set 2-elements vectors as the "Gain vector (dB)" and "Delay vector (s)" parameters.
In another case, I use two "Multipath Rayleigh Fading Channel" blocks and set individual single-element "Gain vector (dB)" and "Delay vector (s)" parameters. I then add the two signals using a "Sum" block.
I thought the two results would be same. But they are different.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 2 Feb 2012
The reason the two outputs in your model "samp_rayleigh1.mdl" differ is because, the
Rayleigh source of the Multipath Rayleigh Fading Channel block is obtained from a
Filtered Gaussian source object. The Filtered Gaussian source object is created by
using a random normal vector with two states per channel, one for the Real and one
for Complex data, since the narrowband Gaussian signal has an envelope of Rayleigh
distribution.
You may access this code in by looking at the M-file
$MATLAB\toolbox\comm\comm\@channel\@basefiltgaussian\BASEFILTGAUSSIAN_RESET.m
where $MATLAB is the MATLAB root directory as obtained by typint the following at
the MATLAB command prompt
matlabroot
This file sets the state of a filtered Gaussian source object to a random vector. i.e.,
storing last two outputs for each channel.
The filtered Gaussian source object obtained is used in the Interpolating filter. This can also be seen by executing the following code at the MATLAB command prompt. Note how the pathgains are different when a 2 channel Rayleigh object is created and are the same for a single-channel Rayleigh object.
format compact;
Ts = 1e-6;
fd = 40;
tau1 = 0;
tau2 = 1e-6;
tau12 = [0 1e-6];
pdb1 = 0;
pdb2 = -3;
pdb12 = [0 -3];
rng('default');
s = rng;
h1 = rayleighchan(Ts,fd,tau1,pdb1);
h1.PathGains
rng(s);
h2 = rayleighchan(Ts,fd,tau2,pdb2);
h2.PathGains
rng(s);
h12 = rayleighchan(Ts,fd,tau12,pdb12);
h12.PathGains
Note how the pathgains are different when a 2 channel Rayleigh object is created and are the same for a single-channel Rayleigh object.

More Answers (0)

Categories

Find more on Propagation and Channel Models in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!