Digitales Filter - Flankensteilheit quasi unendlich möglich?

Liebes Forum,

eine Frage beschäftigt mich schon länger. Ich hole mal etwas aus:

Bei einem mit elektronischen Bauteilen aufgebauten Filter gibt es - je nach Konstruktion des Filters - verschiedene Flankensteilheiten (z.B. 12 oder 24 dB/Oktave). Aufgrund der elektrischen Besonderheiten solcher Schaltungen ist es klar, dass die Filter den Frequenzgang nicht einfach so ruckzuck "abschneiden", sondern ab der Einsatzfrequenz eine mehr oder weniger weich abfallende Flanke bilden, welche die Frequenzen dann dämpfen.

Bei digitalen Filtern gibt es natürlich die Emulationen "analoger" Filter mit o.a. Verhalten der Flankensteilheit.

Nach meinem (rudimentären) Verständnis digitaler Programmierung müsste es aber auch möglich sein, die Emulation "analoger" Flankensteilheiten wegzulassen und ein Filter zu programmieren, das ab der Einsatzfrequenz alle weiteren Frequenzen abschneidet, ohne weichen Abfall des Frequenzverlaufs, einfach zack weg. Also dass mit einer beispielhaften Einsatzfrequenz eines Tiefpasses von 1000 Hz alle Frequenzen ab 1001 Hz aufwärts komplett fehlen. Ich formuliere es mal übertrieben laienhaft: "Es sind doch nur Einsen und Nullen", ohne Beschränkungen durch elektrische Eigenheiten elektronischer Bauteile, "da kann man doch einfach die Einsen auf Null stellen und schon sind die entsprechenden Frequenzen weg".

Oder sehe ich das falsch?

Liebe Grüße von

Robert!
 
bei den meisten digitalen filtern, vor allem bei denen, bei denen du die frequenz exakt einstellen kannst, besteht genau das gleiche problem wie bei analogen bauteilen; sie arbeiten in schritten von 3 oder 6 db pro oktave.

will man mehr, muss man kaskadieren, und dann hat man irgendwann mehr phasenverschiebung als absenkung.

unendlich steil ist aber auch ein sehr seltener anwendungsfall und ein nahezu reiner brickwallfilter klingt sowieso nur noch furchtbar. :)

dass man mit einsen und nullen dinge ins unendliche treiben kann ist leider auch nicht so. bei den üblichen filtern hört das geübte ohr schon den unterschied zwischen 32 und 64 bit auflösung beim gleichen algoritmus. für bestimmte, feine einstellungen langen 32 bit (ich übersetze das mal frei schnauze: "zehn stellen hinterm komma") schlichtweg nicht mehr.

(du arbeitest auch meistens nicht mit den 1en und 0en, sondern nur mit einem kleinen teilbereich der dezimalen representation dieser 1en und nullen.)

und wie gesagt, dort wo es geht (fast fourier) kannst du dann die frequenz nicht mehr selbst bestimmen. dann hast du zwar einen brickwallfilter mit minus unendlich absenkung, aber musst dich zwischen 1700 oder 1780 hertz entscheiden.

dann ist das ding bei der durchschnittlichen anwendung im kern genauso "ungenau" wie ein frequenzvariables digitiales filter mit 48 db, den du zwar auf exakt 1777,77 hertz stellen kannst, der aber eine terz höher immer noch 12% der energie durchlässt.
 
Zuletzt bearbeitet:
Danke Dir für Deine ausführliche Erläuterung!

unendlich steil ist aber auch ein sehr seltener anwendungsfall und ein nahezu reiner brickwallfilter klingt sowieso nur noch furchtbar. :)

Der von Dir genannte Begriff "Brickwallfilter" hat mich gerade zu weiteren Recherchen ermuntert. Da ich in der Tat so ein Filter immer mal hören wollte, bin ich soeben bei der Netzrecherche auf das (übrigens kostenlose) Plugin "EngineersFilter" von RS-MET gestoßen und habe in meiner DAW eine Audio-Datei durch das Ding laufen lassen. Es klingt bei extremen Einstellungen (Frequenzgang ab Einsatzfrequenz nahezu sauber senkrecht abwärts) zumindest... interessant. Als ob man Wasser in den Ohren hat. Ob das musikalisch sinnvoll ist, sei dahin gestellt; ich glaube wohl eher wirklich nicht.
 
