LabVIEWForum.de
Filter: Array rein, aber kein array raus - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Filter: Array rein, aber kein array raus (/Thread-Filter-Array-rein-aber-kein-array-raus)



Filter: Array rein, aber kein array raus - Larry - 22.09.2013 15:11

Hallo allerseits,

ich möchte einen veränderlichen einzelnen Ton über ein Mikrofon aufnehmen. Störgeräusche sollen rausgefiltert werden und dann eine FFT durchgeführt werden, welche mir die Frequenz des Tons zu jedem Zeitpunkt anzeigt. Diese Frequenz soll ebenfalls über die Zeit geloggt werden, aber soweit bin ich noch nicht.

Ich lese das Signal über DAQmx ein und kann es auch anzeigen. Es kommt direkt aus dem DAQ-Lesen VI. Ich zweige einen Draht ab und schicke es in einen Butterworth Filter und lasse mir das "gefilterte X" anzeigen. Aus dem Filterausgang kommt allerdings nur ein Wert raus, wo ich ein array haben möchte, um das gefilterte Signal in einen Graph umzuwandeln und einen gefilterten Sinus zu sehen.

Angehefteter Ausschnitt: Auf dem "Waveform Graph" kann ich meinen ungefilterten Sinus problemlos anzeigen. Mit dem Histogramm wollte ich sichergehen, dass ich das Format der Sondenfunktion richtig verstehe und es sich wirklich um viele Werte handelt, die in den Filter reingehen.

Mit der Highlight Funktion erscheint ein "#1" am Ausgang des DAQ-Lesen VIs. Trotzdem werden in jedem Loop die eingestellte Menge an Werten auf dem "Waveform Graph" angezeigt. In anderen Beispiel VIs steht dort "#1000", eben die Anzahl der Werte, die aus dem Ausgang kommen. Bei mir nur eine 1.

Mit Dasylab habe ich das in ein paar Sekunden zusammengeklickt, bei Labview bin ich Anfänger. Wo könnte das Problem liegen?


RE: Filter: Array rein, aber kein array raus - GerdW - 23.09.2013 08:19

Hallo Larry,

Zitat:Ich lese das Signal über DAQmx ein und kann es auch anzeigen. Es kommt direkt aus dem DAQ-Lesen VI. Ich zweige einen Draht ab und schicke es in einen Butterworth Filter und lasse mir das "gefilterte X" anzeigen. Aus dem Filterausgang kommt allerdings nur ein Wert raus, wo ich ein array haben möchte, um das gefilterte Signal in einen Graph umzuwandeln und einen gefilterten Sinus zu sehen.
Du liest mehrere Signale ein ("N Kanäle") und erzeugst ein Array of Waveforms...
Siehst du den roten Punkt am Eingang vom Butterworth? Der heißt CoercionDot und hat eine Bedeutung!

Zitat:Mit der Highlight Funktion erscheint ein "#1" am Ausgang des DAQ-Lesen VIs. Trotzdem werden in jedem Loop die eingestellte Menge an Werten auf dem "Waveform Graph" angezeigt. In anderen Beispiel VIs steht dort "#1000", eben die Anzahl der Werte, die aus dem Ausgang kommen. Bei mir nur eine 1.
Da du mehrere Signale lesen willst, wird dir hier die Größe des Arrays angezeigt: 1 Element. Was in diesem Element steckt (Waveform mit 1000 Messwerten) ist dem Highlight an der Stelle egal...

Lösung:
- Stelle das DAQmxRead um auf "1 Kanal N Samples". Lass dir die Messwerte gleich als 1D-Array liefern (nicht als Waveform).
- Lass dir den Fehlerausgang des Butterworth-Filters anzeigen...

Zitat:Mit Dasylab habe ich das in ein paar Sekunden zusammengeklickt
In LabVIEW dauert das auch nicht länger...