Impulse Response: wie lang für welchen Effekt?

  • Ersteller murmichel
  • Erstellt am
murmichel
murmichel
Registrierter Benutzer
Zuletzt hier
19.04.24
Registriert
29.11.14
Beiträge
1.303
Kekse
5.116
Ort
Bonn
Mit Impulsantworten, FIR-Filtern, Konvolution kann man so einiges anstellen, das weiß ich in der Theorie. Wovon ich nur eine sehr oberflächliche Vorstellung habe, ist, wie lang so eine IR sein muss, um damit bestimmte Effekte zu erreichen.

Klar, ein Halleffekt braucht eine lange IR, ein Equalizer kommt anscheinend mit einer ziemlich kurzen aus (etwa < 20ms im Mooer Radar). Aber was liegt dazwischen. Kann jemand Beispiele nennen?

Murmichel
 
Eigenschaft
 
Ist pauschal nicht zu beantworten... wie du sagtest: die Impulsantwort eines FIR-Halls muss so lang sein, wie die Hallzeit eben sein soll,
Die Impulsantort eines FIR-Filters (etwa EQ, Tiefpass oder ähnliche), da ist immer die Frage, wie eigentlich diese Impulsantwort "erzeugt" werden soll. Soll ein theoretisches IIR-Filter durch ein FIR-Filter genähert werden? (warum auch immer man das tun sollte), dann hängt dies im wesentlichen von der Güte des IIR-Filters ab und man muss sich die entsprechende Impulsantwort des IIR-Filters angucken...
Baut man "direkt" ein FIR-Filter zu einem vorgegebenen Frequenzgang, so ist natürlich auch hier die Frage, wie gut approximiert werden soll... ich bin jetzt mal so dreist und werde in den Raum, dass man mit Filtern 47. Ordnung im Audiobereich so ziemlich alles abgebildet bekommt man will (direkte Approximation!)...

gehen wir von 48kHz aus, so hätte dann die Impulsantwort eine Länge von 1ms....

Davon ausgeschlossen wären jetzt allerding extreme EQ-Settings mit sehr steilen Flanken...

will man da jetzt noch mehr "Luft" haben, dann kann man ja 5ms oder gar 10 draus machen... aber das ist dann wirklich die Kategorie, die nicht überschritten wird, wenns um EQs geht....



Meine ganz bescheidene Meinung nebenbei: Ich halte FIR-Filter im "künstlerischen Teil" der Tontechnik für reine Marketingblabla... im technischen Tonbereich (etwa Entzerrung von Lautsprechersystemen) mögen sie vielleicht noch eine gewisse relevanz haben....
"Phasenverzerrungen" hören wir als Menschen de facto nicht (wenn sie nicht vollends Banane werden)
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Danke, das war erhellend.

Meine ganz bescheidene Meinung nebenbei: Ich halte FIR-Filter im "künstlerischen Teil" der Tontechnik für reine Marketingblabla... im technischen Tonbereich (etwa Entzerrung von Lautsprechersystemen) mögen sie vielleicht noch eine gewisse relevanz haben....
"Phasenverzerrungen" hören wir als Menschen de facto nicht (wenn sie nicht vollends Banane werden)

Kannst du das noch erläutern? Meinst du, dass im "künstlerischen Teil" FIR-Filter verzichtbar sind, weil die Wirkungen auch mit IIR-Filtern oder analog erzeugt werden könnten? Das spräche ja nicht gegen FIR-Filter als Mittel ("Implementierungsdetail").
 
Naja also mit "künstlerisch" meine ich weite Teile des Mixings, also wo es darum geht, "Klanggestaltung" zu betreiben...