ich kenne nur EINEN, der tatsächlich so heisst, und das ist der brickwallfilter vom audiocube gewesen. als plug-in für desktop PCs hab ich noch keinen gesehen (aber vielleicht hat er sich auch nur vor mir versteckt)

was der genau macht weiss ich nicht, und es ist ja wie oben gesagt auch relativ egal, denn ob poles and zeros, FIR, FFT oder IR, es ist immer nur ein kompromiss. :)

setz mal bei irgendeinem waves EQ 6 oder 8 high shelves auf die gleiche frequenz, das dürfte ungefähr aufs gleiche rauskommen.

ich benutze selbst innerhalb von DSP algos nur bausteine mit -48db/A, das langt völlig. nur wenige synthies haben 24, das ist dann wie 2 davon hintereinander.
 
Interessant. Ich hatte vor einige Monaten einmal einen Thread dazu erstellt, weil ich genau so einen "Brickwallfilter" als Plugin gesucht hatte.
Meine Suche blieb (wie kann es anders sein?) natürlich erfolglos.

Ich habe mir mittlerweile mit mehreren hintereinander geschalteten Plugins abgeholfen (der Waves Renaissance EQ hat eine Flankensteilheit von 96db/Oktave)
Als Alternative verwende ich den Waves C4 (oder war es der Vitamin? Die verwechsle ich immer) und mute einfach die entsprechenden Bänder. Kommt im Endeffekt aufs Gleiche heraus.
 
bei den meisten digitalen filtern, vor allem bei denen, bei denen du die frequenz exakt einstellen kannst, besteht genau das gleiche problem wie bei analogen bauteilen; sie arbeiten in schritten von 3 oder 6 db pro oktave.

[...]

und wie gesagt, dort wo es geht (fast fourier) kannst du dann die frequenz nicht mehr selbst bestimmen. dann hast du zwar einen brickwallfilter mit minus unendlich absenkung, aber musst dich zwischen 1700 oder 1780 hertz entscheiden.

Hmm... das verstehe ich nicht... Digital müsste es doch möglich sein, im Frequenzbereich sowas wie "if (x > a) then f(x) = 0" zu programmieren (wobei a die Grenzfrequenz wäre).
 
Ich sags mal so, mit meinen bescheidenen Programmier/musiktechnischen Kenntnissen:
Digital lässt sich so gut wie alles programmieren, nur verliert das irgenwann an Musikalität.

Ich erinnere mich als ich noch mit Synthedit (Tja, ich bekenne mich schuldig) Zeug zusammengeklickt hatte:
Da gabs so Oszillatoren die eine mathematisch perfekte Sinus oder Pulswelle erzeugen konnten. Das klangliche Ergebnis ist jedoch eher bescheiden und eher unbrauchbar.

Mit anderen Worten: Nur weils machbar ist, heisst es nicht dass es gut ist.
 
Hmm... das verstehe ich nicht... Digital müsste es doch möglich sein, im Frequenzbereich sowas wie "if (x > a) then f(x) = 0" zu programmieren (wobei a die Grenzfrequenz wäre).
Das Problem ist, dass es sehr aufwendig ist die Frequenz x per FFT ganz genau zu bestimmen.
 
Zuletzt bearbeitet:
Ich erinnere mich als ich noch mit Synthedit (Tja, ich bekenne mich schuldig) Zeug zusammengeklickt hatte

