Seite 1 von 1

Pyside und Ploten von Echtzeit Signal

Verfasst: Dienstag 30. Januar 2024, 10:17
von momo_1212
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

Re: Pyside und Ploten von Echtzeit Signal

Verfasst: Dienstag 30. Januar 2024, 11:37
von __deets__
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.

Re: Pyside und Ploten von Echtzeit Signal

Verfasst: Dienstag 30. Januar 2024, 13:35
von __deets__
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.

Re: Pyside und Ploten von Echtzeit Signal

Verfasst: Montag 5. Februar 2024, 21:38
von Kebap
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.

Re: Pyside und Ploten von Echtzeit Signal

Verfasst: Montag 5. Februar 2024, 22:08
von __deets__
Natürlich ist das 2D, quasi ein Oszilloskop, aber es bleibt dabei, das 720K Datenpunkte auf selbst volle Bildschirmbreite einen massiven overdraw darstellen.