Throttle: Difference between revisions

From GNU Radio
Jump to navigation Jump to search
(Created page with "Throttle flow of samples such that the average rate does not exceed samples_per_sec This should only be used in GUI apps where there is no other rate limiting block. It is no...")
 
No edit summary
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Throttle flow of samples such that the average rate does not exceed samples_per_sec
[[Category:Block Docs]]
Throttle flow of samples such that the average rate does not exceed the specific rate (in samples per second).


This should only be used in GUI apps where there is no other rate limiting block. It is not intended nor effective at precisely controlling the rate of samples. That should be controlled by a source or sink tied to sample clock. E.g., a USRP or audio card.
A throttle block should be used if and only if your flowgraph includes no rate limiting block, which is typically hardware (e.g., an SDR, speaker, microphone). It is not intended nor effective at precisely controlling the rate of samples. That should be controlled by a source or sink tied to sample clock. E.g., a USRP or audio card.
 
The Throttle Block is typically attached directly to the output of a non-hardware source block (e.g. [[Signal Source]]), in order to limit the rate at which that source block creates samples. 
 
== Parameters ==
(''R''): <span class="plainlinks">[https://wiki.gnuradio.org/index.php/GNURadioCompanion#Variable_Controls ''Run-time adjustable'']</span>
 
; Sample rate(''R'')
: Maximum average sample rate desired.
 
; Ignore rx_rate tag
: If set to False, the block will set its sample rate to the value of recieved tags with the key rx_rate. It will ignore other tags.
 
== Example Flowgraph ==
 
In this example flowgraph, if you remove the Throttle block, the output will look the same, but your CPU will be at 100% and GNU Radio might crash.
 
[[File:signal-source-ex.png|700px]]
 
== Source Files ==
 
; C++ files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/lib/throttle_impl.cc Here]
 
; Header files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/lib/throttle_impl.h Here]
 
; Public header files
: [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/include/gnuradio/blocks/throttle.h Here]
 
; Block definition
: [https://github.com/gnuradio/gnuradio/blob/master/gr-blocks/grc/blocks_throttle.block.yml Yaml]

Revision as of 15:27, 22 July 2019

Throttle flow of samples such that the average rate does not exceed the specific rate (in samples per second).

A throttle block should be used if and only if your flowgraph includes no rate limiting block, which is typically hardware (e.g., an SDR, speaker, microphone). It is not intended nor effective at precisely controlling the rate of samples. That should be controlled by a source or sink tied to sample clock. E.g., a USRP or audio card.

The Throttle Block is typically attached directly to the output of a non-hardware source block (e.g. Signal Source), in order to limit the rate at which that source block creates samples.

Parameters

(R): Run-time adjustable

Sample rate(R)
Maximum average sample rate desired.
Ignore rx_rate tag
If set to False, the block will set its sample rate to the value of recieved tags with the key rx_rate. It will ignore other tags.

Example Flowgraph

In this example flowgraph, if you remove the Throttle block, the output will look the same, but your CPU will be at 100% and GNU Radio might crash.

Signal-source-ex.png

Source Files

C++ files
Here
Header files
Here
Public header files
Here
Block definition
Yaml