In 99,5% der Fälle gucken wir uns immer nur "Amplitudengänge" von Filtern an (die lustige Gain über Frequenz-Kurve, die man so kennt). Den Phasengang der Filter interessiert eigentlich keine Sau und wird auch fast nirgendwo angezeigt...
Ich kann sowohl mit IIR als auch mit FIR-Filtern nahezu beliebige Amplitudengänge erzeugen... dabei bedeuten allerdings die IIR-Filter erheblich weniger aufwand (VIEL geringere Filterordnung und das ist ein ganz gutes Maß für Rechenaufwand und damit CPU/DSP-Auslastung.
Der reine Amplitudengang ist in beiden Fällen ähnlich gut reproduzierbar.
Das FIR-Filter kann nun allerdings den Phasengang "linear" gestalten. Das kann ein IIR-Filter per Definition nicht.
"linearer Phasengang" heißt, dass jede "Frequenz" die gleiche Verzögerung erfährt (man sagt auch "Grupennlaufzeit ist konstant"). Sowas "klingt" (im Sprachgebrauch, nicht im Audiomaterial :D ) natürlich erstmal gut und toll und was weiß ich.... meinem Empfinden ist das aber definitiv kein Qualitätskriterium, denn einen krummen Phasengang kann zumindest ich eigentlich nicht hören.

Also heißt das für mich: Was ich mit einem FIR-Filter erreichen kann - nämlich linearen Phasengang - ist nicht hörbar; Es kostet aber vergleichweise gigantischen Rechenaufwand, weswegen ich halt keinen Sinn darin sehe.
Das ganze "FIR-Zeug" ist nix neues und schont seit den 60ern bekannt. (aus anderer perspektive in der Hochfrequenztechnik schon im vorletzten Jahrhundert). Allerdings war die Implementierung über viele Jahre nicht möglich (DSPs/Prozessoren zu langsam und Speicher zu klein, weshalb man das nie gemacht hat). Heute geht das und jetzt finden's alle geil...

Ich finds überflüssig ;)
 
Ist der Vorteil beim FIR-Filter nicht das sehr allgemein Interface? Ich brauche einen Konvolver, also eine völlig allgemeine Ausführungsumgebung, und in den stopfe ich eine Impulsantwort. Fertig. Bei IIR-Filtern stelle ich mir das schwieriger vor.
 
Hmmm naja... Ich sag's Mal so: Faltung ist nichts anderes als n Haufen Multiplikationen und summationen.

Wenn man FIR-Filter realisiert geht man oftmals hin und rechnet diese Summen gar nicht direkt aus sondern baut "geschickt" Zwischenergebnisse ... (Stichwort latticestruktur)

Wenn man nämlich eine Faltung "straight Forward" ausrechnet, dann bekommt man gern Mal Probleme durch Rundubgsfehler...
Insofern ist dein Beispiel eines "Falters" nicht sooo relevant.

Ich sag's Mal so:
Will ich ein FIR-Filter per Faltung direkt berechnen, dann Brauch müssen mir eben ca. 50 Filterkoeffizienten bekannt sein (Länge der Impulsantwort)

Wenn ich hingegen ein IIR-Filter 6. Ordnung berechnen will, dann müssen mir 13 Filterkoeffizienten bekannt sein (2*Ordnung + 1)...
Danach wird in beiden Fällen multipliziert und summiert.

Theoretisch kann ich auch in Echtzeit die Impulsantwort des IIR-Filters ausrechnen und die dann nach und nach in die Faltung stecken, aber das ergibt keinen Sinn und hat nur Nachteile.
 
Ich drücke es mal anders aus: Es gibt inzwischen eine ganze Reihe Geräte, in die man eine Impulsantwort laden kann. Typischerweise, um damit Lautsprecher zu simulieren. Aber durch die sehr allgemeine Schnittstelle könnte man diese Geräte eben auch für andere Zwecke verwenden, etwa um EQ-Kurven dort hinein zu laden.

Gibt es Effektpedale, in die man IIR-Koeffizienten laden kann?
 
Ja stimmt schon: Ein Gerät, in das man eine Impulsantwort laden kann, führt eine irgendwie optimierte Faltung aus.
Damit ist es in der Tat egal, ob man hier Filterkoeffizienten eines FIR-Filters reinlädt (im Sinne von EQing), ob man eine "Hallfahne" reinlädt oder den Frequenzgang eines Lautsprechers (bzw. einer Lautsprecher/Mikro/Raumkombination).

Das ist so weit richtig...


