Construct Rician fading channel object
chan = ricianchan(ts,fd,k)
chan = ricianchan(ts,fd,k,tau,pdb)
chan = ricianchan(ts,fd,k,tau,pdb,fdLOS)
chan = ricianchan
chan = ricianchan(ts,fd,k)
constructs
a frequency-flat (single path) Rician fading-channel object. ts
is
the sample time of the input signal, in seconds. fd
is
the maximum Doppler shift, in hertz. k
is the Rician
K-factor in linear scale. You can model the effect of the channel chan
on
a signal x
by using the syntax y = filter(chan,x)
.
See filter
for more information.
chan = ricianchan(ts,fd,k,tau,pdb)
constructs
a frequency-selective (multiple paths) fading-channel object. If k
is
a scalar, then the first discrete path is a Rician fading process
(it contains a line-of-sight component) with a K-factor of k
,
while the remaining discrete paths are independent Rayleigh fading
processes (no line-of-sight component). If k
is
a vector of the same size as tau
, then each discrete
path is a Rician fading process with a K-factor given by the corresponding
element of the vector k
. tau
is
a vector of path delays, each specified in seconds. pdb
is
a vector of average path gains, each specified in dB.
chan = ricianchan(ts,fd,k,tau,pdb,fdLOS)
specifies fdlos
as
the Doppler shift(s) of the line-of-sight component(s) of the discrete
path(s), in hertz. fdlos
must be the same size
as k
. If k
and fdlos
are
scalars, the line-of-sight component of the first discrete path has
a Doppler shift of fdlos
, while the remaining discrete
paths are independent Rayleigh fading processes. If fdlos
is
a vector of the same size as k
, the line-of-sight
component of each discrete path has a Doppler shift given by the corresponding
element of the vector fdlos
. By default, fdlos
is 0
.
The initial phase(s) of the line-of-sight component(s) can be set
through the property DirectPathInitPhase
.
chan = ricianchan
sets
the maximum Doppler shift to 0
, the Rician K-factor
to 1
, and the Doppler shift and initial phase of
the line-of-sight component to 0
. This syntax models
a static frequency-flat channel, and, in this trivial case, the sample
time of the signal is unimportant.
The following tables describe the properties of the channel
object, chan
, that you can set and that MATLAB^{®} technical
computing software sets automatically. To learn how to view or change
the values of a channel object, see Displaying and Changing Object Properties.
Writeable Properties
Property | Description |
---|---|
InputSamplePeriod | Sample period of the signal on which the channel acts, measured in seconds. |
DopplerSpectrum | Doppler spectrum object(s). The default is a Jakes doppler object. |
MaxDopplerShift | Maximum Doppler shift of the channel, in hertz (applies to all paths of a channel). |
KFactor | Rician K-factor (scalar or vector). The default value is 1 (line-of-sight component on the first path only). |
PathDelays | Vector listing the delays of the discrete paths, in seconds. |
AvgPathGaindB | Vector listing the average gain of the discrete paths, in decibels. |
DirectPathDopplerShift | Doppler shift(s) of the line-of-sight component(s) in hertz. The default value is 0. |
DirectPathInitPhase | Initial phase(s) of line-of-sight component(s) in radians. The default value is 0. |
NormalizePathGains | If this value is 1 ,
the Rayleigh fading process is normalized such that the expected value
of the path gains' total power is 1. |
StoreHistory | If this value is 1 ,
channel state information needed by the channel visualization tool
is stored as the channel filter function processes the signal. The
default value is 0 . |
StorePathGains | If this value is 1 ,
the complex path gain vector is stored as the channel filter function
processes the signal. The default value is 0 . |
ResetBeforeFiltering | If this value is 1 ,
each call to filter resets the state of chan before
filtering. If it is 0 , the fading process maintains
continuity from one call to the next. |
Read-Only Properties
Property | Description | When MATLAB Sets or Updates Value |
---|---|---|
ChannelType | Fixed value, 'Rician' . | When you create object. |
PathGains | Complex vector listing the
current gains of the discrete paths. When you create or reset chan , PathGains is
a random vector influenced by AvgPathGaindB and NormalizePathGains . | When you create object, reset object, or use it to filter a signal. |
ChannelFilterDelay | Delay of the channel filter,
measured in samples. The ChannelFilterDelay property returns a delay value that is valid only if the first value of the PathGain is the biggest path gain. In other words, main channel energy is in the first path. | When you create object or
change ratio of InputSamplePeriod to PathDelays . |
NumSamplesProcessed | Number of samples the channel
processed since the last reset. When you create or reset chan ,
this property value is 0 . | When you create object, reset object, or use it to filter a signal. |
Changing the length of PathDelays
also changes
the length of AvgPathGaindB
, the length of KFactor
if KFactor
is
a vector (no change if it is a scalar), and the length of DopplerSpectrum
if DopplerSpectrum
is
a vector (no change if it is a single object).
DirectPathDopplerShift
and DirectPathInitPhase
both
follow changes in KFactor
.
The PathDelays
and AvgPathGaindB
properties
of the channel object must always have the same vector length, because
this length equals the number of discrete paths of the channel. The DopplerSpectrum
property
must either be a single Doppler object or a vector of Doppler objects
with the same length as PathDelays
.
If you change the length of PathDelays
, MATLAB truncates
or zero-pads the value of AvgPathGaindB
if necessary
to adjust its vector length (MATLAB may also change the values
of read-only properties such as PathGains
and ChannelFilterDelay
).
If DopplerSpectrum
is a vector of Doppler objects,
and you increase or decrease the length of PathDelays
, MATLAB will
add Jakes Doppler objects or remove elements from DopplerSpectrum
,
respectively, to make it the same length as PathDelays
.
If StoreHistory
is set to 1
(the
default is 0
), the object stores channel state
information as the channel filter function processes the signal.
You can then visualize this state information through a GUI using
the plot (channel)
method.
Note:
Setting |
If MaxDopplerShift
is set to 0
(the
default), the channel object, chan
, models a static
channel.
Use the syntax reset(chan)
to generate a
new channel realization.
The methodology used to simulate fading channels is described
in Methodology for Simulating Multipath Fading Channels:,
where the properties specific to the Rician channel object are related
to the quantities of this section as follows (see the rayleighchan
reference page for properties
common to both Rayleigh and Rician channel objects):
The Kfactor
property contains the
value of $${K}_{r}$$ (if it's a scalar) or $$\left\{{K}_{r,k}\right\}$$, $$1\le k\le K$$ (if it's a vector).
The DirectPathDopplerShift
property
contains the value of $${f}_{d,LOS}$$ (if it's
a scalar) or $$\left\{{f}_{d,LOS,k}\right\}$$, $$1\le k\le K$$ (if it's a vector).
The DirectPathInitPhase
property
contains the value of $${\theta}_{LOS}$$ (if it's
a scalar) or $$\left\{{\theta}_{LOS,k}\right\}$$, $$1\le k\le K$$ (if it's a vector).
The characteristics of a channel can be plotted using the channel visualization tool. You can use the channel visualization tool in Normal mode and Accelerator mode. For more information, see Channel Visualization.
The example in Quasi-Static Channel Modeling uses this function.
[1] Jeruchim, M., Balaban, P., and Shanmugan, K., Simulation of Communication Systems, Second Edition, New York, Kluwer Academic/Plenum, 2000.