Documentation Center

  • Trial Software
  • Product Updates

Contents

comm.RayleighChannel System object

Package: comm

Filter input signal through a Rayleigh multipath fading channel

Description

The RayleighChannel System object™ filters an input signal through a Rayleigh fading channel. The fading processing per link is per the Methodology for Simulating Multipath Fading Channels

To filter an input signal using a Rayleigh multipath fading channel:

  1. Define and set up your Rayleigh channel object. See Construction.

  2. Call step to filter the input signal through a Rayleigh multipath fading channel according to the properties of comm.Rayleighhannel. The behavior of step is specific to each object in the toolbox.

Construction

H = comm.RayleighChannel creates a frequency-selective or frequency-flat multipath Rayleigh fading channel System object, H. This object filters a real or complex input signal through the multipath channel to obtain the channel impaired signal.

H = comm.RayleighChannel(Name,Value) creates a multipath Rayleigh fading channel object, H, with the specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1,Value1,...,NameN,ValueN).

Properties

SampleRate

Input signal sample rate (Hertz)

Specify the sample rate of the input signal in hertz as a double-precision, real, positive scalar. The default value of this property is 1 Hz.

PathDelays

Discrete path delay vector (seconds)

Specify the delays of the discrete paths in seconds as a double-precision, real, scalar or row vector. The default value of this property is 0.

When you set PathDelays to a scalar, the channel is frequency flat.

When you set PathDelays to a vector, the channel is frequency selective.

AveragePathGains

Average path gain vector (decibels)

Specify the average gains of the discrete paths in decibels as a double-precision, real, scalar or row vector. The default value of this property is 0.

AveragePathGains must have the same size as PathDelays.

NormalizePathGains

Normalize average path gains to 0 dB

Set this property to true to normalize the fading processes such that the total power of the path gains, averaged over time, is 0 dB. The default value of this property is true.

MaximumDopplerShift

Maximum Doppler shift (Hertz)

Specify the maximum Doppler shift for all channel paths in hertz as a double-precision, real, nonnegative scalar. The default value of this property is 0.001 Hz.

The Doppler shift applies to all the paths of the channel. When you set the MaximumDopplerShift to 0, the channel remains static for the entire input. You can use the reset method to generate a new channel realization.

The MaximumDopplerShift must be smaller than SampleRate/10/fc for each path, where fc represents the cutoff frequency factor of the path. For most Doppler spectrum types, the value of fc is 1. For Gaussian and BiGaussian Doppler spectrum types, fc is dependent on the Doppler spectrum structure fields. Refer to the Algorithms section for the comm.MIMOChannel System object for more details about how fc is defined.

DopplerSpectrum

Doppler spectrum object(s)

Specify the Doppler spectrum shape for the path(s) of the channel. This property accepts a single Doppler spectrum structure returned from the doppler function or a row cell array of such structures. The maximum Doppler shift value necessary to specify the Doppler spectrum/spectra is given by the MaximumDopplerShift property. This property applies when the MaximumDopplerShift property value is greater than 0. The default value of this property is doppler('Jakes').

If you assign a single Doppler spectrum structure to DopplerSpectrum, all paths have the same specified Doppler spectrum. The possible Doppler spectrum structures are:

  • doppler('Jakes')

  • doppler('Flat')

  • doppler('Rounded', ...)

  • doppler('Bell', ...)

  • doppler('Asymmetric Jakes', ...)

  • doppler('Restricted Jakes', ...)

  • doppler('Gaussian', ...)

  • doppler('BiGaussian', ...)

If you assign a row cell array of different Doppler spectrum structures (which can be chosen from any of those on the previous list) to DopplerSpectrum, each path has the Doppler spectrum specified by the corresponding structure in the cell array. In this case, the length of DopplerSpectrum must be equal to the length of PathDelays.

To generate C code, specify this property to a single Doppler spectrum structure. The default value of this property is doppler('Jakes').

RandomStream

