(8.D.2.5) Rand
Overview
Random number generator using a LCG algorithm
Discussion
Generates uniformly distributed random values using a linear congruential generator. The module outputs 32-bit integer values which can be interpretted as int or fract32 values. The random values occupy the entire numerical range. Integer values are in the range of [-2^31 +2^31) and fract32 values are in the range of [-1 +1).
The seed variable specifies the starting seed of the random process. After the module processes a block of data, the seed value equals the last output sample. When the module is instantiated, the seed value is randomly set by MATLAB.
Type Definition
typedef struct _ModuleRand
{
ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure
UINT32 seed; // Initial seed value for the random number generator.
} ModuleRandClass;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
seed | uint | parameter | 0 | random value | Unrestricted | Â |
Pins
Output Pins
Name: out1
Description: audio output
Data type: fract32
MATLAB Usage
File Name: rand_module.m
M=rand_module(NAME, NUMPINS, NUMCHANNELS, BLOCKSIZE, SR, DATATYPE, ISCOMPLEX)
Random number generator module supporting integer and fract32 signal
types. The output signal is uncorrelated random data lying within the
full range of the allowable signal values. Integer values are in the
range of [-2^31 +2^31) and fract32 values are in the range of [-1 +1).
The module supports multiple output pins in which all of the data is
uncorrelated.
Arguments:
NAME - name of the module.
NUMPINS - number of output pins.
NUMCHANNELS - number of interleaved channels in each output pin.
BLOCKSIZE - number of samples per output channel.
SR - sample rate of the output.
DATATYPE - string specifying either, 'int' or 'fract32'.
ISCOMPLEX - boolean that indicates complex data.
Â