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

Probleme mit einem Kammfilter

 

keinGastmehr
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2015, 16:25     Titel: Probleme mit einem Kammfilter
  Antworten mit Zitat      
Hallo Matlab-Community

Ich beschäftige mich derzeit mit dem herausfiltern eines in regelmäßigen Frequenzabständen von je 50 Hz autretenden Rauschens aus meinem Datenvektor. Dazu will ich ein Kammfilter benutzen. Bei einer Samplingfrequenz von 20 kHz muss ich also meinen Datenvektor mit einer um, in diesem Fall, 400 Datenpunkte verzögerten Version von sich selbst subtrahieren. Das entspricht einer Filterung mit einem symmetrischen FIR-Filter, trotzdem sehe ich beim testen meines Filters phasenabhängige Verzögerungen im Signal.

Ich habe das ganze mal ausführlicher mit Summen aus je zwei Kosinus getestet. einer davon hat eine Frequenz von 50 Hz und wird herausgefiltert, der Zweite hat eine Frequenz von 50 bis 75 Hz. Das Ergebnis der Filterung wird anschließend mit dem was eigentlich herauskommen sollte, nämlich der Kosinus der keine 50 Hz Frequenz hat, verglichen. In Fig. 3 bis 6 sind die Resultate dieses Vergleichs dargestellt. Wärend der 75 Hz Kosinus noch exakt das Optimalergebnis trifft, verschiebt sich für Frequenzen näher an 50 Hz das gefilterte Signal immer weiter nach links vom Optimalergebnis weg.

Das die Amplitude der gefilterten Kosinus sinkt, je näher sie den 50 Hz kommen ist ja noch logisch, aber diesen Versatz nach links verstehe ich nicht da ja, wie bereits eingans Erwähnt, die Subtraktion einer Filterung mit einem symmetrischen FIR-Filter entspricht, der eine lineare Phase hat.

Fig6.jpg
 Beschreibung:

Download
 Dateiname:  Fig6.jpg
 Dateigröße:  62.61 KB
 Heruntergeladen:  473 mal
Fig5.jpg
 Beschreibung:

Download
 Dateiname:  Fig5.jpg
 Dateigröße:  57.61 KB
 Heruntergeladen:  435 mal
Fig4.jpg
 Beschreibung:

Download
 Dateiname:  Fig4.jpg
 Dateigröße:  62.67 KB
 Heruntergeladen:  442 mal
Fig3.jpg
 Beschreibung:

Download
 Dateiname:  Fig3.jpg
 Dateigröße:  44.33 KB
 Heruntergeladen:  453 mal
Private Nachricht senden Benutzer-Profile anzeigen


DSP
Forum-Meister

Forum-Meister



Beiträge: 2.117
Anmeldedatum: 28.02.11
Wohnort: ---
Version: R2014b
     Beitrag Verfasst am: 11.12.2015, 23:24     Titel:
  Antworten mit Zitat      
Hallo,

poste doch bitte mal wie du den Filter erstellt hast. Hast du dir mal den Frequenzgang deines Filters angesehen?
Private Nachricht senden Benutzer-Profile anzeigen
 
keinGastmehr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2015, 01:28     Titel:
  Antworten mit Zitat      
Da das Filter ja nur aus einer einfachen Subtraktion besteht habe ich mir nur den Frequenzgang des dazu theoretisch passenden symmetrischen FIR-Filters ansehen können und der sah in Ordnung aus. (kann jetzt gerade leider keine Bilder anhängen, da die auf dem Arbeitsrechner sind, aber es war der typische lineare, regelmäßige Sägezahn-Phasengang, alles absolut Schnurgerade.)

Berechnet habe ich das ganze so:

y(t) = sin(2*pi*f*t) - sin(2*pi*f*(t-t0)) = 0


=> sin(2*pi*f*(t-t0)) = sin(2*pi*f*t - 2*pi*f*t0)

setze Verschiebungsterm 2*pi*f*t0 auf Vielfache von 2 pi:

2*pi*f*t0 = n*2*pi wobei n eine ganze Zahl ist.

Damit f*t0 = n

Auslöschung der Frequenzen

f = n*(1/t0) (1)

Vielfache von 50 Hz sollen ausgelöscht werden, also

f = n * 50 1/s

Gleichsetzen mit (1)

n * 50 1/s = n*(1/t0)
50 1/s = 1/t0
t0 = 1/50 1/s

Ausdrücken als Vielfaches des Abtastintervalls T = 1/20.000 1/s

t0 = k0 * T mit k0 = 400.

Also sollten sich, wenn man das Signal mit einer um 400 Datenpunkte verschobenen Version von ihm selbst subtrahiert, alle durch 590 Hz teilbaren Frequenzen auslöschen (was sie auch tun), gleichzeitig werden aber andere Frequenzen in der Phase verschoben, was nicht passieren sollte.
Private Nachricht senden Benutzer-Profile anzeigen
 
keinGastmehr
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 10.12.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.12.2015, 04:42     Titel:
  Antworten mit Zitat      
Ich meinte am Ende natürlich " alle durch 50 Hz teilbaren Frequenzen", da ist mir wohl irgendwie eine 9 reingerutscht.^^
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2024 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.