Random Source
A generator of randomly distributed quantities.
blockType: RandomSource
Path in the library:
|
Description
Block Random Source outputs a random signal with a uniform or Gaussian (normal) pseudo-random distribution. The block uses a Mersenne vortex random number generator to generate the sequence. The block parameters determine the size of the signal, the type of data, and whether the signal is complex.
The unit can generate a single-channel or multi-channel signal.
Ports
Output
#
OUT_1
—
randomly distributed signal
scalar | vector | matrix
Details
A random variable signal with a uniform or Gaussian (normal) distribution. The parameters of the block determine the size of the signal, the type of data and whether the signal is complex.
The block can generate a single-channel or multi-channel signal. The parameters Samples per frame determine the number of samples in each channel (column) of the signal. The parameters Output data type and Complexity determine the data type and whether the signal is complex.
| Data types |
|
| Complex numbers support |
Yes |
Parameters
Main
#
Source type —
distribution type
Uniform | Gaussian
Details
Specify the type of distribution of random variables, options to choose from:
-
Uniform- the block takes output samples from a uniform distribution. You can specify the minimum and maximum values of the distribution using the parameters Minimum and Maximum respectively. All values in the range [Minimum Maximum ] have equal probability of being selected. You can generate a complex number from a uniform distribution by setting the Complexity parameters toComplex. -
Gaussian- block generates Gaussian random variables using the Ziggurat method. You can set the mean and variance of the distribution using the parameters Mean and Variance. You can generate a complex Gaussian signal by setting the parameters Complexity toComplex.
| Values |
|
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
No |
#
Method —
random number generation method
Ziggurat | Sum of uniform values
Details
Random number generation method.
Dependencies
To use this parameter, set the Source type parameters to Gaussian.
| Values |
|
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
No |
#
Number of uniform values to sum —
number of constant values to summarise
Int64 integer
Details
Number of constant values for summing.
Dependencies
To use this parameter, set the Source type parameter to and the parameter to . Gaussian`and set the Method parameters to . `Sum of uniform values.
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
Yes |
# Mean — mean value of the Gaussian distribution
Details
Specify the mean value of a Gaussian (normal) distribution as a scalar or a string vector of length . If a string vector is specified, the block generates a matrix to , containing a separate random distribution in each channel, where is the value that is specified in the parameters Samples per frame.
The values of parameters Mean and Variance must be scalars or have the same number of columns.
To generate a complex output signal with distribution Gaussian`set the value for the parameter Complexity to `Complex and specify the complex value in the parameter Mean. For more information, see the description of the parameter Complexity.
Dependencies
To use this parameter, set the Source type parameters to . Gaussian.
| Support for complex numbers |
Yes |
| Default value |
|
| Program usage name |
|
| Tunable |
Yes |
| Evaluatable |
Yes |
# Variance — variance of the Gaussian distribution
Details
Specify the variance of a Gaussian (normal) distribution as a scalar or string vector of length . If a string vector is specified, the block generates a matrix to , containing a separate random distribution in each channel, where is the value that is specified in the parameters Samples per frame.
The values of parameters Mean and Variance must be scalars or have the same number of columns.
To generate a complex output signal with distribution Gaussian, set the parameters Variance to the total variance for each output channel. This value is the sum of the variance of the real and imaginary components in that channel. For more information, see the description of the parameters Complexity.
Dependencies
To use this parameter, set the Source type parameters to Gaussian.
| Default value |
|
| Program usage name |
|
| Tunable |
Yes |
| Evaluatable |
Yes |
# Minimum — minimum value of uniform distribution
Details
Specify the minimum value in the uniform distribution as a scalar or string vector of length . If a string vector is specified, the block generates a matrix to , containing a separate random distribution in each channel, where is the value that is specified in the parameters Samples per frame.
For example, if the value of Minimum is [0, 0, -3, -3] and Maximum is [10, 10, 20, 20], then the block generates a four-channel output whose first and second columns contain random values in the range [0, 10] and whose third and fourth columns contain random values in the range [-3, 20].
The values Minimum and Maximum must be scalars or have the same number of columns.
Dependencies
To use this parameter, set the parameter Source type to Uniform.
| Default value |
|
| Program usage name |
|
| Tunable |
Yes |
| Evaluatable |
Yes |
# Maximum — maximum value of uniform distribution
Details
Specify the maximum value in the uniform distribution as a scalar or string vector of length . If a string vector is specified, the block generates a matrix to , containing a separate random distribution in each channel, where is the value that is specified in the parameters Samples per frame.
For example, if the value of Minimum is [0, 0, -3, -3] and Maximum is [10, 10, 20, 20], then the block generates a four-channel output whose first and second columns contain random values in the range [0, 10] and whose third and fourth columns contain random values in the range [-3, 20].
The values Minimum and Maximum must be scalars or have the same number of columns.
Dependencies
To use this parameter, set the parameter Source type to Uniform.
| Default value |
|
| Program usage name |
|
| Tunable |
Yes |
| Evaluatable |
Yes |
#
Repeatability —
block output repetition
Specify seed | Repeatable | Not repeatable
Details
Option to repeat the block output. Options to select:
-
Specify seed- the block uses the initial number that is specified in the parameters Initial seed, to produce repeated output for each simulation. -
Not repeatable- the block randomly selects an initial number and produces a different pseudo-random sequence for each simulation. -
Repeatable
| Values |
|
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
No |
# Initial seed — initial number for the random number generator
Details
Specify an initial number for a random number generator in the form of a scalar. The generator produces an identical sequence of pseudo-random numbers each time a block with a certain initial number is simulated.
Dependencies
To use this parameter, set the Repeatability parameter to . Specify seed.
| Default value |
|
| Program usage name |
|
| Tunable |
Yes |
| Evaluatable |
Yes |
#
Sample mode —
signal type
Discrete | Continuous
Details
Signal Type. Options for selection:
-
Discrete- discrete signal. -
Continuous- continuous signal.
| Values |
|
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
No |
#
Sample time —
output data sampling period
SampleTime (real number / vector of two real numbers)
Details
The output sampling period, of a random output sequence, is specified as a positive scalar. The period of the output frame is equal to .
Dependencies
To use this parameter, set the parameter Sample mode to Discrete.
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
Yes |
#
Samples per frame —
counts per frame
Int64 integer
Details
The number of samples in each output frame, specified as a positive integer scalar. The period of the output frame is equal to , where is the value of the parameters Sample time.
Dependencies
To use this parameter, set the Sample mode parameter to . Discrete.
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
Yes |
#
Output data type —
output data type
Double
Details
Output data type.
| Values |
|
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
No |
#
Complexity —
real or complex signal
Real | Complex
Details
Specify whether the output signal is real Real or complex Complex. These parameters control all output channels. The real and complex components of the output are statistically independent.
For complex output with distribution Uniform block takes the real and imaginary components in each channel from the same uniform random distribution defined by the parameters Minimum and Maximum for that channel.
For complex output with distribution Gaussian the block takes the real and imaginary components in each channel from normal distributions with different averages. In this case, the parameter Mean for each channel must have a complex value. The real component of the parameter Mean determines the mean of the real components in the channel, and the imaginary component determines the mean of the imaginary components in the channel. If the real or imaginary component in the Mean parameters is omitted, the block uses the default value 0 for the average value of this component.
For example, if the parameters Mean has [5+2i 0.5 3i] in it, a three-channel output with these average values is generated.
| Channel number | Real component | Minor component |
|---|---|---|
1 |
5 |
2 |
2 |
0.5 |
0 |
3 |
0 |
3 |
For a complex output signal, the parameters Variance determines the total variance for each output channel. This value is the sum of the variance of the real and imaginary components in that channel:
.
The block divides the specified variance value equally between the real and imaginary components.
,
.
| Values |
|
| Default value |
|
| Program usage name |
|
| Tunable |
No |
| Evaluatable |
No |
Additional Info
Uniform distribution
A uniform distribution is a type of probability distribution in which all outcomes are equally likely.
scalar random variable
Consider a scalar random variable , which the block takes from the uniform distribution of U:
,
where and — the minimum and maximum values of the distribution, respectively.
Alternatively, you can write in terms of a scaled normalized uniform variable:
,
.
The uniform random vector
If the block is configured so that it contains channel, then each output sample is a random vector from independent data. You can write it down how , where , moreover and — these are the minimum and maximum values of the vector parameters, respectively. If for the parameter Samples per frame the value is set , then each output frame represents on the matrix independent homogeneous random string vectors.
Complex uniform random variable
If the block is configured to generate a complex scalar random variable , where .
Alternatively, you can write how
,
.
Complex uniform random vector
When — this is a vector of complex random variables , where are independent.
Gaussian distribution
scalar random variable
If the block is configured to generate a random variable from a Gaussian (or normal) distribution, then the variable , where and — the average value and the variance, respectively.
Alternatively, you can write how , where — a standard normal variable.
gauss random vector
If in the block channels, then each output sample is a random vector of independent data. You can write a Gaussian random vector how , where , where and — mean and variance channels, respectively. Vector covariance matrix is a diagonal matrix represented as
.
Complex Gaussian random variable
If the block is configured to generate a complex scalar random variable
Alternatively, you can write
Complex Gaussian random vector
When