Throttle
Der Drosselblock reguliert die Ausgabe eines Datenstroms auf eine kontrollierte Abtastrate.
1. Beschreibung des Blocks
Der Throttle-Block (blocks.throttle) nimmt einen Eingangsdatenstrom entgegen und gibt denselben Datenstrom mit einer kontrollierten Rate wieder aus. Er führt dazu eine zeitbasierte Verzögerung zwischen den einzelnen Samples ein, sodass die gewünschte Ausgangsabtastrate über einen Timer statt über echte Hardware-Taktung erreicht wird.
2. Technischer Einsatz
Throttle wird benötigt, wenn kein anderes Element im Flowgraph die Datenrate von sich aus begrenzt — normalerweise übernimmt das eine reale Hardwarekomponente wie ein SDR-Empfänger, dessen Sample-Ausgabe an einen physischen Takt gebunden ist. Fehlt eine solche Komponente (z. B. bei einem rein synthetischen Testaufbau mit Signal Source statt echtem SDR), würde GNU Radio den Flowgraph ohne Bremse so schnell wie möglich durchrechnen — mit entsprechend hoher, unnötiger CPU-Last und ggf. Pufferüberlauf in nachgeschalteten GUI-Sinks.
Throttle wird deshalb in der Regel direkt an eine Signalquelle angeschlossen (Signal Source, Vector Source, Noise Source), um deren Ausgaberate künstlich auf die konfigurierte samp_rate zu begrenzen und damit „Echtzeit"-Verhalten zu simulieren.
3. Parameter und Dimensionierung
| Parameter | Typ/Einheit | Bedeutung | Dimensionierungshinweis |
|---|---|---|---|
type |
Enum | Datentyp: Complex, Float, Int, Short, Byte | muss dem Typ der Quelle entsprechen |
samples_per_second (Sample Rate) |
Hz | Zielrate, auf die der Datenstrom gedrosselt wird | identisch zur samp_rate-Variable des Flowgraphs |
vlen (Vector Length) |
Integer | Anzahl Elemente pro Vektor-Sample | Standard 1 |
ignoretag (Ignore rx_rate tag) |
Bool | ob ein rx_rate-Stream-Tag die konfigurierte Sample Rate überschreiben darf |
Standard True; bei Zusammenspiel mit einer echten SDR-Quelle ggf. False, um deren tatsächliche Rate zu übernehmen |
4. Ein- und Ausgänge
| Ein-/Ausgang | Typ |
|---|---|
| Eingang | wie type |
| Ausgang | wie type (optional — kann auch als reine Senke ohne weiteren Verbraucher enden) |
5. Weitere wichtige Aspekte
Nicht für Präzisionstiming geeignet: Da die Drosselung über einen Software-Timer läuft, ist die tatsächliche Rate nie exakt — für echte Timing-Analysen (z. B. Bitraten-Messung) sollte stattdessen mit einer festen, bekannten Sample-Anzahl gearbeitet werden statt sich auf die Throttle-Genauigkeit zu verlassen.
Live-Parameteränderung: set_sample_rate(...) erlaubt eine Anpassung der Zielrate zur Laufzeit.
Weiterführende Details: Beschreibung im GNU-Radio-Wiki.