LabVIEWForum.de - Gemischtes Signal filtern und aufteilen

LabVIEWForum.de

Normale Version: Gemischtes Signal filtern und aufteilen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo,

meine Konstellation sieht so aus... 2 LEDs (wechseln sich mit dem Senden ab)-> Fotodiode -> Transimpedanzverstärker -> ADC -> Arduino.

Nun lese ich die ankommenden Daten am Arduino per LabVIEW aus.
Meine Rohdaten sehen so aus:
[attachment=57787]

Man sieht den Charakteristischen Pulssignal (Pulsoximetrie) an den Amplituden.
Ich hatte vor das komplette Signal zu filtern und danach die Signale in jeweils rote LED und IR LED aufzuteilen.

Oder soll ich zuerst aufteilen und danach filtern?

Wenn ich ehrlich bin, weiß ich nichtmal wie und mit was ich filtern soll, sodass ich schöne Pulssignale bekomme.
Zum Beispiel so:
[attachment=57788]

Ich habe bis jetzt nur des:
[attachment=57789]

Den Teil mit dem Filtern hab ich i.wo abgeguckt...aber i.wie wills nicht funktionieren Big Grin

Tut mir Leid, ich kenne vieles nur aus der Theorie...deshalb fällt es mir gerade schwer wie und was ich tun soll und meine LabVIEW-Skills sind so la la Sad

Edit jg: Externe Bildlinks gelöscht, Bilder im LVF hochgeladen
Offtopic2
Willkommen im LVF. Bitte in Zukunft die LVF-Regeln beachten und Anhänge (auch Bilder) hier im Forum hochladen.

Danke, Jens
Hallo Hasiman,

1. Fangen wir mal mit dem Lesen der Messwerte vom Arduino an: werden die überhaupt korrekt gelesen?
BytesAtPort ist hier falsch, du hast doch einen TermChar beim SerialPortInit konfiguriert!
Kannst du mal typische empfangene Strings und deren umgewandelte Zahlen zeigen?

2. Im Rohdaten-Chart wird nur der erste Wert aus dem Messwert-Array angezeigt - und ich nehme an, dass dein Bild eben diesen Chart zeigt. Inwieweit stimmt die Darstellung im Chart mit der Gesamtheit der Messwerte überein?

3. Du bekommst ein Array, in dem wohl Messwerte zweier Datenquellen gemultiplext vorliegen. Dann willst du aber quer drüber mit einem Filter gehen - klingt das für die sinnvoll? (Anmerkung: sind die Filter-Einstellungen/-Konstanten sinnvoll?)

4. Dann nutzt du die Funktion "Dezimieren kontinuierlich" zweimal - warum nicht einfach einmal DecimateArray? (Natürlich nur, wenn man vorher die Messdaten auch korrekt vom Arduino liest!)

5. Dann zeigst du wieder nur genau das erste Sample aus deinen so gefilterten und dezimierten Daten an - und wunderst dich über "komische" Ergebnisse!? Hmm

Vielleicht solltest du nochmal genau überlegen, was du eigentlich machen willst - und nicht irgendwas programmieren, ohne zu verstehen, warum du es so und nicht anders löst…
(Das mag harsch klingen, ist aber einfach eine Bewertung der gezeigten Bilder!)
Erstmal vielen vielen Dank für die Antwort.
Du hast recht, die Werte waren nicht ganz so korrekt, habe jedoch dank dir meinen Fehler korrigiert (hoffentlich).
Bekomme jetzt um einiges bessere Werte, die ich mehr verstehe bzw. nachvollziehen kann:
[attachment=57791]
[attachment=57792]

So nun will ich die Signale teilen:

[attachment=57793]

Was ich damit erreichen wollte, dass das obere decimate jedes 2te Signal ab Messwert 0 nimmt und das untere decimate jedes 2te Signal ab Messwert 1 nimmt. Somit ich dachte ich z.B. (Messwert 0 rot, 1 ir, 2 rot, 3 ir usw.).
Hab ich das falsch verstanden? Bzw. falsch umgesetzt?
Hallo Hasiman,

Zitat:Somit ich dachte ich z.B. (Messwert 0 rot, 1 ir, 2 rot, 3 ir usw.). Hab ich das falsch verstanden? Bzw. falsch umgesetzt?
Das ist nicht falsch, nur sehr umständlich. Vergleiche mal dein Konstrukt mit der DecimateArray-Funktion… Big Grin
Hmm ja hast recht.
Langsam wird's mir peinlich, aber dann habe ich doch "Elements" -> keine Daten mehr?
Wie greife ich dann auf die Daten zurück? Bekomme natürlich sonst nur 0 Werte...

EDIT: bzw. ich bekomme Messwerte=0
Hallo Hasiman,

Zitat:dann habe ich doch "Elements" -> keine Daten mehr?
Wie greife ich dann auf die Daten zurück? Bekomme natürlich sonst nur 0 Werte...
Häh?
[attachment=57795]
Hallo Gerd,

[attachment=57796]

Genauso hab ich es...ich bekomme nur Nullwerte.
Hallo Hasiman,

siehe weiter oben meine Frage bei Punkt 1: Wie sehen typische Werte bei dir aus?

Zum neuen Bild:
Du hängst an ein leeres Array die neu ermittelten Messwerte an. Wieviele neue Messwerte hast du erhalten?
Wozu musst du die neuen Messwerte hinter ein leeres Array hängen? (Rube-Goldberg!)

Glas1 Da ist nur ein einziger Messwert im Array! Glas1
Wenn meine Glaskugel recht hat, dann kann das Decimate nicht funktionieren (warum: Hilfe lesen!). Es sollte vorher mit den SignalPorcessing-Funktionen aber auch nicht anderes/sinnvolles herausgekommen sein…
Just for information:

Hab das jetzt so gelöst und es funktioniert so wie es sein soll Smile

[attachment=57797]

Die Signale müssen natürlich noch gefiltert werden...
Seiten: 1 2 3
Referenz-URLs