Random Source: Difference between revisions
No edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
[[Category:Block Docs]] | [[Category:Block Docs]] | ||
Generates a number of samples of random numbers of [min, max) meaning the max value won't be included. Repeat samples if specified. | Generates a number of samples of random numbers of [min, max) meaning the max value won't be included. Repeat samples if specified. Useful for creating bytes of information for testing a modulator. | ||
Ex: With min=0 and max=2, the sequence 01110101... will be generated. | Ex: With <code>min=0</code> and <code>max=2</code>, the sequence 01110101... of length <code>num_samps</code> will be generated. | ||
Supports an output of type int, short, and byte. | Supports an output of type int, short, and byte. | ||
Line 8: | Line 8: | ||
This block differs from [[Random Uniform Source]]: | This block differs from [[Random Uniform Source]]: | ||
This block uses Numpy to generate a fixed random vector of values. The output of this block repeats every <code> | This block uses Numpy to generate a fixed random vector of values. The output of this block repeats every <code>num_samps</code>, and hence has high autocorrelation with that period.<br> | ||
The algorithms used to generate the random numbers differ, as well: Numpy, and hence Random Source, use [https://en.wikipedia.org/wiki/Mersenne_Twister MT19937]¹, whereas the [[Random Uniform Source]] uses [https://xoroshiro.di.unimi.it/xoroshiro128plus.c XOROSHIRO128+], which has a period of 2<sup>128</sup>-1 and is hence to be preferred if autocorrelation over a window of length <code>num_samps</code> is relevant. | The algorithms used to generate the random numbers differ, as well: Numpy, and hence Random Source, use [https://en.wikipedia.org/wiki/Mersenne_Twister MT19937]¹, whereas the [[Random Uniform Source]] uses [https://xoroshiro.di.unimi.it/xoroshiro128plus.c XOROSHIRO128+], which has a period of 2<sup>128</sup>-1 and is hence to be preferred if autocorrelation over a window of length <code>num_samps</code> is relevant. | ||
Revision as of 15:46, 13 January 2022
Generates a number of samples of random numbers of [min, max) meaning the max value won't be included. Repeat samples if specified. Useful for creating bytes of information for testing a modulator.
Ex: With min=0
and max=2
, the sequence 01110101... of length num_samps
will be generated.
Supports an output of type int, short, and byte.
This block differs from Random Uniform Source:
This block uses Numpy to generate a fixed random vector of values. The output of this block repeats every num_samps
, and hence has high autocorrelation with that period.
The algorithms used to generate the random numbers differ, as well: Numpy, and hence Random Source, use MT19937¹, whereas the Random Uniform Source uses XOROSHIRO128+, which has a period of 2128-1 and is hence to be preferred if autocorrelation over a window of length num_samps
is relevant.
Parameters
(R): Run-time adjustable
- Param 1 (R)
- Description of parameter, provide any tips or recommended values. Note that the name of the parameter above should match the param's label that shows up in grc (e.g. Sample Rate).
- Param 2
- blah blah blah
Example Flowgraph
Source Files
- C++ files
- TODO
- Header files
- TODO
- Public header files
- TODO
- Block definition
- TODO
¹ The slightly superior randomness properties of MT19937 over XOROSHIRO128+ don't matter within the maximum size of a vector of values on a PC, and are generally unnoticable in an SDR contex