Forum: Digitale Signalverarbeitung / DSP / Machine Learning Warum filtert der FIR Filter Frequenzen ?


von Huber W. (sindler)


Angehängte Dateien:

Lesenswert?

Ich verstehe nicht wie es sein kann das der FIR-Filter Frequenzen 
Verstärkt oder Dämpft je nach gewählten Koeffizienten. Ich finde auch 
keine Quellen, in dem dieses Phänomen erläutert wird.

Nach dem hochgeladen Bild wird der FIR Filter realisiert.

Eingangssignal - Sinus - Signal 100 mV, Frequenz 10 MHz.

Nun verwende ich verschiedene Anzahlen von Koeffizienten.

Ein Koeffizient : z.B. 1


Zwei Koeffizienten : 0.5 und 0.5
...

Fünf Koeffizienten : 0.2 0.2 0.2 0.2 0.2

Alle diese Signale würden auf dem Ozilloskop identisch aussehen.


Nun verwende ich die Sweep funktion für das Sinus Signal damit ich einen 
Bestimmten Frequenzbereich erfüllt habe. Sagen wir von 100 hz bis 200 
MHz.

Ich betrachte den Ausgang auf dem Spektrumanalysator und erkenne 
eindeutig unterschiede. Warum ?
Eigentlich dürfte Unabhängig von der Frequenz alle Amplituden Gleich 
Groß sein siehe Bild 1.

Ich habe mir diesen ganzen Vorgang auch mal in der Theorie Überlegt. Ich 
habe eine Signal von 1 , 0.5 , 1.
Das sich Periodisch wiederholt. Das bedeutet das jeder Koeffitient die 
selbe auswirkung hat. Unabhängig der Frequenz.

Ich Weiß das der FIR Filter Funktioniert nur es intressiert mich enorm 
warum das so ist ?

von Bernhard (Gast)


Lesenswert?

Du bildest einen entsprechend der Koeffizienten gewichteten Durchschnitt 
über mehrere Eingangswerte, das ist prinzipiell das gleiche was ein 
RC-Tiefpass macht.

von Vancouver (Gast)


Lesenswert?

Schau Dir mal dir Gleichung zu Deiner Filterstruktur an. Der FIR 
berechnet einen gewichteten Mittelwert über 1 bzw. 2  bzw. 5 
aufeinanderfolgende Samples in Deinen Beispielen. D.h. alles, was sich 
z.B. innnerhalb der 5 Samples temporär ändert (also hohe 
Frequenzanteile), wird glattgebügelt, und nur die langsamen Änderungen, 
die sich über mehr als 5 Samples erstrecken, werden vom Filter nicht 
erfasst.

von Reinhard M. (Gast)


Lesenswert?

Die Abtastfrequenz spielt natürlich auch eine Rolle(!)
Beispiel mit den 2 Koeffizienten:

y[n] = 0.5 * x[n] + 0.5 * x[n-1]

Y[z] = 0.5 * X[z] + 0.5 * z^(-1)* X[z]

     = X[z] * (0.5 + 0.5 * z^(-1))

Übertragungsfunktion
A[z] = Y[z] / X[z] = 0.5 + 0.5 * z^(-1)

einsetzten z^(-1) = exp(j*w*Ta)        w ... 2 pi f
                                       Ta .. T_abtast

Daraus Ortskurve, Amplitudengang und Phasengang berechnen

f= 0:              A[z] = 1+0j      Betrag=1      Phase=0°
f=1/4 f_abtast     A[z] = 0.5+0.5j  Betrag=0.707  Phase=45°
f=1/2 f_abtast     A[z] = 0+0j      Betrag=0      Phase=90°

von Huber W. (sindler)


Angehängte Dateien:

Lesenswert?

Vancouver schrieb:
> alles, was sich
> z.B. innnerhalb der 5 Samples temporär ändert

Was meinst du damit ? Die Samples bleiben gleich dadurch das ich sie als 
eine periodische benutzte.

Vancouver schrieb:
> und nur die langsamen Änderungen,
> die sich über mehr als 5 Samples erstrecken, werden vom Filter nicht
> erfasst.

Die 5 Samples Wiederholen sich aufgrund der Periodischen Funktion.

