|
|
Probleme mit einem Kammfilter |
|
keinGastmehr |
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 10.12.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 10.12.2015, 15:25
Titel: Probleme mit einem Kammfilter
|
|
|
|
|
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.
Beschreibung: |
|
Download |
Dateiname: |
Fig6.jpg |
Dateigröße: |
62.61 KB |
Heruntergeladen: |
507 mal |
Beschreibung: |
|
Download |
Dateiname: |
Fig5.jpg |
Dateigröße: |
57.61 KB |
Heruntergeladen: |
455 mal |
Beschreibung: |
|
Download |
Dateiname: |
Fig4.jpg |
Dateigröße: |
62.67 KB |
Heruntergeladen: |
474 mal |
Beschreibung: |
|
Download |
Dateiname: |
Fig3.jpg |
Dateigröße: |
44.33 KB |
Heruntergeladen: |
484 mal |
|
|
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 11.12.2015, 22:24
Titel:
|
|
Hallo,
poste doch bitte mal wie du den Filter erstellt hast. Hast du dir mal den Frequenzgang deines Filters angesehen?
|
|
|
keinGastmehr |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 10.12.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.12.2015, 00:28
Titel:
|
|
|
|
|
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.
|
|
|
keinGastmehr |
Themenstarter
Forum-Newbie
|
|
Beiträge: 5
|
|
|
|
Anmeldedatum: 10.12.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.12.2015, 03:42
Titel:
|
|
Ich meinte am Ende natürlich " alle durch 50 Hz teilbaren Frequenzen", da ist mir wohl irgendwie eine 9 reingerutscht.^^
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|