Random Source: Difference between revisions
mNo edit summary |
(Benchmark added) |
||
Line 37: | Line 37: | ||
; Block definition | ; Block definition | ||
: [https://github.com/gnuradio/gnuradio TODO] | : [https://github.com/gnuradio/gnuradio TODO] | ||
== Computational Performance == | |||
[[File:Benchmark prng.grc|alt=Benchmarking]] done on a Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 8GB RAM VOLK 2.5.0, GNU Radio 3.10.0.0-rc1, Linux 5.15.11 | |||
[[File:Benchmark prng.png]] | |||
{| class="wikitable" | |||
|- | |||
! Block | |||
! Number of Samples / Period after which samples repeat | |||
! Throughput (in 10<sup>6</sup> samples per second) | |||
! Note | |||
|- | |||
| Random Source | |||
| 1000 | |||
| 838 | |||
| default setting | |||
|- | |||
| Random Source | |||
| 2<sup>20</sup>=1,048,576 | |||
| 824 | |||
|- | |||
| Random Source | |||
| 2<sup>24</sup> | |||
| 812 | |||
|- | |||
| Random Source | |||
| 2<sup>28</sup> | |||
| 813 | |||
| Initialization of the random vector needs nearly 30s, eats 4GB of RAM | |||
|- | |||
| | |||
|- | |||
| Random Uniform Source | |||
| 2<sup>128</sup>-1 | |||
| 282 | |||
| | |||
|} | |||
Revision as of 16:06, 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
Computational Performance
File:Benchmark prng.grc done on a Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz, 8GB RAM VOLK 2.5.0, GNU Radio 3.10.0.0-rc1, Linux 5.15.11
Block | Number of Samples / Period after which samples repeat | Throughput (in 106 samples per second) | Note |
---|---|---|---|
Random Source | 1000 | 838 | default setting |
Random Source | 220=1,048,576 | 824 | |
Random Source | 224 | 812 | |
Random Source | 228 | 813 | Initialization of the random vector needs nearly 30s, eats 4GB of RAM |
Random Uniform Source | 2128-1 | 282 |
¹ 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