Pyside und Ploten von Echtzeit Signal

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
momo_1212
User
Beiträge: 7
Registriert: Mittwoch 2. August 2023, 23:56

Hi
ich muss einen echtzeit Signale (12 Kanäle) mit bis zu 12 kHz anzeigen über die letzten 60 sekunden . Welche library nehme ich da am besten?
Pyqtgraph scheint ir sehr langsam zu sein. Bis auf ich downsample massiv, kriege ich keinen flüssigen Signalverlauf hin.
Was rät ihr mir? Wie gehe ich am besten vor?
Danke
__deets__
User
Beiträge: 14439
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du kannst es mal direkt ueber die Qt SceneGraph API probieren, oder den QPainter. Aber es kann auch gut sein, dass du hier weit ueber die Grenzen dessen kommst, was mit CPU rendering moeglich ist. Denn wir reden hier ja ueber 8.64 Millionen Datenpunkte. Das ist IMHO GPU-Land.

Man findet da auch was fuer Python, wie zB https://github.com/rapidsai/cugraph etc, aber da ist genauere Recherche noetig.
__deets__
User
Beiträge: 14439
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also ich habe nochmal ein bisschen drueber nachgedacht, und was du da machst ist ja schon eher quatsch. 12KHz * 60 sind 720000 Datenpunkte pro Linie. Selbst auf nem 4K-Monitor ist das ein 180-facher overdraw. Das bringt doch gar nix. Interessant ist hier allerdings das downsampling, eine simpe Methode ist da sicher nicht gut genug. Fuer eine Spalte auf dem Bildschirm will man im Zweifel ein Paar von Min/Max-Werten. Wenn ich das suche, finde ich durchaus was dazu.
Benutzeravatar
Kebap
User
Beiträge: 684
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Ich lese hier nicht, dass alle 720.000 Punkte auf einer Linie legen sollen.

Ich vermute bei "über 60 sekunden" eher so, dass hier ein zweidimensionaler Graph der Historie gewünscht ist.

Vielleicht berichtet momo_1212 ja mal genauer, wie das am Ende aussehen soll, und wie oft sich was erneuert.
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
__deets__
User
Beiträge: 14439
Registriert: Mittwoch 14. Oktober 2015, 14:29

Natürlich ist das 2D, quasi ein Oszilloskop, aber es bleibt dabei, das 720K Datenpunkte auf selbst volle Bildschirmbreite einen massiven overdraw darstellen.
Antworten