Ich habe eine klitzekleine Frage zur Interpretation der Amplitude und der Verstärkung bei digitalen Filtern. Angenommen ich möchte für dieselbe Abtastfrequenz und Filterstufenzahl (Samples) einige verschiedene Frequenzbereiche extrahieren und bekomme aus MATLAB die benötigten Filterkoeffizienten. Wie bekannt und zu erwarten, fallen die Amplituden mit sinkender Frequenz ab - im Bild sind drei Grenzfrequenzen mit jeweils der halben Frequenz eingetragen. Wie gross ist nun die Ausgangsamplitude der Filter? Kann ich davon ausgehen, dass die bei mittlerem Rauschen gleich sind, oder muss ich das noch normieren? Wenn ja, auf welchen Wert? Mittelwert dachte ich jetzt mal so, weil der Maximalwert in Relation immer ein anderer ist. Andererseits hängt es auch vom Signaleingang ab, was der Filter auswirft. Was ich möchte, ist, dass Frequenzen, die mit derselben Amplitude im Signal sind, auch an den Ausgängen der Filter mit zueinander stimmiger Amplitude herauskommen, weil das relevant ist für die Applikation.
Filterer schrieb: > Wie gross ist nun die Ausgangsamplitude der Filter? Schau dir den Betragsfrequenzgang an, z.B. mit freqz, da siehst du für jede Frequenz den Verstärkungsfaktor.
Andreas Schwarz schrieb: > freqz Ich simuliere das nicht in MATLAB sondern lasse mir da nur die Coeffizienten geben und auch das nicht zwingend. Ich habe es jetzt mit Rauschen probiert und es sieht so aus, als sei es eine Art Mittelding von Amplitudenwert des höchsten Koeffiziten und Durchschnitt.
Filterer schrieb: > Ich simuliere das nicht in MATLAB sondern lasse mir da nur die > Coeffizienten geben und auch das nicht zwingend. Na dann kannst du doch trotzdem die Funktion freqz mit diesen Koeffizienten aufrufen. > Ich habe es jetzt mit Rauschen probiert und es sieht so aus, als sei es > eine Art Mittelding von Amplitudenwert des höchsten Koeffiziten und > Durchschnitt. Das ergibt keinen Sinn.
Andreas Schwarz schrieb: >> Ich habe es jetzt mit Rauschen probiert und es sieht so aus, als sei es >> eine Art Mittelding von Amplitudenwert des höchsten Koeffiziten und >> Durchschnitt. > Das ergibt keinen Sinn. Das liegt wohl an der Art des Rauschens oder wie Du misst, würde ich mal behaupten, denn rein optisch scheinen mir die Flächen unter den Kurzen gleich zu sein. Dann sollte auch dasselbe rauskommen, wenn man ein Rechteck über das gesammte Fenster einspeist (alle Frequenzen gleich bevorteilt).
> Da dann kannst du doch trotzdem die Funktion freqz mit diesen > Koeffizienten aufrufen. Ok, ich schaue, dass ich wieder ans Matlab komme. > rein optisch scheinen mir die Flächen unter den Kurzen Du würdest also sagen, dass die Flächen gleich sein müssen? Wenn ich mir mal ansehe, dass die Wellen weit weg der Mitte sich etwa wegheben, dann bleiben im Wesentlichen die peeks. Könnte natürlich stimmen. Eigentlich müsste man es integrieren können, aber ich sehe da 2 Probleme: - Die Punkte sitzen diskret irgendwo auf der Kurve und diese ist nicht kontinuierlich. Daher repräsentieren die sicher nicht genau das Integral - Die negativen Punkte bedingen ein Abziehen vom Integral, das nicht bei allen Frequenzen gegeben ist. Wenn die F sehr gering ist, so etwa bei 1/50 der Sampelfrequenz, gibt es gar keine negativen Punkte. Wie behandelt man den Fall?
Das ist sinnloses Herumgebastel das dich nicht weiter bringt. Berechne die Übertragungsfunktion, egal ob mit MATLAB, Octave oder sonst irgend einem Filterentwurfsprogramm.
Das sind doch eigentlich einzelne Zahlenwerte, die nur durch je eine Kurve verbunden sind. Soweit ich weiß, sieht die Impulsantwort eines FIR-Filters so aus wie seine Koeffizientenkurven. Das sind also unterschiedlich stark gedämpfte und verbreiteterte Impulsantworten, alle mit der gleichen Verzögerung von 34 Takten bis zum Maximum.
>Das ist sinnloses Herumgebastel das dich nicht weiter bringt. Es muss doch grundsätlzich möglich sein, zu sagen, ob und wie man die Werte normieren muss, ohne mit einem aufwändigen Analyseprogramm zu arbeiten. Wenn ich z.B. die Koeffizienten für ein Filter mit hoher Grenzfrequenz mit denen für eine geringe (5% Fs) vergleiche, bekomme ich a) andere Spitzenwerte und b) auch andere Mittelwerte. 20% FS 5% FS 1 0,0096 -0,0046 2 0,0061 -0,0016 3 -0,0063 0,0017 4 -0,0106 0,0051 5 0,0000 0,0082 6 0,0114 0,0107 7 0,0073 0,0123 8 -0,0076 0,0128 9 -0,0129 0,0121 10 0,0000 0,0100 11 0,0141 0,0067 12 0,0091 0,0024 13 -0,0096 -0,0026 14 -0,0164 -0,0078 15 0,0000 -0,0129 16 0,0183 -0,0172 17 0,0121 -0,0203 18 -0,0129 -0,0217 19 -0,0224 -0,0210 20 0,0000 -0,0180 21 0,0263 -0,0126 22 0,0178 -0,0047 23 -0,0197 0,0052 24 -0,0356 0,0170 25 0,0000 0,0300 26 0,0466 0,0436 27 0,0340 0,0572 28 -0,0416 0,0699 29 -0,0865 0,0810 30 0,0000 0,0900 31 0,2018 0,0963 32 0,3742 0,0996 Mittel 0,0158 0,0165 Mittel 0,3742 0,0996 Es geht je im Grunde nur um die Amplitude, die der Filter auswirft und ob die so schon stimmt oder nicht. >Das sind doch eigentlich einzelne Zahlenwerte, die nur durch je eine >Kurve verbunden sind. So ist es, die Kurve ist eigentlich ein Dummy und kommt vom Excel. > alle mit der gleichen Verzögerung von 34 Takten bis zum Maximum Es sind 64 Punkte und damit 32 Koeffizienten, jeweils gespiegelt. Fenster ist eingerechnet. Es stellt sich die zweite Frage, inwieweit die so entstehende Filteramplitude vom ideal einer sehr viel feineren Kurve abweicht. Das ist nämlich der Fall, wenn man z.B. auf 128 Werte erhöht. Die Werte ändern sich dann etwas. Klar, kann man alles mit MATLAB ausprobieren, aber auch dort muss jemand die Theorie dahinter verstanden haben und es programmiert haben :-)
Filterer schrieb: > Wenn ich z.B. die Koeffizienten für ein Filter mit hoher Grenzfrequenz > mit denen für eine geringe (5% Fs) vergleiche, bekomme ich a) andere > Spitzenwerte und b) auch andere Mittelwerte. Der Mittelwert ist der Frequenzgang bei f=0. Der Spitzenwert hat keine direkte Aussage. > Es geht je im Grunde nur um die Amplitude, die der Filter auswirft und > ob die so schon stimmt oder nicht. Ein Filter entwirft man üblicherweise, indem man ein Toleranzschema vorgibt (z.B. -1...1 dB Verstärkung bei 0-7.5 kHz, -40...-∞ dB Verstärkung bei 8-16 kHz). Wenn dieses Toleranzschema eingehalten wird, dann "stimmt" das Filter. Ob dein Filter "stimmt" oder nicht kann dir niemand sagen, solange du nicht sagst was das Filter überhaupt machen soll. Analyse von Filtern im Zeitbereich ist langweilig, spring über deinen Schatten und plotte endlich mal den Betragsfrequenzgang. Gerne auch von Hand (z-Transformation), wenn es dir Spaß macht.
@Filter: Du kannst Dein Filter nicht belibeig in der Amplitude abstimmen, weil jedes der Filter einen anderen Frequenzgang und Verzerrung hat und der Zusammenhang von der Definition des Spektrums abhängt, dass Du hineinschiebst. Das einizige, was fest ist, ist der innere Zusammenhang der Frequenzanteile, der sich wie angedeutet, durch seine Koeffizienten, deren Genauigkeit und ihre Dichte äussert. Da Du verschiedene Bänder mit Deinen Filtern anvisierst, geht der Zusammenhang verloren, bzw es gibt keinen. Du musst also bei Deiner Betrachtung für jeden Deiner erdachten Filter ein Spektrum definieren, auf das diese losgelassen werden, um die Verstärkungen zu optimieren. Wenn Du das pauschal machen möchtest, kannst Du nur davon ausgehen, dass Du ein ideales Rauschen, also einen Gleichwert eingibst. Dann muss der Mittelwert der Filter identisch sein, wie das schon von Andreas beschrieben wurde. Da Du aber wohl was anderes eingeben wirst, wirst Du auch logischerweise andere Amplituden einstellen müssen, wenn Du für das mittlere Spektrum, das Du erwartest, auch gleiche Ausgangsamplituden haben willst. Das Ganze ist aber nichts Neues, sondern gängige Praxis beim Filterdesign, denn meistens werden die Filter auf das Spektrum (konkret das Rauschen und andere ungewollte Artefakte) eingestellt. Dort, wo viel Signalanteil ist, muss das Filter wenig ripple haben und umgekehrt. Richtig ist, dass die Koeffizientenzahl wichtig ist. Die bestimmt nämlich den ripple und die Steilheit des Filters, sowie dessen Sperrdämpfung.
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.