Klar bildet der FIR Filter den Mittelwert. Aber damit ändert sich doch 
nicht die jeweilige Amplitude ?
Ich verstehe die Erklährungen nicht.

Mal ein beispiel.
Das Angehangene Bild sind die von den Koeffizieten 0.1 bzw -0.1. Die 
erhöhung der Amplitude im bereich 0 Hz. kommt von dem Messgerät. Also 
keine Panik :)

FIR Filter ist ein gleitender Mittelwert Filter. Aber ich verstehe nicht 
warum er bestimmte Frequenzen verstärkt bzw. dämpft.

von Vancouver (Gast)


Lesenswert?

"Was meinst du damit ? Die Samples bleiben gleich dadurch das ich sie 
als
eine periodische benutzte."

Du hast doch ein zeitlich veränderliches Eingangssignal (Sinus 10MHz). 
Warum sollten Deine Samples gleich bleiben? Sie ändern sich ständig, 
wenn auch periodisch.

"Die 5 Samples Wiederholen sich aufgrund der Periodischen Funktion."

Ja, eben.

"Klar bildet der FIR Filter den Mittelwert. Aber damit ändert sich doch
nicht die jeweilige Amplitude ?"

Ok, nehmen wir an, du misst einmal pro Minute die Spannung einer 
Solarzelle auf dem Dach. Dann bildest Du den gleitenden Mittelwert der 
letzten 5 Minuten. Wenn Sich die Spannung aufgrund schnell vorbei 
fliegender Wolken alle 10 Sekunden ändert, dann siehst Du im Mittelwert 
nichts davon. Wenn es hingegen am Vormittag wolkig ist, am Mittag die 
Sonne scheint und  abends regnet, dann wirst Du den langfristigen 
Verlauf sehen. Dabei spielt es keine Rolle, ob die Wetteränderung 
periodisch ist oder nicht. Hohe Frequenzanteile werden bei der 
Mittelwertbildung verschluckt, niedrige Anteile nicht. Deswegen hat der 
Filter dieser Art eine Tiefpass-Charakteristik, er dämpft hohe 
Frequenzen.

Die Samplerate spielt dabei natürlich eine entscheidende Rolle, wie 
Reinhard M. oben geschrieben hat.

"Das Angehangene Bild sind die von den Koeffizieten 0.1 bzw -0.1. Die "

Das versteh ich nicht ganz... Du hast dort einen Filter mit zwei Taps 
und als Koeffizienten
0.1 und -0.1 verwendet?  Und welche Abtastrate hast Du verwendet?

Grundsätzlich gilt für einen einfachen Mittelwertfilter: Hohe 
Frequenzen=Schnelle Änderungen werden durch die Mittelwertbildung 
rausgemittelt und verschwinden.

von Huber W. (sindler)



Lesenswert?

Vancouver schrieb:
> Du hast doch ein zeitlich veränderliches Eingangssignal (Sinus 10MHz).
> Warum sollten Deine Samples gleich bleiben? Sie ändern sich ständig,
> wenn auch periodisch.

Vancouver schrieb:
> Der FIR
> berechnet einen gewichteten Mittelwert über 1 bzw. 2  bzw. 5
> aufeinanderfolgende Samples in Deinen Beispielen. D.h. alles, was sich
> z.B. innnerhalb der 5 Samples temporär ändert (also hohe
> Frequenzanteile), wird glattgebügelt,

Reinhard M. schrieb:
> Die Abtastfrequenz spielt natürlich auch eine Rolle(!)

Ich hatte im Bezug auf das Periodische Signal einen Gedanken Fehler. Die 
Abtastfrequenz ist Ausschlag gebend. Aber für mich ist das ein Phänomen 
was immer auftritt. Wenn ich eine zu geringe Abtastfrequenz haben gehen 
Bestimmte Signalanteile verloren.

Das Nyquist-Shannon-Abtasttheorem beschreibt das die Frequenz von größer 
2*fmax Abgetastet werden muss. Damit ein exaktes zeitdiskretes Signal 
erzeugt werden kann.

Das habe ich natürlich Absolut vergessen. Der A/D Wandler hat eine 
Abtastfrequenz von 125 Mhz. Also deutlich höher als die benutzten 
Frequenzen des Sinus. Mithilfe der Sweep Funktion generierte ich eine 
Sinus Signal von 100 hz bis 20 Mhz.(siehe Bild)

