Forum: Digitale Signalverarbeitung / DSP / Machine Learning Frage zur Verstärkung bei digitalen Filtern


von Filterer (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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.

von Filterer (Gast)


Lesenswert?

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.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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.

von Ralle (Gast)


Lesenswert?

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).

von Filterer (Gast)


Lesenswert?

> 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?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das ist sinnloses Herumgebastel das dich nicht weiter bringt. Berechne 
die Übertragungsfunktion, egal ob mit MATLAB, Octave oder sonst irgend 
einem Filterentwurfsprogramm.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

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.

von Filterer (Gast)


Lesenswert?

>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 :-)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

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.

von Harro (Gast)


Lesenswert?

@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
Noch kein Account? Hier anmelden.