Source of random number stream

Specify the source of random number stream as one of Global stream | mt19937ar with seed. The default value of this property is Global stream.

If you set RandomStream to Global stream, the current global random number stream is used for normally distributed random number generation. In this case, the reset method only resets the filters.

If you set RandomStream to mt19937ar with seed, the mt19937ar algorithm is used for normally distributed random number generation. In this case, the reset method not only resets the filters but also reinitializes the random number stream to the value of the Seed property.

Seed

Initial seed of mt19937ar random number stream

Specify the initial seed of a mt19937ar random number generator algorithm as a double-precision, real, nonnegative integer scalar. The default value of this property is 73. This property applies when you set the RandomStream property to mt19937ar with seed. The Seed reinitializes the mt19937ar random number stream in the reset method.

PathGainsOutputPort

Enable path gain output (logical)

Set this property to true to output the channel path gains of the underlying fading process. The default value of this property is false.

Methods

cloneCreate RayleighChannel object with same property values
infoDisplay information about the RayleighChannel object
isLockedLocked status for input attributes and nontunable properties
releaseAllow property value and input characteristics changes
resetReset states of the RayleighChannel object
stepFilter input signal through multipath Rayleigh fading channel

Examples

expand all

Produce the same outputs using two different random number generation methods

The Rayleigh Channel System object has two methods for random number generation. You can use the current global stream or the mt19937ar algorithm with a specified seed. By interacting with the global stream, the object can produce the same outputs from the two methods.

Create a PSK Modulator System object to modulate randomly generated data.

hMod = comm.PSKModulator;
channelInput = step(hMod, randi([0 hMod.ModulationOrder-1],1024,1));

Create a Rayleigh channel System object.

hRayleighChan = comm.RayleighChannel(...
        'SampleRate',          10e3,...
        'PathDelays',          [0 1.5e-4],...
        'AveragePathGains',    [2 3],...
        'NormalizePathGains',  true,...
        'MaximumDopplerShift', 30,...
        'DopplerSpectrum',     {doppler('Gaussian',0.6), doppler('Flat')},...
        'RandomStream',        'mt19937ar with seed',...
        'Seed',                22,...
        'PathGainsOutputPort', true);

Filter the modulated data using the Rayleigh channel System object, hRayleighChan.

 [chanOut1, pathGains1] = step(hRayleighChan, channelInput);

Use global stream for random number generation.

release(hRayleighChan);
hRayleighChan.RandomStream = 'Global stream';

Log the current global stream.

 loggedStream = RandStream.getGlobalStream; 

Create an mt19937ar random stream and designate it as the current global stream.

 s = RandStream('mt19937ar','Seed',22);
 RandStream.setGlobalStream(s);

Filter the modulated data using hRayleighChan for the second time.

 [chanOut2, pathGains2] = step(hRayleighChan, channelInput);

Restore the logged global stream.

 RandStream.setGlobalStream(loggedStream);

Verify that the channel and path gain outputs are the same for two step calls.

 display(isequal(chanOut1, chanOut2));
 display(isequal(pathGains1, pathGains2));

Selected Bibliography

[1] Oestges, C., and B. Clerckx. MIMO Wireless Communications: From Real-World Propagation to Space-Time Code Design, Academic Press, 2007.

[2] Correira, L. M. Mobile Broadband Multimedia Networks: Techniques, Models and Tools for 4G, Academic Press, 2006.

[3] Kermoal, J. P., L. Schumacher, K. I. Pedersen, P. E. Mogensen, and F. Frederiksen. "A stochastic MIMO radio channel model with experimental validation." IEEE Journal on Selected Areas of Communications. Vol. 20, Number 6, 2002, pp. 1211–1226.

[4] Jeruchim, M., P. Balaban, and K. S. Shanmugan. Simulation of Communication Systems, Second Edition, New York, Kluwer Academic/Plenum, 2000.

See Also

| | |

Was this topic helpful?