Hallo zusammen!
Ich versuche mich gerade auf die Thematik digitale Filter zu stürzen.
Also, ein digitales Filter hat als Eingangssignal ein Abtastsignal und
logischerweise ist der Ausgang auch ein Abtastsignal.
Der erste Punkt auf der ersten Seite meint wohl, dass man aktuelle und
ältere Abtastwerte des Eingangssignals verwendet, denn warum sollte man
älter Samples im Ausgangssignal nehmen, was bringts?
Aber ich verstehe die Formel hier auf der ersten Seite nicht: yn=...
x_n ist ja der aktuelle Abtastwert des Eingangssignals und x_n-1 sind
älter Abtastwerte.
Aber warum in aller Welt muss man eine bestimmte Anzahl an
Eingangssamples addieren und jeden Eingangssample mit einem
Filterkoeffizienten multiplizieren, um dann nur einen Ausgangssample zu
bekommen, der gefiltert ist?
"Je höher N, desto feiner ist der Frequenzgang des Filters aufgelöst".
Hmm, was bedeteutet feiner? Beim Filtern geht es doch nur um die
Dämpfung von Amplituden von bestimmen Frequenzen, um sie nicht mehr
dabei zu haben.
Und am Ende steht "FIR-Filterung ist also eine gewichtete Mittelwert
bildung....", warum Mittelwertbildung?
Mittelwert ist ja normalerweise folgendermaßen zu berechnen: Summe /
(Anzahl der Summanden). Also der arith. Mittelwert wäre das.
Ich hoffe ihr könnt mir helfen ein bisschen in das Thema reinzukommen.
Danke!
mfg
guest007
guest007 schrieb:> Der erste Punkt auf der ersten Seite meint wohl, dass man aktuelle und> ältere Abtastwerte des Eingangssignals verwendet,
Nein, durchaus nicht. Das wird im folgenden Satz klargestellt. Bei FIR
werden nur die vergangenen Abtastwerte berücksichtigt.
> denn warum sollte man> älter Samples im Ausgangssignal nehmen, was bringts?
Das macht man, wenn man IIR Filter beschreibt. Aber auch ein analoger
Filter hat diese Eigenschaft.
> Aber warum in aller Welt muss man eine bestimmte Anzahl an> Eingangssamples addieren und jeden Eingangssample mit einem> Filterkoeffizienten multiplizieren, um dann nur einen Ausgangssample zu> bekommen, der gefiltert ist?
Ohne jetzt sehr tief in die Mathematik einzusteigen, will ich da nur
bemerken, das ein Frequenzgemisch, ja nicht durch einen
Augenblickswert sondern durch mehrere bestimmt ist. Demzufolge muss ein
Filter, der auf das Gemenge wirkt auch mehrere Abtastwerte
berücksichtigen.
> "Je höher N, desto feiner ist der Frequenzgang des Filters aufgelöst".> Hmm, was bedeteutet feiner? Beim Filtern geht es doch nur um die> Dämpfung von Amplituden von bestimmen Frequenzen, um sie nicht mehr> dabei zu haben.
Die Antwort steckt schon in der Frage. Es geht um "bestimmte"
Frequenzen. Da ist es von Vorteil die in hoher Auflösung, also feiner
bestimmen zu können.
> Und am Ende steht "FIR-Filterung ist also eine gewichtete Mittelwert> bildung....", warum Mittelwertbildung?
Warum nicht?
> Mittelwert ist ja normalerweise folgendermaßen zu berechnen: Summe /> (Anzahl der Summanden). Also der arith. Mittelwert wäre das.
Aha. Schön zu wissen. ;-)
Aber beim FIR-Filter handelt es sich, wie beschrieben um einen
gewichteten Mittelwert.
Zu der Verwendung des Begriffes "Mittelwert" noch folgendes:
Ich denke hier soll didaktisch auf schon Bekanntes verwiesen werden.
D.h. Dir soll vermittelt werden, das es sich beim FIR um etwas handelt,
das Du schon kennst: Eine Summe, deren Summanden gewichtet sind. Im
allgemeinen wird sowas als "Mittelwert" in der Mathematik eingeführt.
Du kannst das natürlich allgemeiner eben als Summe gewichteter Summanden
betrachten. Dann entfällt die Frage, aber eben auch die hilfsweise
Vorstellung.
Hm ok danke, aber ich verstehe nicht: Was soll ein Filterkoeffizient
aussagen?
Das ist doch nur eine Zahl. Ich verstehe noch immer nicht, warum eine
Summe von Abtastwerten und pro Abtastwert einen Multiplikation mit einem
Filterkoeffizient dämpfen soll.
Da wird ja nur eine Zahl gedämpft oder? Also weil ja nur EINE Zahl y_n
rauskommt. Wie kann das funktionieren?
Kannst du mir das bitte näher erklären?
Eine Mittelwertbildung über n samples wirkt wie ein Tiefpassfilter, da
auf diese Weise die Schwankungen einer Messung geringer werden. Nehmen
wir an, es gibt ein Signal zB einen Messwert und dieser ist verrauscht,
dann ergibt eine Mittelung von 10 Samples ein glatteres Signal. Da hast
du dann auch mehrere alte Samples mit drin.
Bitflüsterer schrieb:> guest007 schrieb:>> Der erste Punkt auf der ersten Seite meint wohl, dass man aktuelle und>> ältere Abtastwerte des Eingangssignals verwendet,> Nein, durchaus nicht. Das wird im folgenden Satz klargestellt. Bei FIR> werden nur die vergangenen Abtastwerte berücksichtigt.
Nein. Der aktuelle Wert wird genauso verwendet.
Im Beispiel von
http://de.wikipedia.org/wiki/Filter_mit_endlicher_Impulsantwort
steht im Grunde genau das was ich aussagen wollte.
guest007 schrieb:> Hm ok danke, aber ich verstehe nicht: Was soll ein Filterkoeffizient> aussagen?> Das ist doch nur eine Zahl. Ich verstehe noch immer nicht, warum eine> Summe von Abtastwerten und pro Abtastwert einen Multiplikation mit einem> Filterkoeffizient dämpfen soll.
Bei Mittelung wären die Filterkoeffs immer 1/n. Haben die Koeffizienten
bestimmte Werte, so ergibt sich in der Regel ein besserer Frequenzgang
beispielsweise. zB kann man mit FIR-Filtern auch Hochpässe realisieren.
Da sind dann eben "nur" die Zahlen anders.
> Da wird ja nur eine Zahl gedämpft oder? Also weil ja nur EINE Zahl y_n> rauskommt. Wie kann das funktionieren?
Ja, pro Zeitpunkt wird immer ein Ausgangssignal "verändert". Aber wenn
man da jetzt einen Tiefpassfilter verwendet als Bsp, dann ändert sich
eben auch der Signalverlauf über mehrere Samples, also über die Zeit und
dann ist eben eine Glättung des Signalverlaufs gemacht worden, was das
Ziel eines Tiefpasses ist.
LG
guest007 schrieb:> Der erste Punkt auf der ersten Seite meint wohl, dass man aktuelle und> ältere Abtastwerte des Eingangssignals verwendet, denn warum sollte man> älter Samples im Ausgangssignal nehmen, was bringts?
Weil man nur aus Differenzen von Samples Änderungen erkennen und damit
die Differenzialanteile von Filterverläufen bilden kann.
guest007 schrieb:> "Je höher N, desto feiner ist der Frequenzgang des Filters aufgelöst".> Hmm, was bedeteutet feiner? Beim Filtern geht es doch nur um die> Dämpfung von Amplituden von bestimmen Frequenzen, um sie nicht mehr> dabei zu haben.
Der Filter ist halt ein diskreter und kann im Gegensatz zur analogen
Realität, nur für die Werte agieren, die er infolge des Samplens auch
sieht. Daher fallen alle Zwischenwerte, die nicht durch Samples
abgedeckt sind, weg. Dort darf der Wert alles machen, was er will, ohne,
dass es vom Filter beeinflusst werden kann. Letztlich müsste ein
digitaler FIR Filter unendlich viele Stützstellen haben, um wie ein
analoger zu wirken.
Filter Maxe schrieb:> Dort darf der Wert alles machen, was er will, ohne,> dass es vom Filter beeinflusst werden kann.
Da der Wert aber nicht weiss, wann die Abtastung erfolgt, wird er sich
schön an die Spielregeln halten müssen. Entweder er hält sich an das
Abtasttheorem von Herrn Shannon (keine Frequenzanteile von der halben
Abtastfrequenz oder höher) oder man muss damit Leben, dass der aus den
Abtastwerten rekonstruierbare Verlauf der Werte nur noch entfernt etwas
mit dem Originalsignal zu tun hat (Aliasing). Bis auf wenig Ausnahmen
ist das ausgesprochen störend ;-)
Bitflüsterer schrieb:> guest007 schrieb:>> Der erste Punkt auf der ersten Seite meint wohl, dass man aktuelle und>> ältere Abtastwerte des Eingangssignals verwendet,> Nein, durchaus nicht. Das wird im folgenden Satz klargestellt. Bei FIR> werden nur die vergangenen Abtastwerte berücksichtigt.
Da ist mir ein Lapsus unterlaufen. (Matthias hat das zu recht
korrigiert). Ich meinte folgendes: Der erste Satz, bezieht sich sowohl
auf FIR als auch auf IIR. Deswegen stimmt es nicht, das solche Filter
allgemein, nicht die Ausgangswerte berücksichtigen. Ich meinte hingegen
nicht, das "vergangene Abtastwerte" nicht auch den zuletzt eingelesenen
Abtastwert beinhalten (bzw. pos. ausgedrückt, dass die verg. Abtastwerte
- gedacht - auch den "gegenwärtigen" beinhalten).
Man redet über den "gegenwärtigen Abtastwert" wenn man von der
Berechnung spricht, aber wenn die Berechnung stattfindet, dann ist der
Zeitpunkt der Abtastung schon vergangen. (das, damit ich recht behalte
;-) )
Aber jeder weiss, und darauf bezieht sich Matthias, dass mit den
vergangenen Abtastwerten und dem "gegenwärtigen" Abtastwert zusammen,
die Eingangswerte der Filterberechnung gemeint sind.
Einem Anfänger ist das nicht unbedingt klar und man muss aufpassen, wie
man sich ausdrückt. Deswegen Dank an Matthias.
---
guest007 schrieb:> Hm ok danke, aber ich verstehe nicht: Was soll ein Filterkoeffizient> aussagen?>> Das ist doch nur eine Zahl. Ich verstehe noch immer nicht, warum eine> Summe von Abtastwerten und pro Abtastwert einen Multiplikation mit einem> Filterkoeffizient dämpfen soll.>> Da wird ja nur eine Zahl gedämpft oder? Also weil ja nur EINE Zahl y_n> rauskommt. Wie kann das funktionieren?>> Kannst du mir das bitte näher erklären?
Leider weiss ich nicht ganz genau, worauf Du genau hinauswillst, meine
aber eine gewisse Ahnung zu haben.
Es scheint mir, dass Du folgendes fragst:
Es kommt nur eine Zahl bei der Berechnung heraus, aber ich gebe _viele
Zahlen ein. Während die vielen Zahlen, für mich (also Dich guest007)
verständlich, Frequenzen repräsentieren, ist nicht klar, wieso die
einzelne Ausgangszahl der Filterberechnung eine gefilterte Frequenz
darstellen soll.
Verstehe ich Dich so recht?
Ich nehme das mal an und antworte wie folgt:
Die Fourieranalyse zeigt, dass jeder einzelne Abtastwert zu der Analyse
beiträgt. Seine Höhe, also seine Amplitude beeinflusst nicht nur eine
Amplitude der beteiligten Frequenzen sondern auch die Frequenzen. Er
beeinflusst nicht einmal nur_ die Amplitude _einer Frequenz, sondern
die mehrerer beteiligter Frequenzen (geht man von einem Gemisch von
vielen Frequenzen aus; es gibt natürlich Sonderfälle). Anders
ausgedrückt heisst das, dass in einem Abtastwert, Informationen über
viele Frequenzen stecken.
Um das anschaulich zu machen, könntest Du mal im Netz nach Java-Applets
suchen, die aus Abtastwerten eine Fourieranalyse machen. (Ich habe jetzt
leider kein Beispiel parat, könnte aber beim suchen helfen).
Wenn Du mit einem einzelnen Abtastwert herumspielst, wirst Du sehen, das
sich in der Analyse mehrere Frequenzen ändern.
Daraus ergibt sich für Deine Frage folgendes: Ein einzelner Abtastwert
beinhaltet (unter bestimmten Voraussetzungen und in gewissen Grenzen,
welche sich aus den Fouriertheoremen ergeben) Informationen über das
gesamte Signal. In der Praxis sind diese Voraussetzungen und Grenzen
gegeben.
Ich bin sicher es gibt viele weitere Erklärungsansätze dazu.
Voraussetzung für alle diese Überlegungen aber ist, dass Du die Theoreme
der Fourieranalyse grundsätzlich verstehst. Wenn Du erlaubst, möchte ich
Dir auch empfehlen, beim lesen einige "seltsame" Behauptungen erstmal
einfach hinzunehmen und weiterzulesen. Vieles wird erst aus dem
Zusammenhang klar und kann nicht in einem einzelnen Satz erschöpfend
klargestellt werden.
Bitflüsterer schrieb:> Bei FIR werden nur die vergangenen Abtastwerte berücksichtigt.
So dogmatisch würde ich das nicht sehen. FIR Filter verwenden durchaus
Abtastpunkte aus Vergangenheit und Zukunft. Das sie damit akausal
sind, stört bei vielen Anwendungen nicht, eröffnet einem aber
interessante Filtereigenschaften, z.B. phasenneutrale Filter.
Markus Wagner schrieb:> Doch nur, indem Du deinen Betrachtungszeitraum in die Vergangenheit legst.
Das ist eine Frage des Bezugspunktes.
Bei Offline-Datenanalyse oder bei Signalverarbeitung, die eine gewisse
Zeitverzögerung zuläßt, ist der Blick in die Zukunft kein Problem ;-)
Oder meinst du, sonst würde ein "live" MP3-Datenstrom im Internetradio
funktionieren?
> indem Du deinen Betrachtungszeitraum in die Vergangenheit legst.
Eben und damit liegt dann auch die "Gegenwert", aus der Du die
angebliche "Zukunft" betrachtest, in der Vergangenheit. Eine klare
Verschlechterung :-)
Meine Filter machen das anders, die agieren stets aktuell und schauen
wenn überhaupt nur nach hinten. :D
Jürgen Schuhmacher schrieb:> Meine Filter machen das anders, die agieren stets aktuell und schauen> wenn überhaupt nur nach hinten. :D
Dann wird ein Mittelwert z.B. bei einem Sprung des Signals immer
phasenversetzt sein (rot) - das will man nicht immer.
Mit einem akausalen Filter (gelb) liegt er schön zentriert um den
Sprung.
Mike, mein Einwand mit den Zeiten war ein gag.:-)
Also nochmal: Am Ende werden alle Samples immer erst berücksichtigt,
wenn sie vorhanden sind und der Filter hängt immer der Realität hinter.
Die Interpretation des Gültigkeitszeitpunktes macht den Unterschied.
Konkret muss man den Gegenwartspunkt des Eingangssignals verschieben
(verzögern) um in einem SV-System beide Signale zeitlich parallel zu
haben.
Mithin halte ich es für etwas irreführend, in diesem Punkt zwischen
kausalen und akausalen Filtern zu unterscheiden und damit zu
suggerieren, es gäbe zwei Sorten, die womöglich auch noch
unterschiedlich arbeiten.
Ok, danke leute!
D.h. nun, dass ein Abtastwert eines abgetasteten Signales mehrere
Frequenzen darstellt, oder wie kann man das besser ausdrücken?
Aber wie man auf meinem Bild sehen kann, kann man doch auch mehr
Abtastwerte nehmen zum Berechnen des Y-Wertes. In meinen Beispiel werden
ja 11 Abtastwerte hergenommen, mit den jeweiligen Filterkoeffizienten
multipliziert und dann addiert --> ein Y-Wert entsteht.
Von wo ist das abhängig, wie viele Abtastwerte ich hernehme zur
Berechnung?
Von meinem Signalabschnitt?
"Die FIR-Filterkoeffizienten bi stellen die Impulsantwort des Filters
auf einen Dirac-Impuls dar.
Da diese Impulsantwort im Gegensatz zu analogen Filtern hier endlich
lang sein muss, spricht man von Finite Impuls Response - Filtern."
Dieser Absatz steht ja auf S.3 meines Bildes. Sie muss endlich lang
sein?
Es geht doch nicht anders oder? Es gibt keine realen Dirac-Impulse.
Oder was meint dieser Satz genau?
guest007 schrieb:> D.h. nun, dass ein Abtastwert eines abgetasteten Signales mehrere> Frequenzen darstellt, oder wie kann man das besser ausdrücken?
Nein.
Ein Abtastwert alleine kann keine Frequenz darstellen.
Eine Folge von Abtastwerten kann analysiert werden und als Summe von
komplexen Sinus- und Kosinusschwingungen dargestellt werden
(Fourieranalyse/transformation).
Diese haben je eine Frequenz.
Das sind dann die Frequenzen über die gesprochen wird.
Dein Filter kann nun das Signal so verändern das gewisse Frequenzen
bedämpft oder verstärkt werden.
Ein FIR (Finite Impulse Response) Filter betrachtet einen endlichen
Abschnitt seines Eingangssignals für diesen Zweck.
Es arbeitet nach der Formel aus deinem ersten Bild:
d.h.
eines gewichteten Mittelwerts.
Ein einfacher Tiefpass ist z.B.
Ein einfacher Hochpass ist
Wenn Du nun mehrere Koeffizienten spendierst kannst Du
bessere/komplexere Frequenzgänge erzeugen.
(Siehe das Bild TP1.png)
guest007 schrieb:> Von wo ist das abhängig, wie viele Abtastwerte ich hernehme zur> Berechnung?> Von meinem Signalabschnitt?
Somit hoffe ich das Deine Frage beantwortet ist.
Du nimmst so viele Koeffizienten wie Du brauchst um den gewünschten
Frequenzband zu realisieren. (Im wirklichen Leben kommt dann auch die
benötigte und verfügbare Rechenleistung dazu und eventuell noch andere
Randbedingungen)
guest007 schrieb:> Dieser Absatz steht ja auf S.3 meines Bildes. Sie muss endlich lang> sein?> Es geht doch nicht anders oder? Es gibt keine realen Dirac-Impulse.
Bei FIR (Finite Impulse Response) ist die herausstechende Eigenschaft
eine endlich dauernde Impulsantwort zu besitzen.
Es gibt allerdings auch IIR (Infinite Impulse Response) Filter deren
Impulsantwort unendlich dauern kann, aber auch zumindest länger als die
Anzahl der Koeffizienten des Filters. Diese Filter betrachten Ihre
Eingangsdaten und die selbst erzeugten Ausgangsdaten. Es ist
rückgekoppelt.
Die Struktur und Formel dieser Filter ist natürlich anders als die der
FIR Filter:
Dieser Typ Filter kann zwar mit weniger Koeffizienten vorgegebene
Frequenzgänge realisieren, allerdings können aufgrund der Rückkopplung
IIR Filter instabil sein und zum Schwingen anfangen.
Genauer will ich darauf nicht eingehen, da es auch nicht die
ursprüngliche Frage ist.
Zu den Dirac-Impulsen:
Da tut man sich in der digitalen Welt einfacher:
Der Dirac"Impuls" ist folgendes Signal:
d[0] = 1, d[m] = 0 für alle anderen m
und somit tatsächlich realisierbar (im Gegensatz zur analogen Welt)
Wenn Du nun über den Dirac und FIR Filter nachdenkst wirst Du erkennen
das, wenn Du bei einem FIR einen Dirac als Eingangssignal hast direkt
die Filterkoeffizienten als Ausgangsfolge erhältst.
Ich hoffe das hilft Dir.
Gute Nacht,
Markus
Markus B. schrieb:> Somit hoffe ich das Deine Frage beantwortet ist.> Du nimmst so viele Koeffizienten wie Du brauchst um den gewünschten> Frequenzband zu realisieren. (Im wirklichen Leben kommt dann auch die> benötigte und verfügbare Rechenleistung dazu und eventuell noch andere> Randbedingungen)
Soll natürlich
Frequenzgang heissen anstatt Frequenzband.
Da hat die Autokorrektur in der Nacht zugeschlagen...
Hey, ich hätten da noch eine Frage und zwar:
Wie die digitalen Filter als Tiefpass fungieren hab ich verstanden.
Messwerte mal Koeffizienten und dann addieren. Hier nochma die Frage:
sind die koeffizienten in einem Filter alle gleich ?
Verstehe nicht wie der Rechenalgorithmus lautet für einen Hochpass.
Und sind die Filterarten FIR und IIR für alle arten von Filterungen
geeignet (Bandpass, Hochpass, Tiefpass, Bandsperre)?
Danke im voraus
Detlef Eche schrieb:> Hier nochma die Frage:> sind die koeffizienten in einem Filter alle gleich ?
Nein. Die Koeffizienten hängen von deiner Übertragungsfunktion ab.
Detlef Eche schrieb:> Verstehe nicht wie der Rechenalgorithmus lautet für einen Hochpass.
Genauso wie für den TP.
Detlef Eche schrieb:> Und sind die Filterarten FIR und IIR für alle arten von Filterungen> geeignet (Bandpass, Hochpass, Tiefpass, Bandsperre)?
Ja
Die Koeffizienten hängen von der Übertragungsfunktion ab.
Sie unterscheiden sich natürlich, je nach Übertragungsfunktion die
realisiert werden soll.
Mit Koeffizienten meine ich die
und
aus aus meinem vorvorherigen Beitrag.
Für die Berechnung der Koeffizienten gibt es verschiedene Verfahren, je
nachdem welche Übertragungsfunktion gewünscht ist (z.B. Equiripple
design, maximal flat design, least squares, windowed, bilinear
transformation, impulsinvarianz, ... ) und ob z.B. ein Filter aus dem
analogen Bereich in den digitalen Bereich transformiert werden soll.
Also trotz dass ein Filter nur eine Übertragungsfunktion hat, sind die
Koeffizienten a0, a1, a2, b0 ..... nicht gleich ?
Zum Algorithmus vom Hochpassfilter nochmal: Er soll ja hochfrequente
Signale durchlassen und tieffrequente sperren. Jetzt hab ich z.B. ein
niederfrequentes Signal das Hochfrequente Anteile besitzt. Wie filtere
ich per Mittelwertbildung nun die niederfrequente Schwingung heraus.
Weil wenn ich die Eingangswerte mit den Koeffizienten multiplizier und
dann addiere erhalte ich nur eine Glättung und die Hochfrequente
Schwingung wäre gefiltert. (siehe Bild)
Hab da irgendwas ma gehört mit negativen Koeffizienten. Kann da aber
irgendwie mathematisch nicht folgen.
Danke schon ma im voraus
Detlef Eche schrieb:> Hab da irgendwas ma gehört mit negativen Koeffizienten. Kann da aber> irgendwie mathematisch nicht folgen.
Am einfachsten zu verstehen sind vielleicht die Frequency Sampling
Filter, bei denen man durch die Nullstellenverteilung des Zählerpolynoms
direkt die Sperrfrequenzen des Filters festlegt, also in Bezug auf TP,
BP, HP keinerlei Einschränkungen unterliegt.
http://www.bulletin.zu.edu.ly/issue_n15_3/Contents/E_04.pdf
Ok Danke.
Hatt denn keiner mal ein Rechenbeispiel für einen Digitalen Hochpass. Am
besten FIR. Also ein Rechenbeispiel indem man die gefilterten Werte
berechnet.
Danke