LabVIEWForum.de - Joystick auslesen und Tiefpassfiltern

LabVIEWForum.de

Normale Version: Joystick auslesen und Tiefpassfiltern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,
ich habe eine Frage und zwar habe ich einen Beschleunigungssensor als Joystick an meinem Rechner. Diesen kann ich in Labview initialisieren und in einer While Schleife auslesen. Die Daten kann ich mir soweit auch anzeigen lassen.
Jetzt würde ich das Ausgangssignal gerne Tiefpassfiltern und bekomme dort eine Fehlermeldung. Aus dem Joystick selbst kommt ein Cluster. Dieses kann man dann in einzelne Longinteger trennen. Kann es sein, dass der Tiefpassfilter nicht mit Longinteger arbeiten kann? Wie muss ich das Signal vorher bearbeiten damit dies funktioniert?
Kann mir jemand weiterhelfen? Ich bin Neuling und versuche gerade die ersten Schritte in Labview.

Vielen Dank im Voraus.
Hallo mtec,

Zitat:Kann es sein, dass der Tiefpassfilter nicht mit Longinteger arbeiten kann? Wie muss ich das Signal vorher bearbeiten damit dies funktioniert?
Wenn du "der ..." schreibst, solltest du genau beschreiben, wer "der" ist. Am besten ist dazu natürlich, ein VI anzuhängen…
Hallo GerdW,

vielen Dank für deine Antwort. Ich habe die VI mal angehängt. Wie gesagt ich fange gerade erst an mit Labview zu arbeiten.
Ich bekomme beim Filter immer die Meldung: Fehler -20023 ist bei Filter2 - Mögliche Gründe:

Analysis: Folgende Bedingungen müssen erfüllt sein: 0 < f_niedrig <= f_hoch <= fs/2.

Aber ich vermute, dass es evtl. am Eingangssignal des Filters liegt.
Hallo mtec,

Zitat:Aber ich vermute, dass es evtl. am Eingangssignal des Filters liegt.
Richtig vermutet!
Du gibst dem Filter einen skalaren Wert (aka Einzelwert), nämlich den aktuellen Z-Wert deines Joysticks. Was soll er daran filtern?

Du musst deine "Messwerte" in einem Array sammeln und kannst daran dann filtern.

Falls dein LV7.1 schon die Pt-By-Pt-Befehle in der Signalverarbeitungspalette kennt, solltest du dort mal nach passenden Filtern schauen. Diese Funktionen kommen nämlich mit Einzelwerten klar!

P.S.: Ergänze bitte dein Profil. Es gibt Unterschiede zwischen LV7 und LV7.1…
Version habe ich angepasst.
Point by Point finde ich bei mir leider nicht.

Wie wäre denn das Vorgehen die Werte in das Array zu schreiben und dieses mit dem Filter wiederum richtig auszulesen? Habe es probiert aber bin bis jetzt nicht erfolgreich gewesen....
Hallo mtec,

dafür verwendet man Schieberegister und (im einfachsten Fall) BuildArray.

Wobei man bei deiner Schleife mit dt=1ms die Arraylänge begrenzen sollte…

Probiere das mal aus:
[attachment=49286]
Hallo GerdW,
vielen Dank für deinen Vorschlag.
Es tut mir leid, dass ich nochmal fragen muss. Ich finde den Baustein nicht, in dem bzw. mit dem du das Array beschreibst. Erst erstellst du es, dann beschreibst du es und dann liest man ein Teil-Array aus, korrekt? Den Block zum beschreiben finde ich nicht....
Hallo mtec,

InitArray (vor der Schleife), dann BuildArray und ArraySubset.

Bist du wirklich auf LV7.1 festgenagelt? Das ist doch schon uralt - auch wenn es eine der besseren LV-Versionen ist… Big Grin
Neuere Version ist in arbeit. Bis dahin leider 7.1.....

ich habe es jetzt mal so zusammen gebaut. funktioniert aber leider noch nicht so richtig.

Füllt der nicht bei jedem Schleifenumlauf nicht nur den ersten Platz im Array?
Du hast das Schieberegister vergessen! (vgl. Screenshot von Gerd)

Gruß, Jens
Seiten: 1 2
Referenz-URLs