Großes Aber: wenn man bspw. "die Impulsantwort eines EQs" lädt, dann heißt das automatisch: "Die Impulsantwort eines EQ-Settings", will sagen: Ich kann nicht nachträglich an diesem EQ drehen...
Und jetzt frage ich mich wieder: "Wofür dann?" Üblicherweise gehe ich doch hin und drehe am EQ so lange rum, bis mir das Ergebnis gefällt oder nicht? Das geht mit so einem Gerät nicht.
Ähnlich ists bei nem Faltungshall: Die Impulsantwort ist fest. Jetzt gibt es bei normalen Faltungshallgeräten/Plugins durchaus noch die Möglichkeit da einen "hybriden" zu erzeugen, der nachträglich die Impulsantwort algorithmisch manipuliert, dann hat man ne Mischung aus Faltungs- und algorithmischem Hall... schon..


Aber ich Frage mich wirklich: Welchen Sinn hat es, eine EQ-Kurve durch eine Faltung nachzubilden?
Dafür muss man dann halt ne riesen Bibliothek von Impulsantworten für "jedes" EQ-Setting anlegen. So nach dem Motto:
Ich habe einen 3-Band EQ vollparametrisch und da stelle ich jetzt händisch die 9 Parameter (Gain, Q und Mittenfrequenz) für jedes Band in einem gewissen Raster ein, sagen wir mal pro Parameter 40 Settings, macht 360 verschiedene EQ-Kurven. Dafür berechne ich jeweils die Impulsantworten mit den entsprechenden Koeffizienten. Kann man tun und ist in der Tat in der heutigen Zeit vom Aufwand her ohne weiteres machbar.

Was wohl gern gemacht wird ist das Prinzip mit tollen analogen Studio-EQs zu machen und da die Impulsantworten wirklich aufzunehmen um so diesen EQ nachzubilden. Dann hat man ein Plugin, welches je nach EQ-Setting eine andere Impulsantwort lädt. Geht auch.


Also nochmal: Technisch geht das alles. Du kannst sonstwas in einen Faltungsalgorithmus reinladen, alles gut. Aber ich persönlich sehe weder die Notwendigkeit noch einen signifikanten Vorteil...

Was allerdings wirklich ganz lustig ist: Einfach mal "random-Impulsantworten" laden :D Da entstehen teilweise richtig witzige Effekt... Also quasi ein Rauschen aufnehmen und das als Impulsantwort hinterlegen...


Gibt es Effektpedale, in die man IIR-Koeffizienten laden kann?

Es gibt (ich bin eher technischer Typ als musikalischer Typ inzwischen) durchaus Geräte in die ich IIR-Koeffizienten laden kann (Mini-DSP, Analog Devices Sigma etc). Aber im Grunde tut das jeder digitale EQ. Der rechnet die sich halt nur selber aus. also der macht eine "Übersetzung" zwischen "handlichen Parametern" wie Güte, Gain, Mittenfrequenz hin zu IIR-Koeffizienten. Also im Hintergrund passiert das ehh immer.



Noch ein "Add-On" weil du das "Lautsoprechersimulationsbeispiel" angeführt hast:

Die "Faltung" ist eine so genannte "lineare Operation". Wenn man also Geräte simulieren möchte per Faltung, geht das erstmal nur für lineare Geräte (EQs, Filter, Hall, Delay etc...)
Wenn man das ganze noch "aubohrt", kann man damit so genannte "Zeitvariante systeme" abbilden, das sind systeme die ihre Eigenschaften über die Zeit verändern (Phaser, Flanger, Chorus und Konsorten).
Was man prinzipiell damit NICHT abbilden kann sind nichtlineare Systeme (Verzerrer, Kompressoren, Gates, Nichtlinearitäten von Lautsprechern (die teilwesie signifikant zum Klang beitragen)).
Also man ist auch bei Faltungsgeschichten auf eine bestimmte Geräteklasse beschränkt, wobei die recht groß ist...
 
Großes Aber: wenn man bspw. "die Impulsantwort eines EQs" lädt, dann heißt das automatisch: "Die Impulsantwort eines EQ-Settings", will sagen: Ich kann nicht nachträglich an diesem EQ drehen...

Ich glaube, du verallgemeinerst hier die Anwendungsfälle, die du im Kopf hast zu sehr. Stell dir dazu noch vor, dass jemand am Computer mit grafischen Werkzeugen und Hilfsmitteln (Spektrogramm, Obertöne) etwa einen EQ erstellt, diesen dann in eine Impulsantwort kompiliert und in ein Effektpedal lädt.

