QT GUI Time Sink

Signale in Echtzeit im Zeitbereich darstellen — Number of Points, Autoscale und Multi-Signal-Konfiguration.

1. Beschreibung des Blocks

Der QT GUI Time Sink-Block (qtgui.time_sink_x) ist ein Ausgabe-Block, der ein oder mehrere Signale in Echtzeit im Zeitbereich anzeigt. Die Darstellung wird aus den gesampelten Werten zusammengesetzt — je mehr Samplepunkte je Bildschirmaktualisierung angezeigt werden, desto genauer (aber auch rechenintensiver) ist die Signaldarstellung.

In diesem Beispiel wurde ein 10-kHz-Signal (Periodendauer 0,1 ms) mit 10-facher Samplefrequenz abgetastet — im Signal sind daher 10 Punkte pro Periode enthalten:

QT GUI Time Sink Beispiel

2. Technischer Einsatz

Time Sink ist der Standardblock für die visuelle Kontrolle eines Signalverlaufs während der Entwicklung und Fehlersuche in einem Flowgraph — z. B. um zu prüfen, ob eine Filterstufe die erwartete Signalform liefert, oder um mehrere Signale (Original vs. verarbeitet) direkt übereinander zu vergleichen.

Number of Points richtig wählen: Bei einer Samplerate von 100 kHz und einer Signalfrequenz von 10 kHz ergeben sich für eine Periode 10 Datenpunkte. Bei Number of Points = 22 zeigt die Darstellung daher etwas mehr als 2 Perioden — bei Number of Points = 20 (ein Vielfaches der Periodenlänge) erscheint dagegen ein optisch stehendes Signal. Eine zu hohe Anzahl an Points führt zu extrem hoher CPU-Belastung, da entsprechend viele Perioden gezeichnet werden müssen — vorab immer grob abschätzen, wie viele Perioden tatsächlich dargestellt werden sollen.

QT GUI Time Sink Number of Points

Mehrere Signale gleichzeitig darstellen (Number of Inputs): Möchte man mehrere Signale in einem Zeitfenster darstellen, kann man mehrere Eingänge auswählen. Im folgenden Beispiel werden ein 10-kHz- und ein 50-kHz-Signal gemeinsam dargestellt (Type = Float, um nur den reellen Signalanteil zu zeigen):

QT GUI Time Sink zwei Signale

Number of Points wirkt dabei auf alle dargestellten Signale gleichermaßen — sollen z. B. 10 Perioden des 50-kHz-Signals sichtbar sein, ergeben sich für das 10-kHz-Signal gleichzeitig nur 2 Perioden (Number of Points = 20). Das 50-kHz-Signal besitzt bei einer Samplerate von 100 kHz dabei nur 2 Datenpunkte pro Periode — genau die Nyquist-Mindestzahl:

QT GUI Time Sink Nyquist-Grenze

Verdoppelt man Abtastrate und Number of Points, ergibt sich eine deutlich bessere Darstellung, wenngleich noch kein „glattes" Rechtecksignal für die 50-kHz-Frequenz gezeigt wird. Das Signal enthält aber dennoch alle Informationen, die für die Weiterverarbeitung notwendig sind — die Darstellungsqualität ist unabhängig von der tatsächlich verfügbaren Signalinformation:

QT GUI Time Sink höhere Abtastrate

3. Parameter und Dimensionierung

Parameter Typ/Einheit Bedeutung Dimensionierungshinweis
type (Type) Enum Complex, Float, Complex Message, Float Message Complex zeigt zwei Kurven (Re/Im) je Eingang, Float nur eine
size (Number of Points) Integer Anzahl der pro Bildschirmaktualisierung dargestellten Samples Vielfaches der Periodenlänge für ein stehendes Bild wählen; zu groß → hohe CPU-Last
srate (Sample Rate) Hz Abtastrate des Eingangssignals, für die Zeitachsen-Skalierung muss der tatsächlichen Flowgraph-Abtastrate entsprechen
nconnections (Number of Inputs) Integer Anzahl gleichzeitig darstellbarer Signale max. 5 bei Complex, max. 10 bei Float (Block-Assert)
autoscale (Autoscale) Bool automatische Skalierung der Y-Achse praktisch für unbekannte Signalpegel; für reproduzierbare Vergleiche besser feste ymin/ymax
ymin / ymax (Y min/max) Float feste Grenzen der Y-Achse an den erwarteten Amplitudenbereich anpassen, wenn autoscale = No
update_time (Update Period) Sekunden Zeit zwischen zwei Bildschirmaktualisierungen kleiner = flüssigere Darstellung, aber höhere GUI-Last
grid (Grid) Bool Gitternetzlinien erleichtert das Ablesen konkreter Signalwerte

CONFIG-Optionen je Eingang: Für jedes angeschlossene Signal lassen sich Bezeichnung (Label), Liniendicke, -farbe und -stil (durchgezogen, gepunktet, …) sowie ein optionaler Marker je Samplepunkt einzeln festlegen:

QT GUI Time Sink CONFIG-Optionen

4. Ein- und Ausgänge

Ein-/Ausgang Typ Anzahl
Eingang Complex oder Float (je nach type) nconnections (1–5 bzw. 1–10)
Ausgang keiner (reine Senke, GUI-Widget)

5. Weitere wichtige Aspekte

Live-Parameteränderung: set_update_time(...), set_y_axis(...) und set_samp_rate(...) erlauben eine Anpassung zur Laufzeit; Trigger-Einstellungen (Modus, Flanke, Pegel) ermöglichen ein stabiles, nicht driftendes Bild ähnlich einem klassischen Oszilloskop.

Nur zur Anzeige, nicht zur Auswertung: Time Sink liefert keine auswertbaren Daten an nachfolgende Blöcke — für automatisierte, assert-basierte Prüfungen von Signalverläufen ist stattdessen die in Testen mit GRC beschriebene headless-Methodik (Vector Sink + Python-Auswertung) der richtige Ansatz.

QT GUI Time Sink Einstellungen