Daraus folgt. 2*fmax=2*20 Mhz = 40 Mhz. Das ist deutlich unter der 
Abtast Frequenz von 125 Mhz.

Bernhard schrieb:
> Koeffizienten gewichteten Durchschnitt
> über mehrere Eingangswerte, das ist prinzipiell das gleiche was ein
> RC-Tiefpass macht.

Danke für eure Hilfe. Ich konnte dadurch jetzt besser Verständnis 
erreichen.
Also durch das benutzten von einem Koeffizieten werden die der Gleitende 
Mittelwert gebildet. Also bein einem Wert von 0.1 stärkere Dämpfung als 
bei 0.9.
Eigentlich selbst erklährend aber ich konnte das damals nicht richtig 
verstehen.


Wenn ich ein Sinus-Signal mit den Koeffietienten -0.1 und 0.1 auf dem 
Ozzililoskop betrachte. sehe ich kein Ausgangssignal. Für mich ist das 
verständlich. Durch den VZ wechsel subtrahieren sich die beiden Sinus 
signale.
Dadurch das das Signal Periodisch ist. Aber im Spektrumanalysator ist zu 
erkennen das Frequenzen im höheren Bereich besser Durchgelassen werden ?
Wie kann das sein das sein ? Eigentlich müssten doch alle Amplituden 0 
sein.

Damit ich euch nicht verwirre habe ich auch noch nur das Bild ohne 
Signal des Spektrumanalysators hochgeladen. Das ist einfach vom 
Messgerät.

Vancouver schrieb:
> Das versteh ich nicht ganz... Du hast dort einen Filter mit zwei Taps
> und als Koeffizienten
> 0.1 und -0.1 verwendet?  Und welche Abtastrate hast Du verwendet?

Abtastfrequenz ist 125 MHz und der
Erste Koeffizient ist 0.1
der Zweite Koeffitient -0.1

Das sollte die Beschrirftung bedeuten.

: Bearbeitet durch User
von Reinhard M. (Gast)


Lesenswert?

b0 = 0.1
b1 = -0.1

H(z) = 0.1 - 0.1 * exp(jwT)

bei f = 0            --> H[z] = 0.1 - 0.1 * 1 = 0
bei f = f_abtast/2   --> H[z] = 0.2

--> das ist ein Hochpassverhalten.

von Reinhard M. (Gast)


Lesenswert?

Oder weniger mathematisch erklärt:
Auf den Ausgang gelangt immer die Differenz vom aktuellen
Eingangssignal und das um einen Takt verzögerte Eingangssignal.

Wenn jetzt die Differenz groß ist (hohe Frequenz) gibt es ein größeres 
Ausgangssignal als bei kleinem Unterschied (niedrige Frequenz).

PS.
in dem Formeln muss es heißen exp( -jwT )  --MINUS--

Das entscheidet ob die Ortskurve in der unteren oder in der oberen
Halbebene liegt.
Der Amplitudengang (Betrag) stimmt trotzdem.

Ich hoffe es einigermaßen verständlich rübergebracht zu haben ;-)

von Martin O. (ossi-2)


Lesenswert?

Mal ganz einfach zu Fuss:
a) Tiefpassfilter: Koeffizienten b_0=1 und b_1=1
(gleitender Mittelwert über 2 Werte)
Eingangssequenz 1 1 1 1 1 1 1 1 1 1 1 1 ...
Ausgangssequenz 1 2 2 2 2 2 2 2 2 2 2 2 ... Signal wird um 2 verstärkt

Eingangssequenz 1 -1  1 -1  1 -1  1 -1  1 -1  1 -1 ...
Ausgangssequenz 1  0  0  0  0  0  0  0  0  0  0  0 ...
Signal wird vollsständig gedämpft.

Übungsaufgabe: Das gleiche mit Hochpass: b_0=1, b_1=-1 machen.

von Detlef _. (detlef_a)


Lesenswert?

