# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English version of the page.

# ricianchan

## Syntax

```chan = ricianchan(ts,fd,k) chan = ricianchan(ts,fd,k,tau,pdb) chan = ricianchan(ts,fd,k,tau,pdb,fdLOS) chan = ricianchan ```

## Description

`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.

### Properties

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

PropertyDescription
`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.

PropertyDescriptionWhen 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.

### Relationships Among Properties

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 `StoreHistory` to `1` will result in a slower simulation. If you do not want to visualize channel state information using `plot (channel)`, but want to access the complex path gains, then set `StorePathGains` to `1`, while keeping `StoreHistory` as `0`.

### Reset Method

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.

### Algorithm

The methodology used to simulate fading channels is described in Methodology for Simulating SISO 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).

## Channel Visualization

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.

## Examples

The example in Quasi-Static Channel Modeling uses this function.

## References

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