WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

filtfilt Matlab

 

armer Eric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.07.2014, 21:59     Titel: filtfilt Matlab
  Antworten mit Zitat      
Hallo,

habe da so ein Problem mit der Zeitverzögerung beim Filtern.

Nun bin ich auf die filtfilt Funktion gestoßen. Könnte mein Problem lösen glaube ich. Nun will ich das in mein DSP implementieren. IIR Filter und reversen kein Problem.

Mein Problem sind die Anfangsbedingungen (die Initialstages von den IIR Filtern. will nicht mit 0 initialisieren, da nicht optimal)

Weiß einer zufällig was die filtfilt Funktion da macht. So richtig schlau geworden bin ich aus dem Code nicht Very Happy

Gruß und Danke


armer Eric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 11.07.2014, 14:28     Titel:
  Antworten mit Zitat      
Hallo,

nachprogrammieren kann ich das, aber würde gern wissen was bei den inital Bedingungen eigentlich gemacht wird. Weiß das wirklich niemand ? Oder kennt einer einen Link wo das erklärt ist ?

Gruß
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 12.07.2014, 17:24     Titel:
  Antworten mit Zitat      
Hallo armer Eric,

Im Code wird dies angegeben:

Zitat:
Fredrik Gustafsson, Determining the initial states in forward-backward
filtering, IEEE Transactions on Signal Processing, pp. 988--992, April 1996,
Volume 44, Issue 4


Es wird zunächst das Signal nach vorne und hinten verlängert, indem das Signal am Startwert "gespiegelt wird. Das ist nicht in allen Fällen eine gute Wahl, aber zumindest bei nicht arg zu verrauschten Signal eine "faire" Strategie.
Dieses verlängerte dient dazu, den Filter einschwingen zu lassen. Dann werden die internen Zustände des Filters noch so gesetzt, dass sie "möglichst gut" zum neuen Startwert des Signals passen.

Hilft das bereits?

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
armer Eric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2014, 07:55     Titel:
  Antworten mit Zitat      
Ja, danke für die Antwort.

Das hilft mir schon. Da werd ich wohl mal nach dem Buch googeln. Danke

Gruß,

Eric
 
armer Eric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2014, 16:16     Titel:
  Antworten mit Zitat      
Hallo, ich hätte nochmal ne Frage zu der Direktform 2.


Hier mal meine Filterimplementierung!
Code:

w1(3)=state(1);
w1(2)=state(2);
w1(1)=0;

gain=1;
output=0;
sz=size(input,2);
 for i=1:1:sz
     new_sample=input(i);    
     w1(1) = new_sample + ( -a1(1) * w1(2)) + (-a2(1)*w1(3));    
     res1=(b0(1)*w1(1))+(b1(1)*w1(2))+(b2(1)*w1(3));
     w1(3)=w1(2);
     w1(2)=w1(1);
     output(i)=res1*gain;
 end

 


Nun wollte ich meine Zustände w(1:3) mal ändern. Ergebnis natürlich falsch! Habe das wie die Filterfunktion in MatLab auch realisiert. Also Direktform2 transponiert und es funktioniert. Da diese Funktionen aber identisch sein müssten weiß ich gerade nicht weiter. Sind die Zustände w(1:3) =0 stimmt es. Irgendwie muss ich gerade einen Denkfehler haben. Weiß zufällig einer was ich nicht beachte. Wenn ich die Zustände verändere (also Randbedingungen habe)

Danke schon mal
 
armer Eric

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.07.2014, 16:32     Titel:
  Antworten mit Zitat      
Zustandsgleichungen:

Quelle Internet

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  79.28 KB
 Heruntergeladen:  266 mal
Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  79.28 KB
 Heruntergeladen:  268 mal
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.