Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe ein Problem mit Butterworth Filter, nach dem Filtern habe ich immer 0 als Anfangswert, was eigentlich nicht zu meinen Werte gehört.
2 Problem tritt bei der Ableitung auf, es wird immer am Ende der Kurve eine Gerade dargestellt. im Anhang ist das Programm und ein Screenshot.
weiß Jemand woran das Problem liegt?
viele Grüße Amina
Das ist kein "Problem", sondern eine Grundeigenschaft jedes "Tiefpassfilters im energielosen Anfangszustand" (Analogtechnik -> "energielos" = Digitaltechnik -> "rückgesetzt") . Er hat zur Zeit t=0 den Ausgangwsert 0 hat und ändert diesen Wert nicht sprunghaft, sondern stetig.
Um das zu ändern gibt es zwei Mögloichkeiten:
1. Du subtrahierst das Arrayelement 0 vom Array, so dass der Array mit dem Wert 0 beginnt, und addierst den Wert nach der Filterung wieder.
2. Du hängst an das Array noch genügend viele Werte des Arrayelementes 0 vor dem Array an, so daß der Filter die Gelegenheit hat, sich auf diesen Wert einzuschwingen. Nach der Filterung die Werte wieder entfernen.
Deine gewählte Grenzfrequenz von 0.125 Hz ist übrigens absurd niedrig. Da reicht nicht mal die Diagrammlänge von 5 sek aus, um sich einzuschwingen.
Hi Lucki vielen dank für deine Hilfe.
die Grenzfrequenz muss 6,14 Hz gewählt werden, aber die 2 Möglichkeit habe ich leider nicht verstanden, und die erste Möglichkeit klappt leider nicht
Viele Grüße
25.01.2012, 10:34 (Dieser Beitrag wurde zuletzt bearbeitet: 25.01.2012 10:41 von Hook1986.)
Du benutzt zunächst Index Array und holst dir somit das erste Arrayelement (dein erster Wert). Danach benutzt du die Funktion "In Array einfügen" und fügst dieses erste Arrayelement mehrfach an der ersten Stelle deines Array ein. Somit ermöglichst du dem Filter, dass er sich auf den Anfangswert einschwingt. Nach der Filteroperation musst du natürlich die Anzahl Elemente, die die vor dem Filtern eingefügt hast auch wieder aus dem Array entfernen. Somit wird verhindert, dass du am Anfang einen Sprung in der Kurve hast.
Hi Lucki die beider Möglichkeiten funktionieren super, bei der ersten Möglichkeit hatte ich ein Fehler gemacht, deswegen dachte ich mir, es funktioniert nicht, also deine beide Vorschläge funktionieren einfach wunderbar, noch mal vielen vielen dank Lucki .
Gruß Amina