Hallo,
Wahrscheinlich ist das eine der duemmsten Fragen.... und ich bin mir gar nicht genau sicher ob ich in der richtigen Kategorie bin.
Ich versuch es einfach mal. Ich erhalte eine Serie von Werten (0, 1,2,3,4,3,4,2,1,5,.......) mit Hilfe der seriellen Schnittstelle. Die serielle Schnittstelle wird ausgelesen und das Auslesen ist in einer While Schleife. Ich wuerde dieses Signal nun gerne Low Pass filtern. Jedoch scheint es so das ich dieses Serie in ein Signal umwandeln muss und ich irgendwie delta T hinzufuegen muss. Jednfalls passen die Datentypen dieser Serie nicht mit dem eines Low Pass Filters ueberein.
Wie macht man so was?
LG
Herzlich willkommen im Forum!
Der Datentyp "Signal" wird rund um Express-VIs verwendet, damit würde ich gar nlcht erst anfangen. Wenn du filtern willst: die komfortabelsten Filter-VIs arbeiten mit dem Format "Signalverlauf". Dahin würde ich die Daten konvertieren, und zwar so:
[
attachment=51849]
Danke erstmal.... werde ich mal versuchen.
Sorry wenn ich frage aber wo kommen die Werte denn rein.... die Welle oder Y?
Was mach ich denn wenn dt von der While Schleife abhaengt und dementsprechend variert. Zeitgesteuerte While Schleife?
Gruesse
(21.01.2015 12:13 )agroell schrieb: [ -> ]Sorry wenn ich frage aber wo kommen die Werte denn rein.... die Welle oder Y?
Sorry ebenfalls, die Frage verstehe ich nicht
Zitat:Was mach ich denn wenn dt von der While Schleife abhaengt und dementsprechend variert. Zeitgesteuerte While Schleife?
Wie Du die Datenerfassung machst, weiß ich nicht. Das Ideal ist natürlich, die Daten gleich mit konstantem dt zu erfassen. Am besten geht das mit einer Messkarte mit eingebauten Timer. Beim softwaremäßigen Aufruf jedes einzelnes Messwertes in einer Schleife funktioiniert das nur bedingt und bei niedrigen Raten, weil Windows kein Echtzeitsystem ist.
Wenn man Daten mit nicht äquidistanten Zeiten filtern will, dann ist vorher eine softwaremäßige Neuabtastung erforderlich. Es wird ein dt vorgegeben, und alle Werte, die nicht zufällig auf einem Vielfachen von dt liegen, werden aus den benachbarten Daten interpoliert. Hier Beispiel für einfache lineare Interpolation.
[
attachment=51855]
Hallo,
Danke erstmal fuer deine Antwort... Sorry ich habe mich vieleicht schlecht ausgedrueckt .
Ich habe eine Reihe von Werten die ich via serieller Schnittstelle erhalte z.B. x1, x2, x3, x4, x5.... Da diese durch die serielle Schnittstelle kommen habe ich keine definierten Zusammenhang zur Zeit. Weiss jedoch das x1 als erstes kam, x2 als zweites usw..
Habe mir gerade das lineare Interpolationsbeispiel angeschaut. Wenn ich das richtig verstehe kommen die Werte x1, x2, x3,... in das Array "Werte" und in das Array "Zeiten" kommt die dazugehoerige Zeit, die ich ermittle wenn ich einen Wert via serieller Schnittstelle erhalte.
Gruesse
Hallo agroell,
Zitat:Da diese durch die serielle Schnittstelle kommen habe ich keine definierten Zusammenhang zur Zeit.
Was für ein Gerät hängt den an der seriellen Schnittstelle?
Die meisten mir bekannten Geräte senden (oder bestimmen) ihre Messwert in einem festen Intervall (aka Samplerate). Und unabhängig von möglichen Verzögerungen durch die Datenkommunikation kann man die einzelnen Samples trotzdem als zeit-äquidistant verwenden…
Hallo agroell,
auf der Webseite steht "Sample rate: 100 Hz".
Stimmt das in etwas mit der Datenübertragungsrate überein? Wieviele Werte bekomst du pro Sekunde übermittelt?
Sorry um ehrlich zu sein, habe ich das noch nie gecheckt.
Werd ich mal uebers Wochenende machen.
Liege zur Zeit nur gerade mit einer Erkaeltung krank im Bett...
Halloechen bin zurueck... Ich war krank und dann hat es noch die Familie erwischt.
OK, ich denke ich versteh nun das Build Waveform und Delta T, usw. Jedoch erwartet das Build Waveform ein Array. Dumme Frage... wie bekomme ich meine Werte in ein Array?
Desweiteren brache ich einen continuously andauernde Filterung ... Also nicht Signal aufnehmen und dann analysisen...
LG