Ich find SynthEdit sehr brauchbar, wenn man selbst nicht coden kann (hab's früher mal in der Schule gehabt, aber nie gerafft, wie die Logik in der Programmiersprache zustande kommt...) - ich hab mal vor ein paar Jahren ein paar kleine Helferchen mit Synthedit gemacht und ebenso viel Spaß mit der Gestaltung der GUIs gehabt: http://klangdicht.de/vst-plugins.html
 
Back to topic:

Ein Filter mit unendlicher Flankensteilheit kann man nur theoretisch beschreiben, aber nicht real umsetzen - weder analog noch digital.

Finden wir uns damit ab, dass es theoretisch möglich ist, aber selbst mit einem Algorithmus nicht geht. :heul: Man kann also offenbar auch digital nur eine Annäherung an eine perfekt senkrechte Flanke erreichen.

Das von mir oben genannte "EngineersFilter" schafft eine Flankensteilheit von 20 "Order" - das müssten 120 dB/Oktave sein, wenn ich das richtig gerechnet habe. Das ist ja schon so gut wie senkrecht.
 
Der Fab Filter Q3 bietet auch einen Brickwall Modus - mit unterschiedlichen Modi, wie die Phase dabei gehandelt wird. Das kann mitunter schon brauchbar sein für eher technische Aufgaben. Rein musikalisch macht das imo selten Sinn. Ich nutze den aber z.B. um unterhalb 20 Hz abzuschneiden. Da braucht man einfach kein Signal mehr sondern verballert nur Energie bzw. hat nen DC Offset.
 
Ich hab mir das Filter mit den 120 dB/Oktave noch mal auf einem puren Sägezahnsound angetan und muss ehrlich gestehen: Ich finde den Klang doch reizvoll. Man kann - ganz ohne Resonanz - die Obertöne an der Grenzfrequenz sehr präsent hörbar machen.
 
Man kann - ganz ohne Resonanz - die Obertöne an der Grenzfrequenz sehr präsent hörbar machen.

Das könnte an den Ripples liegen, die den Frequenzgang rund um den Cutoff teils drastisch verbiegen. Das gibt dann multiple Resonanzen und wirkt wie ein Kammfilter oder ein Exciter auf den Höhen. Ggf. klanglich irgendwas zwischen Feenstaub und Schwurbel (speziell bei nichtstatischen Klängen). Nur dass diese Betonung allein von der Steilheit und der Frequenz abhängt und nicht direkt einstellbar ist.
 
Ich hab eben die Frage, ob es solch ein digital umgesetztes Filter (jetzt im Umkehrschluss) nicht auch in Hardwareform z.B. für das Eurorackformat gibt, in einen Thread im Modular-Unterforum gestellt. Das wäre nämlich eine ziemlich exotische Angelegenheit für das an sich ja schon exotisch überbordende Modularangebot...
 
Hmm... das verstehe ich nicht... Digital müsste es doch möglich sein, im Frequenzbereich sowas wie "if (x > a) then f(x) = 0" zu programmieren (wobei a die Grenzfrequenz wäre).

ne.

ein ditigales signal funktionert da im kern genauso wie ein analoges.

ein signal "enthält frequenzen", indem sein verlauf eine bestimmte form hat.

nur was du vorliegen hast, kannst du moduleiren, und nur diesen verlauf hast du vorliegen.

wenn du ein signal hast, was aus der summe aus 2 sinuswellen von 1000 und 1000,01 Hz hast, dann hast du ... nur noch diese summe. und nicht mehr die einzelteile.

ergo musst du in irgendeiner form anaylsieren, welches die einzelteile sein könnten.

oder mit anderen worten: du musst diese summe jetzt so modulieren, dass der eine teil davon, den du aber gar nicht vorliegen hast, nicht verändert wird, sondern nur der andere. :P

bis dahin ist das bei digital das gleiche problem wie bei analog: wenn das erste monentum/sample 0.7 ist und das zweite ist 0.9 - welcher anteil der differenz, also des antiegs um 0.2, kommt jetzt von der bassdurm und welcher von der kuhglocke? eben: kann man gar nicht ausrechnen.

der einfachste digitale filter ist die interpolation; dazu näherst du die werte nebeneinanderliegender samples einander an, indem du ihren durchschnitt berechnest.
wenn du das mit 2 samples macht, dann ist das ein lowpassfilter mit 3db bei der halben samplingrate.
wenn du das mit 22050 nebeneinanderliegenden samples machst, ist es ein 3db filter mit einer nennfrequenz von 2 Hz.
wenn das ergebnis von vom einganssignal abziehst, ist es hochpassfilter.
wenn du 6 db haben willst, musst du 2 in serie schalten.

mit poles und zeros, die in einfachen worten zu erklären ich nicht in der lage bin, musst du die filter in reihe schalten, bei FIR (so wie das oben erwähnte plug-in) erzeugst du die transferfunktion, indem du den algoritmus, der sie generiert in reihe schaltest.

beliebige "flankensteilheit" geht dann nur mit einer konvertierung ins "spektrale". will man hier die frequenz halbwegs genau einstellen, kommt man auf irrsinnig große analyse-brocken, die mehrere sekunden latenz erzeugen würden, weswegen ich es oben ausgeschlossen hatte, das so zu lösen. außerdem ist es höchst fraglich, ob man hier von flankensteilheit sprechen sollte und wie nahe man wirklich an die schallmauer kommt. :)

