LabVIEWForum.de
mit 20kS/s abgetastes Signal darstellen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: mit 20kS/s abgetastes Signal darstellen (/Thread-mit-20kS-s-abgetastes-Signal-darstellen)



mit 20kS/s abgetastes Signal darstellen - olnol - 27.08.2009 15:00

Hallo, ich taste mit 20kS/s ein Sinussignal ab.
Gebe ich die Daten auf meinem Diagramm aus, sehe ich links und rechts einen kurzen Strich zappeln der auf der Waagerechten hoch und runter läuft, eben meine Amplitude abläuft. Der untere Graph ist ein gespeicherter Signalverlauf. Hier wurde auf das Signal getriggert, eine endliche Zahl von Werten gespeichert und diese dann ausgegeben. Ich möchte aber auch in meiner Live-Anzeige(Diagramm) mein vollständiges Signal sehen, dh Spitze-Spitze und eine endliche Zahl von Perioden.
Aber was muss ich dazu einstellen???


mit 20kS/s abgetastes Signal darstellen - olnol - 28.08.2009 07:47

28 Aufrufe und wirklich keiner kann mir helfen?


mit 20kS/s abgetastes Signal darstellen - chrissyPu - 28.08.2009 08:07

Hi,

könnte es sein, dass Deiner Schleife ein Timing fehlt? Wie es für mich aussieht (bin nicht so der DAQmx-Nutzer) läuft die durch und wenn alles abgearbeitet ist, wird halt ein Wert von Deiner Karte gesampled. Dann wieder von vorne - ohne Puffer in der Karte (den Du wahrscheinlich nicht hast, weil du Echtzeit-Anzeigen haben willst) ist das nicht deterministisch und du greifst irgendeinen Wert ab, den Du dann in der While-Schleife manuell auf 20 kHz Abtastrate setzt. So du nur einen Wert vergisst, ist Deine Anzeige damit eher falsch als richtig.

Vorschlag: Da für das menschliche Auge ein Update mit 5 Hz eigentlich ausreichend ist: Puffer doch mal 1000, 2000 Werte in der Karte (je nachdem, was die so kann) und lies diese als Block aus und aktualisier damit dann Deine Anzeige. Das ist auf dem Hostrechner auch ressourcensparender als dauernd abzufragen und den Time lag kannst du wahrscheinlich verschmerzen...

Was auch noch ein problem sein könnte ist, dass Zugriffe auf das Frontpanel mehr Rechenleistung brauchen als wenn ich im BD was hin und her schiebe. Auch aus diesen Gründen ist ein Puffern der Daten, bevor man sie anzeigen lässt, keine schlechte Idee...

Viel Erfolg,

ch

PS Da die meisten hier m.E. doch ehr zu den beruflichen LV-Nutzern gehören, sollte man die Nacht nicht zur Antwortzeit hinzuzählen.
Einen ganzen Tag auf die Antwort warten finde ich ehrlich gesagt nicht zu viel verlangt...


mit 20kS/s abgetastes Signal darstellen - A.Berndsen - 28.08.2009 09:45

' schrieb:28 Aufrufe und wirklich keiner kann mir helfen?

Ein Moderator liest Deine Frage auch nur mal um zu sehen, ob alles mit Deinem Beitrag ok ist.
Und jeder opfert hier freiwillig Zeit, um sich mit einer Frage auseinander zu setzen. Das ist aber noch keine Verpflichtung zu einer Antwort.

Schau mal das Beispiel an. Damit kommst Du selber auf die Lösung.
Lv85_img[attachment=20871]

Grüße
Andreas


mit 20kS/s abgetastes Signal darstellen - olnol - 28.08.2009 10:24

Zitat:könnte es sein, dass Deiner Schleife ein Timing fehlt? Wie es für mich aussieht (bin nicht so der DAQmx-Nutzer) läuft die durch und wenn alles abgearbeitet ist, wird halt ein Wert von Deiner Karte gesampled. Dann wieder von vorne - ohne Puffer in der Karte (den Du wahrscheinlich nicht hast, weil du Echtzeit-Anzeigen haben willst) ist das nicht deterministisch und du greifst irgendeinen Wert ab, den Du dann in der While-Schleife manuell auf 20 kHz Abtastrate setzt.

Also ich stelle über mein TimingVi ausserhalb der WhileSchleife eine kontinuierliche Datenerfassung mit einer Abtastrate von 20kS/s ein. In meiner While-Schleife lese ich dann pro Durchlauf immer einen Sample aus dem Puffer meiner Karte. Aber ich lese doch nicht irgendeinen Wert mit dieser Methode aus, sondern doch eig nach der Reihenfolge (FIFO) oder habe ich da was falsch verstanden??
Das mit dem Auslesen mehrerer Samples gleichzeitig stellt sich einwenig schwierig da. Und zwar muss ich jeden Abtastwert einzeln verarbeiten.


Zitat:Schau mal das Beispiel an. Damit kommst Du selber auf die Lösung.

ich hab hier im mom leider nur V8.2



PS: sorry für mein DrängelnWink


mit 20kS/s abgetastes Signal darstellen - A.Berndsen - 28.08.2009 12:22

' schrieb:ich hab hier im mom leider nur V8.2

Dann solltest Du DeinProfil_ergaenzen
Lv82_img[attachment=20875]


mit 20kS/s abgetastes Signal darstellen - Y-P - 28.08.2009 12:33

Drängeln hat hier den blöden Nebeneffekt, dass Du (bzw. jeder der drängelt) unter Umständen einfach nicht mehr beachtet wird. Wink

Gruß Markus

' schrieb:PS: sorry für mein DrängelnWink



mit 20kS/s abgetastes Signal darstellen - johannes_r - 04.09.2009 09:52

Ich bin zwar auch kein wirklicher Experte aber ich bin der Meinung, dass du mit deinen Einstellungen eine Fehlermeldung bekommen würdest wenn du deinen Fehlerausgang des DAQmx read mit deinem Abbruchsymbol der while Schleife verbindest. Wenn du einen Windows rechner hast und die while Schleife nicht getaktet ist dann läuft sie so schnell sie kann -->hohe cpu auslast. Und außerdem wird sie glaub ich eh nicht mit 20kHz laufen. Bei Windows vielleicht etwas über 1kHz und das nicht deterministisch. Du hast schon recht mit dem FIFO, aber der Speicher auf der Karte ist auch begrenzt und wenn du zu langsam ausliest ist halt nun irgendwann mal der Speicher voll. Dann gehen Samples verloren und du bekommst eine Fehlermeldung...
Also entweder mehrere Samples auslesen oder es geht nur ca 1kHz Samplerate...
Wie gesagt ich bin nicht so erfahren wie manch anderer hier, aber zumindest müsste etwas wahres dabei seinWink

gruß johannes


mit 20kS/s abgetastes Signal darstellen - chrissyPu - 04.09.2009 13:25

Hi,

unabhängig vom Timing-Problem lag das Problem wohl eher darin, dass immer nur ein Wert in das Signalverlaufsdiagramm geschrieben wrude. Bekommt man raus, in dem man sich das Beispiel von A.Berndsen anschaut....

ch