Bei diesem Szenario gibt es eine Trennung zwischen einerseits dem Erstellen der Impulsantwort, mit Hilfsmitteln, die für unterschiedliche Zwecke optimiert sein können, etwa EQ oder Modulation. Andererseits gibt es die allgemeine Ausführungsumgebung, die lediglich mit Impulsantworten umgehen können muss.
 
Ich glaube, du verallgemeinerst hier die Anwendungsfälle, die du im Kopf hast zu sehr. Stell dir dazu noch vor, dass jemand am Computer mit grafischen Werkzeugen und Hilfsmitteln (Spektrogramm, Obertöne) etwa einen EQ erstellt, diesen dann in eine Impulsantwort kompiliert und in ein Effektpedal lädt.

Gegenfrage: wieso sollte er das tun?

Nenne mir mal ein realistisches Szenario bei dem das so erfolgen würde?

Angenommen du stellst einen EQ im Studio ein (in welchem Zusammenhang eigentlich? ein Instrumentalist, der im Studio "seinen" Sound sucht?). Der Mann hat jetzt ein EQ Setting gefunden exportiert irgendwie ne Impulsantwort (ist möglich, keine Frage... ist auch nicht realitätsfern das zu tun).
Jetzt lädt er das Setting in sein Pedal und hat jetzt diesen EQ dabei...

Okay... kann man machen wenn man will... ich persööööönlich sehe da wenig sinn drin, denn ähnliche Ergebnisse würde man auch mit einem ordentlichen EQ als Gerät direkt hinbekommen, aber egal! Ist nur meine Meinung... von daher: Lassen wir das mal so stehen.. ja geht! Kein Ding...

Aber:
Aufm nächsten Gig sind seine Saiten eine Woche alt und haben ein bisschen Höhen verloren. Er steht auf ner Bühne, die relativ dumpf ist... jetzt kann er 0,000 eingreifen und sein EQ-Setting anpassen. Geht nicht. Braucht er also einen weiteren EQ, der jetzt das hinbiegt, was andere verbiegt oder das mehr verbiegt, was der eine nicht ausreichend verbiegt...
Ich finde das irgendwie nur bedingt "sinnvoll". Also ich sehe wirklich den realistischen (wie man so schön sagt: praxistauglichen) Mehrwert nicht.

Bei diesem Szenario gibt es eine Trennung zwischen einerseits dem Erstellen der Impulsantwort, mit Hilfsmitteln, die für unterschiedliche Zwecke optimiert sein können, etwa EQ oder Modulation. Andererseits gibt es die allgemeine Ausführungsumgebung, die lediglich mit Impulsantworten umgehen können muss.

Dochdoch Ich verstehe das schon und das ist ja auch richtig. Ich sehe aber wie gesagt keinen großen praktischen Nutzen (aus oben genannten Gründen).
Und einen Modulationseffekt kannst du auf diesem Wege ehh nicht erzeugen.
Es gehen wirklich nur EQs (und wie sind eben dann 0 änderbar) und Hall/Delay Effekte. Hier kann man im nachhinein noch sagen wie sehr man nun den Effekt zumischen will. Man kann aber keine Delayzeiten einstellen, keine Halllänge einstellen etc.
Das ist im nachhinein alles 100% statisch und dieses "100% statisch" ist eben ne Sache, die ich wenig praktikabel finde.


Ich habe so ein bisschen das Gefühl du gehst von einem Szenario aus, wo man hingeht und sagt:

"Ich erzeuge mir jetzt einen Sound und den will ich in ein Gerät werfen und trage den dann immer mit mir rum"... Wenn das die Idee ist: Ja das funktioniert (für EQ, Hall und Delay) aber ich würde spontan keinen Musiker kennen, der nicht nochmal da eingreifen können wollen würde.

In sofern: Ich sehe den Gewinn nicht.... (außer bei wirklich speziellen Anwendungsfällen und dann auch eher im Sinne eines Faltungsplugins als bei einem Faltungsbodentreter, denn am Rechner kann man entspannt viele Impulsantworten in quasi-Echtzeit verwalten... auf nem Bodentreter eher nicht)
 
