# Rician Noise Generator

Generate Rician distributed noise

## Library

Noise Generators sublibrary of Comm Sources

## Description

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

$f\left(x\right)=\left\{\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

• m2 = mI2+mQ2, where mI and mQ are the mean values of two independent Gaussian components

• I0 is the modified 0th-order Bessel function of the first kind given by

${I}_{0}\left(y\right)=\frac{1}{2\pi }{\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.

### Initial Seed

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.

### Attributes of Output Signal

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.

## Dialog Box

Specification method

Either `K-factor` or ```Quadrature components```.

Rician K-factor

K = m2/(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 mI and mQ, 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.

## References

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