|
|
Probleme mit Remez-Algorithmus (firpm) FIR-TYP4 |
|
HauNei |
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 29.05.2013, 13:05
Titel: Probleme mit Remez-Algorithmus (firpm) FIR-TYP4
|
|
|
|
|
Hallo, ich habe mithilfe des in Matlab integrieten Befehls
firpm
Einen Differenziator entworfen,
hierbei ist ja zu unterscheiden ob ich Typ3(N gerade)oder Typ4(N ungerade) wähle.
Für Typ3 stimmen meine Ergebnisse meine Filters (Zeitsignal und FFT) miteinander überein.
Bei Typ4 stehe ich vor einem Rätsel.
Mein Filterenwurf sieht wie folgt aus:
Wende ich diesen auf ein gemischtes Sinussignal an. Komme ich zu einem mir nicht zu verstehendes Ergebnis:
Meine Zeitsignale, haben keine ähnlichkeit mit meinem berechneten Signal, jedoch die FFT's beider Signale Stimmen nahzu überein.
Hat jemand von euch schon ein ähnliches Problem gehabt und kann mir heirbei weiterhelfen?
Zur Erklärung des Figures.
Im ersten Diagramm sind die Signale zur selben Zeit dargestellt.
Im zweiten Diagramm ist das Filtersignal um 15 Abtastschritte nach vorne verschoben (Filterlaufzeit)
Im dritten Diagramm sind die FFTs der Signale dargestellt.
Vielen Dank
HauNei
Beschreibung: |
|
Download |
Dateiname: |
vgl_am sinus_remez29.fig |
Dateigröße: |
135.36 KB |
Heruntergeladen: |
603 mal |
|
|
|
|
|
HauNei |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.06.2013, 10:16
Titel:
|
|
|
|
|
Problem ist jetzt soweit geklärt.. hängt mit der Phasenverschiebung des jeweiligen Filters zusammen, welche ja Abhängig von der Filterordnung ist, und ich eben bei N=30 jeweils ein Vielfaches der Verscheibung um 2pi hatte bei meinen Frequenzen, was eben bei N=29 nichtmehr hinhaut.
Jetzt kommt aber schon ein weiteres Problem auf, um den Fehler wie oben beschrieben zu verhinden, ist ja nun das Ziel, die Richtige Filterordnung herauszubekommen, um bei allen Frequenzen den korrekten Phaseshit, bzw ein vielfaches dazu bekommen.
Kurze frage dazu: wie häng die Filterordnung und die Phase voneinander ab:
Ist folgende Formel richtig, im Internet habe ich leider nichts passendes gefunden und sie mir daher selbst hergeleitet:
wenn ich jetzt richtig liege, was ich hoffe, aber man mich gerne korrigieren kann. Ergibt sich folgendes:
liege ich hier richtig?
Dies würde ja bedeuten, dass ich meine Grundkreisfrequenz benötige und draus meine Filterordnung herleiten kann um eine "konstante" Phase zu bekommen.
Viele Grüße
HauNei
|
|
|
DSP |
Forum-Meister
|
|
Beiträge: 2.117
|
|
|
|
Anmeldedatum: 28.02.11
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2014b
|
|
|
|
|
|
Verfasst am: 04.06.2013, 11:21
Titel:
|
|
Zitat: |
Kurze frage dazu: wie häng die Filterordnung und die Phase voneinander ab:
|
Das lässt sich nicht im Allgemeinen sagen, da es eben vom Filter abhängig ist. Es gibt Filter die eine lineare Phase in Abhängikeit zur Frequenz haben und eben andere nicht. Für deinen Fall wäre es evtl. sinnvoller die Gruppenlaufzeit deines Filters zu untersuchen anstatt den Phasengang, da man so besser eine Aussage über die Verzerrung des Ausgangssignal des FIR geben kann. Du brauchst dann wohl einen Filter mit konstanter Gruppenlaufzeit, wenn ich dich richtig verstanden habe.
Ein kleiner Hinweis noch:
Linearphasige Filter haben einen symmetrischen FIR-Koeffizientensatz.
|
|
|
HauNei |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 04.06.2013, 15:01
Titel:
|
|
Danke für die Antwort,
da ich ja einen Matlab-Algo verwende, und hier nur unterscheiden kann zw gerader und ungerader Ordnung gehe ich davon aus, dass ich linearphasige Filter verwende.
Zum Thema Gruppenlaufzeit,
diese hängt ja, wenn ich mich nicht irre, von dem Phasengang ab (Ableitung?), da mein Phasenverlauf soweit linear ist, ist die Gruppenlaufzeit konstant.
Dies bedeutet ja, dass jede Frequenz um die selbe Zeit verzögert wird, und somit bei höheren Frequenzen eine höhre Phasenverschiebung zu stande kommt.
Zurück zum Algo:
Hier ist mir aufgefallen, dass ich die Filterordnung variieren kann und ich immer bei gerader Ordnung ein Ergebnis hinbekomme, welches passt.
Bei ungerader Ordnung stimmt mein Ergebnis nichtmehr überein.
Momentan habe ich aber dieses Thema hintenangestellt und Versuche mal bis Ende der Woche meinen Prof zu erreichen damit er mir weiterhilft.
Aber falls ihr noch eine Idee habt. Immer her damit
Vielen Dank
|
|
|
HauNei |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 20.06.2013, 13:16
Titel:
|
|
Die letzten Tage habe ich mich noch einmal Intensiver mit der Thematik hier beschäftigt, bin aber noch nicht so ganz auf eine Lösung gestoßen.
Ich bin jetzt soweit, dass ich 3 verschiedene Methoden für einen FIR-Filter habe und bei jeder Methode dass selbe Problem habe. (N ungerade)
Meine Gruppenlaufzeit ist immer konstant.
Matlab sagt mir, mit grpdelay(b) dass sie genau N/2 über den gesamten Frequenzbereich liegt.
Laut diesen Werten, müsste ja ein richtiges Ergebnis rauskommen, was aber leider so nicht ist.
Mittlerweile bin ich etwas demotiviert, da irgendwie keiner ne Lösung drauf hat. Ich kann ja auch nicht einfach sagen es geht nicht ohne Begründung.
Viele Grüße und vielen Dank!
Haunei
|
|
|
HauNei |
Themenstarter
Forum-Fortgeschrittener
|
|
Beiträge: 55
|
|
|
|
Anmeldedatum: 18.04.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 21.06.2013, 12:43
Titel:
|
|
|
|
|
So da bin ich wieder, mit einem weiteren Problem, wo mir wohl nur ein Filterexperte erklären kann.
Ich hab jetzt mal als Versuch, um meinem Problem auf die Spur zu kommen, einen verschiedene Filterentworfen (Bandpass, Bandstop, Tiefpass, Hochpass, Hilbert) mit jeweils den 2 vorhanden Typen, dh für die erstgenannten jeweils Typ1 und Typ2 und Hilbert mit Typ3 und Typ4
Hier hab ich immer das gleiche Problem, dass ich bei ungerader Ordnung(Typ2,Typ4) eine Phasenverzerrung reinbekommen hab.
Das ganze habe ich in mehreren Versuchen gemacht und dabei meine Ordnungen variert (von 19 bis 100), wobei für einen direkten Vergleich habe ich meine Ordnungen direkt nebeneinander gelegt(z.B. 29&30)
Was ich mich nun gefragt habe, ist, ob Matlab mit der Ungeraden Ordnung und damit einer Gruppenaufzeit von X.5 nicht zurecht und verschiebt mir hier meine Phasen, kann ich dies dann irgendwie rückgängig machen?
Über jede Hilfreiche Antwort wäre ich dankbar.
Viele Grüße
HauNei
|
|
|
|
|
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.
|
|