Ich habe so ein bisschen das Gefühl du gehst von einem Szenario aus, wo man hingeht und sagt:

"Ich erzeuge mir jetzt einen Sound und den will ich in ein Gerät werfen und trage den dann immer mit mir rum"... Wenn das die Idee ist: Ja das funktioniert (für EQ, Hall und Delay) aber ich würde spontan keinen Musiker kennen, der nicht nochmal da eingreifen können wollen würde.

Das ist in der Tat nah an einem Szenario dran, dass mich interessiert. Ich beabsichtige, mir einige Impulsantworten zu erstellen und diese dann auf einem Pedal auszuführen. Die lästigen technischen Details muss ich noch herausfinden, was sicher eine ganze Weile brauchen wird.

Mein Ziel ist allerdings nicht, nur mit einer Impulsantwort herum zu laufen, in der trügerischen Hoffnung, allein damit überall einen bestimmten Klang reproduzieren zu können.
 
Okay... ja dann beschreib doch mal was du tun willst...

also prinzipiell geht sowas ja....

Mich würde dann zwecks einschätzung interessieren, welche "Effekte" die Impulsantworten abbilden sollen...
 
Für meine Zwecke wird ein EQ genügen.

Aber bevor ich dazu komme, werde ich wohl oder übel erstmal mein theoretisches und praktisches Wissen in Sachen DSP sehr deutlich erweitern müssen. Es gibt da einen Coursera-Kurs, den ich noch überwinden will/muss.
 
Schaden wirds nicht ;)

Mal so gefragt: Was ist denn dein "Hintergrund"? Hast du irgendwas in der Richtung studiert? Bist du fit in Mathe? etc...

Den Coursera-Kurs kenne ich nicht,
ich selbst hab 5 Jahre lang als Dozent an der Uni Mathe, Digitale Signalverarbeitung und statistische Signalverarbeitung unterrichtet, also falls du da irgendwelche Fragen hast.. hau raus....
 
Ich habe mal rumgespielt und muss mich etwas korrigieren:
Ich würde als Länge doch eher nochmal zur Sicherheit "Faktor 10" draufrechnen. also nicht 1ms sondern 10ms für relativ Hochgütige Filter.
Dazu ein paar Beispiele:

Hier mal ein übliches "Butterworthfilter zweiter Ordnung" (heißt: Tiefpass zweiter Ordnung mit einer Güte von 1/sqrt(2)). Das ist eines, welches nicht "überschwingt" bei Grenzfrequenz. Hier mal exemplairsch: Grenzfrequenz 1kHz, Abtastrate 48kHz:

upload_2018-5-23_21-43-52.png


Man siehtoben links die Impulsantwort mit 48 samplen, also Länge: 1ms, die man nun in seinen "Falter" laden würde. Rechts daneben sieht man, wie die Impulsantwort eigentlich weiter gehen würde. Man sieht, dass "optisch ein Stück fehlt".
Unten links sieht man den eigentlichen Frequenzgang des Originalen Filters in blau und den des FIR-Filters in rot. Man sieht, dass durch das Abschneiden etwas "Chaos" im Sperrbereich entsteht. Zu guter letzt sieht man rechts die Abweichung beider Frequenzgänge und sieht dass die Differenz der Pegel im Durchlassbereich (unter 1kHz) im Bereich von 10tel dB liegen. Das würde kein Mensch hören. Im Sperrbereich wird die Abweichung dann größer, aber wenn man ehh schon um 30dB sperrt, dann ists auch egal ob man nun bei 25 oder bei 35dB liegt... zumindest in der Audiowelt.


Joa das ganze geht also offenbar ganz gut... Es seiiiii denn jemand kommt auf die Idee ein "Resonanzfilter" zu verwenden. Das wird beispielsweise in Gitarrenelektroniken gern gemacht. Das sind Filter, die bei ihrer Grenzfrequenz "überschwingen" also den Bereich sogar verstärken. "Technische" Menschen sprechen von hochgütigen Filtern. Das ganze sieht dann so aus:

upload_2018-5-23_21-50-19.png


