Digitales Filter - Flankensteilheit quasi unendlich möglich?

klangdicht

klangdicht

||
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!
 
einseinsnull

einseinsnull

[nur noch musik]
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:
klangdicht

klangdicht

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

einseinsnull

[nur noch musik]
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.
 
Tax-5

Tax-5

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

einseinsnull

[nur noch musik]
mach das gleiche mal mit dem linear phase eq falls du den auch besitzt.
 
betadecay

betadecay

Dronemaster Flash
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).
 
Tax-5

Tax-5

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

Renpac

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

klangdicht

||
RS-MET wird mir als malware seite gemeldet :)

Ich hab die URL gerade noch mal durch Virus Total gejagt; nur Avira schlägt Alarm ("Malware"), alle anderen geben grünes Licht. Scheint ein false alarm von Avira zu sein. Auch die ZIP-Datei mit dem Plugin (wird nicht installiert, sondern manuell verschoben) gibt von allen Scannern grünes Licht.
 
klangdicht

klangdicht

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

klangdicht

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

ARNTE

Ureinwohner
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.
 
klangdicht

klangdicht

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

Cyclotron

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

klangdicht

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

Geil! :schwachz:
 
klangdicht

klangdicht

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

einseinsnull

[nur noch musik]
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
Reaktionen: Max
Max

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 ;-)
 
einseinsnull

einseinsnull

[nur noch musik]
genau. deswegen passiert bei FFT im prinzip das gleiche was cylotron oben beschreibt. alles andere ist religion von fft fanatikern.
 
einseinsnull

einseinsnull

[nur noch musik]
und dann alle so: "oder wir filtern es hinterher noch mal mit einem anderen filter weg!" :D
 
Zuletzt bearbeitet:
2bit

2bit

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

Max

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


Neueste Beiträge

News

Oben