Das von mir oben genannte "EngineersFilter" schafft eine Flankensteilheit von 20 "Order" - das müssten 120 dB/Oktave sein, wenn ich das richtig gerechnet habe. Das ist ja schon so gut wie senkrecht.

-120 db/A sind vor allem round about ein hunderstel der energie und weniger als ein zehntel der empfundenen lautheit.

um das noch wahrzunehmen musst du deine anlage erst mal auf 125db stellen.

in einer 16 bit musikdatei (z.b. mp3) kannst du -120 gar nicht mehr darstellen, es ist gleich null.

dem ingenieur und dem künstler langts ja wenns funktioniert, was interessiert uns die mathematik.
 
Zuletzt bearbeitet:
  • Daumen hoch
M.i.a.u.: Max
beliebige "flankensteilheit" geht dann nur mit einer konvertierung ins "spektrale". will man hier die frequenz halbwegs genau einstellen, kommt man auf irrsinnig große analyse-brocken, die mehrere sekunden latenz erzeugen würden, weswegen ich es oben ausgeschlossen hatte, das so zu lösen.

Bei der Analyse hat man dann ja genau das selbe Problem, wenn man die Bänder trennen will....

Unendliche Flankensteilheit ist für den Mathematiker kein Problem, wenn man mit unendlicher Latenz leben kann ;-)
 
genau. deswegen passiert bei FFT im prinzip das gleiche was cylotron oben beschreibt. alles andere ist religion von fft fanatikern.
 
Wie soll das denn gehen?

Die Flankensteilheit an sich wird durch einen Quotienten definiert (entweder dB/Okt oder V/µs) und der Nenner darf nun mal nie null sein.

Macht ja auch überhaupt gar keinen Sinn, eine beliebige Anzahl Dezibel durch null Oktaven zu teilen. Oder eben eine beliebige Spannung in Volt durch null Sekunden zu teilen.
 
Durch Null teilen ist "undefiniert", aaaaaber...

Wenn man einen Bruch 1/x hat, und x immer kleiner werden lässt - und wenn es dann schon fast 0 ist dann immer noch kleiner werden lässt und dann nochmal kleiner - ich hoffe du verstehst das Prinzip ;-) - dann wird dieser Bruch irgendwann unendlich groß.

https://de.wikipedia.org/wiki/Grenzwert_(Funktion)
 
Wenn man einen Bruch 1/x hat, und x immer kleiner werden lässt - und wenn es dann schon fast 0 ist dann immer noch kleiner werden lässt und dann nochmal kleiner - ich hoffe du verstehst das Prinzip ;-) - dann wird dieser Bruch irgendwann unendlich groß.

Der Bruch wird nicht nur unendlich groß. Er wird auch unendlich klein (genauer: unendlich groß im negativem Bereich) und zwar zur selben Zeit. Das ist die wesentliche Aussage der Grenzwertbetrachtung von einer Division einer beliebigen reellen Zahl durch null. Das war übrigens auch der zentrale Aussageinhalt der beiden Videos, die ich verlinkt habe.

Durch Null teilen ist "undefiniert", aaaaaber...

Aber?
Wir reden hier faktisch von einer Singularität*, die sich in ihrem Wesen fundamental von einem Intervall (und nichts anderes ist die Flankensteilheit, nämlich An- bzw. Abstieg pro Zeit) unterscheidet. Eine unendliche starke Signalveränderung innerhalb eines zeitlich irrelevanten Bereiches (d.h. kleiner als die Planck-Zeit) ist für die Signalverarbeitung per Definition purer Schwachsinn.

*In einer solchen gelten keine uns bekannten physikalischen Regeln. Urknall? Schwarze Löcher? Das sind die Beispiele für Unendlichkeit in der Natur: Wir haben keinen Plan, was dabei wirklich abgeht, weil sich Singularitäten unserer physikalisch erfassbaren Wirklichkeit vollständig entziehen. Das ist der Grund, warum wir nicht durch null teilen. Weil die Antwort keinen Sinn ergibt.
 


News

Zurück
Oben