>>>>>
Dadurch das das Signal Periodisch ist. Aber im Spektrumanalysator ist zu
erkennen das Frequenzen im höheren Bereich besser Durchgelassen werden ?
Wie kann das sein das sein ? Eigentlich müssten doch alle Amplituden 0
sein.

Das sagtest Du für die Koeffizienten +0.1 und -0.1. Du berechnest damit
y(n)=0.1*x(n-1)-0.1*x(n)
Damit differenzierst Du das Signal, Du bildest quasi die Ableitung. Für 
ne Gleichspannung kommt immer 0 raus, je höher die Frequenz umso steiler 
steigt der Sinus an umso höher ist das Ausgangssignal -> Hochpass.

Anderes Beispiel: FIR Filter, alle Koeff. sind 1. Der zwingt das 
Ausgangssignal auf 0 wenn GENAU  eine ganzzahlige Anzahl Wellen des 
Sinus in die Kette reinpassen. Das erzeugt diese Kammstruktur des 
Frequenzgangs.

Cheers
Detlef

von Hp M. (nachtmix)


Lesenswert?

Huber W. schrieb:
> Ich verstehe nicht wie es sein kann das der FIR-Filter Frequenzen
> Verstärkt oder Dämpft je nach gewählten Koeffizienten. Ich finde auch
> keine Quellen, in dem dieses Phänomen erläutert wird.

Schau dir mal dieses Video an: 
https://www.youtube.com/watch?v=FnpkBE4kJ6Q

von Huber W. (sindler)


Lesenswert?

Reinhard M. schrieb:
> b0 = 0.1
> b1 = -0.1
>
> H(z) = 0.1 - 0.1 * exp(jwT)
>
> bei f = 0            --> H[z] = 0.1 - 0.1 * 1 = 0
> bei f = f_abtast/2   --> H[z] = 0.2
>
> --> das ist ein Hochpassverhalten.

Danke Reimhard M.
Jetzt habe ich es verstanden. Ich habe nur einfach den Phasengang nicht 
betrachtet.

von Audiomann (Gast)


Lesenswert?

Wenn ich mir das Thema so ansehe, dann bin ich froh, daß ich mit 
Analogtechnik angefangen habe und filtern konnte, bevor es an die 
Micocontroller und die Digitaltechnik ging. Ehrlich gesagt, habe ich 
echte Probleme, mir vorzustellen, dass ich mir die Thematik allein von 
der abstrakten Theorie her hätte erabeiten können, ohne schon eine Art 
von Anschauung zu haben. Wenn das in der Uni so präsentiert worden wäre, 
hätte ich wohl das Handtuch geworfen.

von Reinhard M. (Gast)


Lesenswert?

Audiomann schrieb:
> Wenn das in der Uni so präsentiert worden wäre,
> hätte ich wohl das Handtuch geworfen.

Ja, das ginge mir genauso.
Ich habe das alles sehr verkürzt dargestellt und einige
Zwischenschritte weggelassen.

Wer wirklich interessiert ist, da kann ich nur den Tietze-Schenk
Kapitel "Digitale Filter" empfehlen.
Das ist die beste deutschsprachige Einführung in das Thema, die ich 
kenne.

von Huber W. (sindler)


Lesenswert?

Hp M. schrieb:
> Schau dir mal dieses Video an:
> Youtube-Video "How to build digital filters, a simplified explanation"

werde ich mir anschauen danke.

Reinhard M. schrieb:
> Wer wirklich interessiert ist, da kann ich nur den Tietze-Schenk
> Kapitel "Digitale Filter" empfehlen.
> Das ist die beste deutschsprachige Einführung in das Thema, die ich
> kenne.

Das werde ich mir aufjedenfall besorgen. Danke für den Tipp.

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

ich suche dieses video:

https://www.youtube.com/watch?v=FnpkBE4kJ6Q

es ist leider nicht mehr da.

hat es einer vieleicht gesichert?

von Michael W. (Gast)


Lesenswert?

Reinhard M. schrieb:
> y[n] = 0.5 * x[n] + 0.5 * x[n-1]

Das ist aber kein FIR-Filter, sondern ein IIR.

von Georg A. (georga)


Lesenswert?

Markus W. schrieb:
> Das ist aber kein FIR-Filter, sondern ein IIR.

Solange y rechts nicht auftaucht, eher nicht...

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.