Ich hätte einige Filter, die durch Länge und Amplitude des Koeffizientenfeldes gegeben sind und möchte diese qualifizieren. Ich könnte nun den Frequenzgang bei einem Sweep mit einer Simulation berechnen und aufzeichnen lassen, habe aber keine Sollfrequenz für die Abtastrate. Wie gibt man das am sinnvollsten an? Gefunden habe Ich nur das hier, aber da steht nicht viel: Beitrag "Von Koeffizienten zu Übertragungsfunktion" Am Liebsten wäre mir eine Art Übertragungsfunktion, die die Qualität des ripples in Form eines Verzerrungsgrades angibt. Wie gelangt man mathematisch am einfachsten an diese Funktion? Die Abtastfrequenz und der Frequenzbereich, über den Ich dann letztlich summiere (integriere ?) um die Verzerrungen in dem Betrachungsfall zu haben, wären dann idealer weise Parameter und vom Anwender einzusetzen. Geht das irgendwie über LaPlace oder Fourier? Das Koeffizientenfeld sieht etwa so aus: n = Zahl der Koeffizienten z.B. 7,11,13,17,21,23 und jeweils (n+1)/2 Koeffizienten also für n=7 4 Stück für die ersten 3 links, den mittleren und dann gespieglt die letzten drei, die wieder die ersten sind: K(1), K(2), K(3), K(4!), K(3), K(2), (K1)
Was bitteschön soll das sein: Am Liebsten wäre mir eine "Art Übertragungsfunktion", die die "Qualität des ripples" in Form eines "Verzerrungsgrades" angibt. Das hab ich noch in keinem Buch über digitale Filter gesehen. Aber in jedem Buch/Artikel über digitale Filter findet man, wie man den Frquenzgang (und Phasengang) ausrechnet.
In meinem Buch habe Ich nichts konkretes gefunden. Tipp? Was Ich meine ist eine Funktion, die die Abtastfrequenz mit ins Spiel bringt, also als Parameter frei hat. Oder anders ausgedrückt, bei der das Ergebnis der Darstellung unabhängig von diesem Parameter ist. Für eine U-Funktion benötige Ich eigentlich immer Ausgangsfunktion / Eingangsfunktion - mir ist aber nicht klar, wie ich direkt die Koeffizienten in Polynome übersetzen könnte. ?
WS schrieb: > ... habe aber keine Sollfrequenz für die > Abtastrate. Wie gibt man das am sinnvollsten an? Da kannst du jede Frequenz für die Simulation nehmen. Parameter wie Grenzfrequenzen sind ohnehin immer auf die Abtastrate bezogen. WS schrieb: > mir ist aber nicht klar, wie ich direkt die > Koeffizienten in Polynome übersetzen könnte. sei froh, das wäre viel zu aufwändig. Praktisch umsetzbar ist das Folgende: Gewinne durch Simulation einen Frequenzgang. Daraus kannst du den Filtertyp und das Toleranzschema erkennen. Die Filterordnung kannst du anscheinen aus dem vorliegenden Code ableiten. (Wenn nicht, kannst du probieren.) Mit dieser Info gehst du in ein Berechnungsprogramm für digitale Filter und lässt das Filter nachbauen. Den Frequenzgang gannst du mit deinem Simulationsergebnis vergleichen. Sollte es dir aber um die Mathematischen Zusammenhänge gehen, dann musst du sehr viel tiefer in die hinter der Filterentwicklung liegende mathematische Theorie einsteigen. Das ist aber für deine eingangs beschriebene praktische Aufgabenstellung nicht nötig oder sinnvoll. Du solltest aber ohnehin die Zielsetzung deiner Aufgabe genauer darstellen, damit dir gezielt geholfen werden kann. John
Danke für die Info. Eigentlich hatte Ich aber gehofft, durch ein begrenzt tiefes Einsteigen in die Mathematik eine Formel zu bekommen, um genau so ein "ungefähres" (iteratives) Vorgehen vermeiden zu können. Ich denke zudem, dass das abschätzende Vorgehen mir nicht die Genauigkeit liefern wird, die Ich brauche, um die gewünschten Entscheidungen zu treffen. Nehmen wir z.B. die Werte für ein Filter mit 17 Koeffizienten: -8, -32, -70, -102, -91, -18, 100, 210, 255, .... Die Grenzfrequenz liegt so etwa bei einem Drittel der Abtastrate würde Ich schätzen. Den ripple, den Ich bekomme, kann Ich aber nicht wirklich ablesen, weil er von der Auflösung der Koeffizienten und den Frequenzen abhängt, die reinkommen. Wenn Ich das minimal umbaue, liegt die Verstärkung bei 1,0 statt 0,91 und es gibt andere Rundungsfehler: -1, -15, -50, -87, -84, -18, 98, 209, 255, ... Welches Filter hat weniger Verzerrung?
Hier die beiden Betragsübertragungsfkt. >>>> Die Grenzfrequenz liegt so etwa bei einem Drittel der Abtastrate würde Ich schätzen. Naja, Grenzfrequenz, was soll das sein bei den Dingern, 3dB unter dem Maximum. Das ist bei vllt. 255, 2048 entspricht der Abtastfrequenz. >>>> Den ripple, den Ich bekomme, kann Ich aber nicht wirklich ablesen, weil er von der Auflösung der Koeffizienten und den Frequenzen abhängt, die reinkommen. ??. Die Dinger haben keinen ripple, als ripple bezeichnet man was anderes. Die Eigenschaften des Filters hängen nicht von den Frequenzen ab, die reinkommen. >>>>>>>> Wenn Ich das minimal umbaue, liegt die Verstärkung bei 1,0 statt 0,91 und es gibt andere Rundungsfehler: Die Dinger haben unnormiert ca. Faktor 1000 Verstärkung, nicht 1. >>>> Welches Filter hat weniger Verzerrung? Unklar, was Du unter 'Verzerrung' verstanden haben willst. Cheers Detlef clear fb= [-8, -32, -70, -102, -91, -18, 100, 210, 255]; fb=[fb fliplr(fb(1:end-1))]; fc=[-1, -15, -50, -87, -84, -18, 98, 209, 255] fc=[fc fliplr(fc(1:end-1))]; H=freqz(fb,1,1024); H1=freqz(fc,1,1024); plot(1:1024,20*log10(abs(H)),'b',1:1024,20*log10(abs(H1)),'r'); grid return
:
Bearbeitet durch User
Ein FIR-Filter hat die Übertragungsfunktion
wobei die a_i deine Koeffizienten sind. Setze
und du erhälst mit |G(z)| den Betragsfrequenzgang, und mit arc(G(z)) den Phasengang. In Matlab oder Octave gibts dazu den Befehl freqz(). Beachte, dass Omega die normierte Kreisfrequenz ist, d.h. sie ist auf die halbe Abtastfrequenz normiert. Gruss
:
Bearbeitet durch User
Substituriere z durch exp(j Omega)
> Welches Filter hat weniger Verzerrung?
Verzerrungen, sind ganzzahlige Oberwellen, die gibt es bei nichtlinearem
Betrieb, wenn man am Eingnag uebersteuert. Hat also so gesehen nichts
mit einem Filter zu tun, denn das Filter ist gerechnet als ein lineares
Element.
Filter sind Elemente, die arbeiten Fourier Raum. Nichtlineare
Elemente/Funktionen darf man nicht im Fourierraum betrachten.
:
Bearbeitet durch User
WS schrieb: > Ich hätte einige Filter, die durch Länge und Amplitude des > Koeffizientenfeldes gegeben sind und möchte diese qualifizieren. > Ich könnte nun den Frequenzgang bei einem Sweep mit einer Simulation > berechnen und aufzeichnen lassen, habe aber keine Sollfrequenz für die > Abtastrate. Wie gibt man das am sinnvollsten an? Also zunächst eines: Frequenzen im herkömmlichen Sinne in Hertz oder so gibt es bei digitaler Signalverarbeitung überhaupt nicht. Stattdessen hat man es immer mit einem Bruchteil der Samplingfrequenz zu tun. Du brauchst also keine konkrete Abtastrate, um den Frequenzgang dir auszurechnen. So. Nun frag ich dich (WS) und nicht mich (W.S.), was du denn mit einer etwaig rückgewonnenen Übertragungsfunktion anstellen willst? Dich interessiert doch der Frequenzgang und die Phase. Also wobble das mal softwaremäßig durch, denn damit wirst du noch am ehensten fündig. Ich hatte mir dazu per Delphi ein Filterbastler-Programm geschrieben, das per DDS zunächst einen Kurvenverlauf erzeugt, der ein Stückchen länger ist als der Filterkernel, dann selbigen durch das Filter mit dem zu testenden Kernel gejagt und anschließend Amplitude und Phase des Outputs ausgemessen. Sowas ist nicht schwer, das kannst du auch. W.S.
W.S. schrieb: > Also zunächst eines: Frequenzen im herkömmlichen Sinne in Hertz oder so > gibt es bei digitaler Signalverarbeitung überhaupt nicht. Stattdessen > hat man es immer mit einem Bruchteil der Samplingfrequenz zu tun. Wirklich? Wie siehst Du dann die Fälle, bei denen das Ganzzahlverhältnis nicht passt oder die abgetastete Frequenz größer ist, als die Sample Frequenz? Üblicherweise wird bei der Betrachtung und Beurteilung von Filtern gerne von 0 bis unendlich integriert, oftmals von 0 bis fs/2 ... dabei aber unterschlagen, dass die Frequenz auch höher sein kann. Und die liefern bekanntlich sehr wohl Beiträge zu dem Ergebnis am filterausgang - meistens ungewollte. Eine Übertragungsfunktion wäre da schon hilfreich, um das Verhalten vollständig beschreiben zu können.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.