Man sieht, dass die Impulsantwort bei einem solchen Filter deutlich "länger" ist (formal immer unendlich lang, aber ich sag mal "der wesentliche Bereich"). Schneide ich diese nun wieder nach 47 samplen ab, nehme also wieder 1ms der Impulsantwort führt dies zu einem einigermaßen chaotischen Frequenzgang. Das würde man nun massiv hören. Allein schon dass der Durchgangsbereich der FIR-Version nun bei ca. -6dB läge --> Es wäre alles leiser. Ferner ist die Resonanz nicht mehr gut ausgeprägt.

Um nun ein solches Filter trotzdem per FIR abzubilden, muss man die FIR-Impulsantwort also verlängern. Im nächsten Beispiel sind mal 7ms (335 samples) als FIR-Länge genommen worden und dann siehts wieder gut aus:

upload_2018-5-23_21-56-10.png



ich hab jetz mal bis "Güte 10" Experimentiert und dann gehen 10ms immernoch ganz gut. In der Praxis geht man eigentlich nie da drüber.


Und zu guter letzt: Wenn ich nun keinen TP sondern Bandpässe oder Peakfilter nehme, ändert sich daran nicht mehr viel. Der Güte-Parameter beim Peakfilter hät sehr ähnliche Auswirkungen auf die Länge der Impulsantwort wie beim Tiefpass.
Wenn ich mehrere Filter kaskadiere wird dadurch die Impulsantwort nicht wesentlich länger. Maßgebend ist immer das hochgütigste Filter.

(Für die, die wissen wollen Warum: Es kommt auf die Polstellen der analogen Übertragungsfunktion an. Je näher deren Realteil bei 0 liegt, desto langsamer klingt die Impulsantwort ab (Der Realteil beträgt: -1/(2*Q)). Wenn man nun Filter kaskadiert, multipliziert man die Übertragungsfunktionen. Damit bleiben aber jeweils die Polstellen erhalten, weshalb das Verhalten der Impulsantwort bei langen zeiten Maßgeblich durch die Polstellen bestimmt wird, die zum Filter mit der höchsten Güte passen.
 
  • Gefällt mir
Reaktionen: 3 Benutzer
Oh, danke, das ist spannend. Womit hast du das berechnet und ausgegeben? MATLAB/Octave oder Matplotlib?

Was die nötigen 10ms für glatte FIR-Filter angeht, würden dabei schon Geräte wie das Mooer Radar (23ms) mitkommen.
 
Ist n Matlabskript und damit auch octave ;)

mit 23ms sollte man so ziemlich alles abgebildet bekommen. Einzig und allein bei Bearbeitungen im tiefen Bassbereich kööööööööööönnte es da knapp werden, wenn man wirklich ne sehr gute Approximation braucht, wobei ich der Meinung bin, dass gerade im Bereich <100Hz das eigentlich völlig unkritisch ist
 
Eine Frage zum Thema Lautstärke von IR die hier hoffentlich trotzdem halbwegs gut aufgehoben ist?

Mit fällt auf, dass von mir ausgewählte Cab-IR teilweise hohe Abweichungen in der Lautstärke haben. Beim A/B-Testen, also dem Versuch das beste IR für eine bestimmte Amp-Sim zu finden, neigt man bei ähnlichen IR erfahrungsgemäß tendenziell dazu das lautere IR zu bevorzugen.
Ich würde deshalb gern die IR, bei denen ich mir sicher bin, dass ich sie dauerhaft behalte und nutze, von der Lautstärke her gesehen anpassen. Kann ich dies einfach über z. B. die Funktion "Normalisieren" von Audacity durchführen und was gilt es dabei zu beachten?

Klar, dass ich aus einem WAV wieder ein WAV exportiere, das Original bis nach dem Probehören der Anpassung behalte und keine Peaks über 0 dB erzeuge. Sonst noch etwas?
 
Ist nix zu beachten... Wenn du sie auf 0dB normalisierst musst du gucken ob die interne Dynamik der faltungsengine damit zu Recht kommt...
Ich würde auf "Energie = 1" normalisieren... Aber ich fürchte, das kann audacity nicht
 
  • Gefällt mir
Reaktionen: 1 Benutzer

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben