Generate Rician distributed noise

Noise Generators sublibrary of Comm Sources

The Rician Noise Generator block generates Rician distributed noise. The Rician probability density function is given by

$$f(x)=\{\begin{array}{cc}\frac{x}{{\sigma}^{2}}{I}_{0}\left(\frac{mx}{{\sigma}^{2}}\right)\mathrm{exp}\left(-\frac{{x}^{2}+{m}^{2}}{2{\sigma}^{2}}\right)& x\ge 0\\ 0& x<0\end{array}$$

where:

σ is the standard deviation of the Gaussian distribution that underlies the Rician distribution noise

m

^{2}= m_{I}^{2}+m_{Q}^{2}, where*m*_{I}and*m*_{Q}are the mean values of two independent Gaussian components*I*_{0}is the modified 0th-order Bessel function of the first kind given by$${I}_{0}(y)=\frac{1}{2\pi}{\displaystyle {\int}_{-\pi}^{\pi}{e}^{y\mathrm{cos}t}dt}$$

Note that *m* and σ are *not* the
mean value and standard deviation for the Rician noise.

You must specify the **Initial seed** for the
random number generator. When it is a constant, the resulting noise
is repeatable. The vector length of the Initial seed parameter should
equal the number of columns in a frame-based output or the number
of elements in a sample-based output. The set of numerical parameters
above the **Initial seed** parameter in the dialog
box can consist of vectors having the same length as the **Initial
seed**, or scalars.

The scalar **Initial seed** parameter initializes
the random number generator that the block uses to generate its Rician-distributed
complex random process. For best results, the **Initial seed** should
be a prime number greater than 30. Also, if there are other blocks
in a model that have an **Initial seed** parameter,
you should choose different initial seeds for all such blocks.

You can choose seeds for the Rician Noise Generator block using the Communications System Toolbox™ randseed function. At the MATLAB prompt, enter

randseed

This returns a random prime number greater than 30. Entering `randseed`

again
produces a different prime number. If you supply an integer argument, `randseed`

always
returns the same prime for that integer. For example, `randseed(5)`

always
returns the same answer.

The output signal can be a frame-based matrix, a sample-based
row or column vector, or a sample-based one-dimensional array. These
attributes are controlled by the **Frame-based outputs**, **Samples
per frame**, and **Interpret vector parameters as
1-D** parameters. See Sources and Sinks in *Communications System Toolbox User's
Guide* for more details.

The number of elements in the **Initial seed** and **Sigma** parameters
becomes the number of columns in a frame-based output or the number
of elements in a sample-based vector output. Also, the shape (row
or column) of the **Initial seed** and **Sigma** parameters
becomes the shape of a sample-based two-dimensional output signal.

**Specification method**Either

`K-factor`

or`Quadrature components`

.**Rician K-factor***K*=*m*^{2}/(2σ^{2}), where*m*is as in the Rician probability density function. This field appears only if**Specification method**is`K-factor`

.**In-phase component (mean), Quadrature component (mean)**The mean values

*m*_{I}and*m*_{Q}, respectively, of the Gaussian components. These fields appear only if**Specification method**is`Quadrature components`

.**Sigma**The variable σ in the Rician probability density function.

**Initial seed**The initial seed value for the random number generator.

**Sample time**The period of each sample-based vector or each row of a frame-based matrix.

**Frame-based outputs**Determines whether the output is frame-based or sample-based. This box is active only if

**Interpret vector parameters as 1-D**is unchecked.**Samples per frame**The number of samples in each column of a frame-based output signal. This field is active only if

**Frame-based outputs**is checked.**Interpret vector parameters as 1-D**If this box is checked, then the output is a one-dimensional signal. Otherwise, the output is a two-dimensional signal. This box is active only if

**Frame-based outputs**is unchecked.**Output data type**The output can be set to

`double`

or`single`

data types.

[1] Proakis, John G., *Digital Communications*,
Third edition, New York, McGraw Hill, 1995.

Was this topic helpful?