Archiv verlassen und diese Seite im Standarddesign anzeigen : Jenseits von Fourier
Guten Morgen,
in diesem Thread (https://www.diy-hifi-forum.eu/forum/showthread.php?23465-Neue-(-)-Messtechnik-f%FCr-den-Bassbereich), in dem es erstmal nur um eine verbesserte Technik bei der Nahfeldmessung ging, entspann sich eine weitere Diskussion über Lautsprechermessverfahren. Darum soll es hier nicht gehen, aber in dem Zuge erwähnte ich hier (https://www.diy-hifi-forum.eu/forum/showthread.php?23465-Neue-(-)-Messtechnik-f%FCr-den-Bassbereich&p=343565&viewfull=1#post343565) und hier (https://www.diy-hifi-forum.eu/forum/showthread.php?23465-Neue-(-)-Messtechnik-f%FCr-den-Bassbereich&p=343568&viewfull=1#post343568), dass die Fouriertransformation nicht der Weisheit letzter Schluss ist.
Diesen Thread lege als Gedankenstütze für mich und als Anregung für andere an, sich mit alternativen Verfahren zu beschäftigen. Weil es mir im Zuge der Abstimmung der Flat White (https://www.diy-hifi-forum.eu/forum/showthread.php?22619-Flat-White-Ein-BMR-am-Limit) mal wieder ziemlich auf den Zünder geht werde ich die nächsten Wochen, sofern es die Zeit zulässt, mich wieder mehr um diese Verfahren kümmern.
Worum geht es?
Die wichtigste Eigenschaft eines Lautsprechers ist, neben der Optik ;), der Frequenzgang. Den kann man auf verschiedene Weisen messen, mit einem Multiton, Rauschen, oder über den Umweg der Impulsantwort. Allen diesen Verfahren ist gemein, dass sie die Fouriertransformation benutzen. Ältere Semester oder besonders interessierte junge werden noch Pegelschreiber kennen, die arbeiteten nicht so, aber es gab auch Spektrum Analysatoren mit Mitlauffiltern oder Filterbänken, das ist im Grund nicht viel anders als eine Fouriertransformation. Bei Lautsprechern hat sich inzwischen die Variante mit der Impulsantwort durchgesetzt, weil sie ermöglicht, die unvermeidlichen Raumreflexionen durch Fenstern auszublenden und daher im Quasi-Freifeld zu messen. Das erste kommerzielle Programm dazu war, man möge mich korrigieren, MLSSA, dem gemeinen Selbstbauer durch die Bildchen in der K&T zu Timmermanns Zeiten* bekannt. Vorher gab es noch ein Verfahren namens "Time Delay Spectrometry", welches mathematisch auch wieder in die gleiche Kerbe schlug. Das Verfahren des Fenstern der Impulsantwort krankt daran, dass es häufig einfach nicht lang genug ist. Eine Fensterlänge von 5 ms ist in Wohnräumen oder Büros schon viel, bei der Flat White hatte ich knapp 2,5 ms in 1,5 m Entfernung. Klar, das lässt sich optimieren indem man den Lautsprecher auf ein Podest stellt, aber 5 ms ist halt so wirklich das Maximum, was ich gesehen habe. 5 ms bedeutet eine Frequenzauflösung von 200 Hz und eine belastbare Aussage über den Frequenzgang ab ca 600 Hz (pi mal Daumen 3x Frequenzauflösung, man kann auch drunter gehen wenn man die Augen zusammenkneift). Meine Idee ist, diese Beschränkung aufzuheben, indem ich mich von der Fouriertransformation löse und andere Wege beschreite.
Was genau ist die Fouriertransformation und warum ist das ein Problem?
Die Fouriertransformation ist eine Verallgemeinerung der Fourierreihenentwicklung. Letztere ermöglicht es, periodische Signale, zum Beispiel eine Rechteckschwingung (https://de.wikipedia.org/wiki/Rechteckschwingung), durch Sinus- und Kosinusschwingungen mit diskreter Frequenz und jeweiligem Pegeln zu beschreiben. Dabei gibt es das sogenannte Gibbsche Phänomen (auch im Artikel beschrieben bzw. verlinkt), welches bei endlichen Fourierreihen dafür sorgt, dass es an scharfen Übergängen - beim Rechteck die beiden Flanken - zu Überschwingern kommt. Je länger die Fourierreihe, also je mehr Sinus-/Kosinusschwingungen verwendet werden, umso geringer wird das Phänomen, bis es bei einer unendlich langen Reihe verschwindet. Das ist dann auch schon der Übergang zur Fouriertransformation mit der Ergänzung, dass die auch nicht mehr diskrete Frequenzen benötigt (was dann im zeitdiskreten Bereich bei der diskreten Fouriertransformation wieder zwangsweise eingeführt wird). Das hat zur Folge, dass die untersuchten Signal auch eine unendlich lange Periode haben dürfen, und das trifft auf eine Impulsantwort zu, das ist im Grunde die Definition.
Die kritischen Schlüsselwörter habe ich schon markiert, periodisch und unendlich. Wenn man eine Impulsantwort durch ein Fenster beschneidet, dann ist sie nicht mehr unendlich lang bzw. wird dann, in der zeitdiskreten Welt (DFT), scheinbar periodisch fortgesetzt. Der Zusammenhang zwischen Zeitbereich (Signal) und Bildbereich (Spektrum) ist immer noch eindeutig durch die Transformation gegeben, aber das Ergebnis ist nicht korrekt, weil ja keine unendlich lange Impulsantwort mehr vorliegt. Schlimmer noch, durch die periodische Fortsetzung in der zeitdiskreten Welt reduziert sich das ansonsten tolle Instrument wieder zurück zur einfachen Fourierreihe.
Wie kann man das verbessern?
Auftritt Laplace-Transformation. Es ist eigentlich nicht korrekt, aber ich betrachte die Laplace-Transformation gerne als Erweiterung der Fouriertransformation. Sie ändert zwei Dinge:
1) sie führt eine komplexe Frequenz ein, das heißt statt einer reinen Sinus-/Kosinunsschwingung kommt eine komplexe Frequenz zum Einsatz (in Mathematisch: f(s)=e^st, s=a+j*w, j=Wurzel(-1), bei der Fouriertransformation ist a=0)
2) sie ist ab t=0 definiert, im Gegensatz zur Fouriertransformation , die von -unendlich bis +unendlich definiert ist.
Komplexe Frequenz bedeutet, dass die Schwingungen entweder exponentiell gedämpft sind oder exponentiell ansteigen können. Gerade letzteres ist mir der Fouriertransformation nicht zu handhaben, das kann sie nicht.
Die Laplacetransformation erlaubt es außerdem, Filter - eigentlich Differentialgleichungen - in Form von Übertragungsfunktionen darzustellen. Die Fouriertransformation kann das nicht, obwohl häufig genug der durch die Fouriertransformation erzeugte Frequenzgang auch Übertragungsfunktion genannt wird (ich bekenne mich schuldig). Das ist meistens kein Problem, aber nicht korrekt.
Der große Nachteil der Laplace- gegenüber der Fouriertransformation ist, dass es keine schnelle Variante als FFT gibt. Also muss man einen anderen Weg gehen.
So eine Übertragungsfunktion eines Filters hat die allgemeine Form:
G(s)=(b0+b1*s+b2*s²+...)/(a0*a1*s+a2*s²+...)
Die Zähler- und Nennerpolynome lassen sich auch als Produkt ihrer (komplexen) Nullstellen beschreiben, eine Nullstelle im Nenner bedeutet, dass die Funktion da sehr groß werden kann (1 geteilt durch 0) und daher nennt man die Nullstellen des Nennerpolynoms Polstellen. Diese Darstellung erlaubt auch die Stabilitätsanalyse einer solchen Übertragungsfunktion, aber das ist hier nicht notwendig. Man kann die Übertragungsfunktion auch als Produkt von Teilübertragungsfunktionen darstellen, das wird bei IIR-Filter häufig angewendet, die meistens als sogenanntes Biquad vorliegen, welches eine Funktion 2. Ordnung sind, also
G(s)=(b0+b1*s+b2*s²)/(a0*a1*s+a2*s²) (<- Unterschied zu oben: das letzte + und die Punkte fehlen)
Ein Lautsprecher lässt sich durch Differentialgleichungen beschreiben, und daher hat er auch so eine Übertragungsfunktion. Ein normaler Tieftöner im geschlossene Gehäuse und unendlicher Schallwand ist zum Beispiel ein Hochpass 2. Ordnung
G1(s)=b12*s²/(a10+a11*s+a12*s²)
dazu kommt dann - vereinfacht - ein Tiefpass 2. Ordnung ab seiner Membranresonanz
G2(s)=b20/(a20+a21*s+a22*s²)
und dann noch ein Tiefpass 1. Ordnung wegen seiner Induktivität
G3(s)=b30/(a30+a30*s)
Die Gesamtübertragungsfunktion lautet also
G(s)*G1(s)*G2(s)*G3(s)
Ich schreibe die hier nicht auf, ist mir zu anstrengend.
Der entscheidende Punkt ist: das gesamte Chassis lässt sich durch 11 Parameter beschreiben, wenn es in einer Schallwand ist kommen nochmal 6 dazu (ein "Biquad", reicht erstmal), in Bassreflex nochmal 2. Also insgesamt 19. Vielleicht, durch irgendwelche Resonanzen, braucht man nochmal ein "Biquad" (+6), schon gelangt man zu 25 Parametern.
Die Idee ist jetzt:
1) man nimmt die gefensterte Impulsantwort
2) man definiert eine Übertragungsfunktion (mit ausreichend Parametern)
3) man passt die Parameter so lange an, bis die Impulsantwort des "Filters" der gefensterten Impulsantwort entspricht (genauer: man minimiert den quadratischen Fehler)
4) man lässt das "Filter" frei laufen und erhält eine unendliche Impulsantwort - allerdings ohne die Reflexionen! - und die wiederum kann man dann mit Hilfe der Fouriertransformation in einen Frequenzgang überführen.
Rein theoretisch müsste es dadurch möglich sein, eine echte Quasi-Freifeld-Messung zu erhalten. Rein praktisch ist es so, dass ich jetzt zwei Verfahren zum Lösen ausprobiert habe - Prony-Methode und eine nicht-lineare Optimierung mit Nelder-Mead - und beide noch nicht so funktionieren wie gehofft. Die Prony-Methode nähert sich manchmal schon ganz gut an, aber teilweise kommt totaler Blödsinn bei heraus, und Nelder-Mead läuft von der Lösung lieber davon als auf sie zu ;)
Aber ich arbeite dran, und das Ziel ist es eben, knapp 50 Jahre Lautsprechermesstechnik jetzt endliche mal auf den Müllhaufen der Geschichte zu werfen.
* Ich weiß nicht, wann die nach ihm umgestellt haben, und ob er die immer noch für die HH benutzt
Als Beispiel eine Annäherung mit Hilfe der Prony-Methode.
Legende:
Rot: Modell des Frequenzgangs eines 2-Wege-Lautsprechers, Trennung 2 khz LR4, untere Grenzfrequenz 40 Hz, unentzerrter Baffle Step. Zusätzlich hat der TT noch eine Membranresonanz bei 4 kHz (und darauffolgendem Abfall) spendiert bekommen und der Hochtöner 20 kHz obere Grenzfrequenz
Grün: eine einzelne Reflektion, 2,5 ms verzögert, Pegel 20% bezogen aufs Original, Tiefpass 1. Ordnung ab 1 kHz simuliert die Dämpfung der reflektierende Begrenzungsfläche
Blau: die grüne Kurve mit Gate bei 2.5 ms
Orange: Nachbildung mit einem Filter 10. Ordnung
Grau: Nachbildung mit einem Filter 11. Ordnung
Ab 12. Ordnung geht es schief, dann kommt Murks heraus.
72443
Edit:
Ich dachte gerade daran, dass 12. Ordnung insgesamt 24 Parameter sind, und wegen des Gates gerade einmal 19 Samples zur Verfügung. Also flugs die Abtastrate erhöht um doppelt so viele Samples zu bekommen, aber nein, das war es nicht.
Hi Jochen,
schön, dass du dich immer noch über Unzulänglichkeiten bei der Lautsprecherentwicklung ausreichend ärgern kannst, um diese anzugehen!
Erst mal zu meinem (inzwischen aufgrund von verschüttetem Wissen beschränktem) Verständnis: Du willst aus einer beschnittenen Impulsantwort mithilfe der Anpassung eines ausreichend parametrisierten Modells eine unbeschnittene Impulsantwort erzeugen und daraus dann einen Freifeldfrequanzgang ableiten, der unbeschränkt gültig ist?
Wenn das so ist, dann sagt mein physikalisches Verständnis (oder inzwischen eben mein Bauch), dass die Lösung (sollte es eine (oder mehrere) geben) für den Teil, der nicht in der Messung (beschnittene Impulsantwort) enthalten ist, nicht eindeutig ist bzw. sein kann.
Grüße
Chlang
Ich möchte mich auch kurz mitteilen in der Form, dass ich überaus interessiert zulese, ohne allerdings groß was beitragen zu können. Mit über 30 Jahren ist mein Physik-Kurs schon eine Weile her und mein Berufsweg ging in eine andere Richtung....:o
Mein Klappstuhl ist hier aber, denke ich, gut untergebracht. :cool:
Viele Grüße,
Michael, der sich wahrscheinlich, wie viele hobbymäßigen Entwickler leider mit ziemlich rudimentären Messbeingungen rumschlagen muss.
Wenn das so ist, dann sagt mein physikalisches Verständnis (oder inzwischen eben mein Bauch), dass die Lösung (sollte es eine (oder mehrere) geben) für den Teil, der nicht in der Messung (beschnittene Impulsantwort) enthalten ist, nicht eindeutig ist bzw. sein kann.
Vollkommen richtig. Und auch schon der unbeschnittene Teil ist, je nach Modell und Methode, nicht exakt. Das muss er aber auch gar bzw. nicht immer. Mich interessiert natürlich wie sehr das nachher vom echten Frequenzgang abweicht, und das darf auch nicht zu groß sein. Es müsste so sein, dass man damit eine Abstimmung machen kann. Es wäre allerdings auch schon etwas gewonnen, wenn man mit dem gültigen Frequenzbereich deutlich weiter nach unten kommt, also das Limit durch die Fensterung überschreitet.
Was nach meinem Verständnis geht (und was ich so aus deiner Beschreibung oben rauslese), ist ein Modell zu basteln, das Treiber und Gehäuse unterhalb des gemessenen Frequenzgangs beschreibt und daraus den Frequenzgang zu tiefen Frequenzen hin herleitet. Im Prinzip also eine Simulation des Tieftonfrequenzgangs der anfügt wird. (Habe ich im übrigen auch bei der Box in meinem Benutzerbild so gemacht (VituixCAD sei Dank), weil ich nicht wusste, wie ich die 8 (!) räumlich weit verteilten Bass-Chassis sonst vernünftig erfassen hätte sollen).
Solch ein Verfahren kann sicher relativ gut funktionieren, hat mit Messen dann aber nichts mehr zu tun.
Für unbeabsichtigte und unbemerkte Fehlabstimmungen (falsche Datengrundlage für das Modell) oder aktiv entzerrte Boxen liefert solch ein Verfahren dann einen fehllerhaften Frequenzgang.
Ich will dir das jetzt auch sicher nicht ausreden, sondern eher verstehen, was du vor hast und freue mich, wenn's hier weiter geht. :prost:
Grüße
Chlang
Hallo zusammen,
den Ansatz finde ich tatsächlich sehr interessant und er könnte helfen die Aussagen der Messungen zu erweitern.
Die Punkte wurden ja schon genannt, also wie ich das verstanden habe: Im Prinzip eine Modellierung mit Extrapolation - keine Simulation.
Mal ganz einfach gefragt: entspräche das einer nichtlinearen Regression mit Anpassung auf dem bekannten Teil und Extrapolation auf den unbekannten?
Ich denke, dass mit 'Vorwissen', also Kenntnis eines erwarteten Verhaltens durchaus hilfreich ist um die Gültigkeit der Extrapolation zu bestätigen. Da käme dann Simulation ins Spiel...
Aber mir ist noch ein anderer Gedanke gekommen - noch sehr unrein und nicht zu Ende gedacht:
Erstmal vorweg, die Erklärung der Fourier- und Laplacetransformationen finde ich sehr schön und gut gelungen!
Wenn man für die Fouriertransformation im Integral das Vorzeichen der beiden Terme ändert, landet man bei der (Auto) Korrelation. Also einer anderen Abbildung vom Zeit- in den Bildbereich - ein anderer Bildbereich, der einem den Zusammenhang zwischen den einzelnen Werten aufzeigt. Wenn man die Autokorrelation über die Impulsantwort laufen lässt findet man die Reflexionen.
Soweit so gut und langweilig.
Aber lässt sich das nicht geschickt nutzen, um über Invertierung des Teilstücks die Reflexion zu reduzieren? Geht das schon in Richtung Echokompensation?
Sorry, wollte ich nur kurz loswerden. Ich will nicht von dem genannten Modellierungsverfahren ablenken...
Viele Grüße
André
Guten Morgen,
ganz allgemein ist es eine nicht-lineare Optimierung, und daher wäre es schön, wenn man einen geeigneten Startpunkt hätte, und dazu braucht es Vorwissen. Das finde ich jetzt nicht so schlimm, als Entwickler weiß man ja meist, was man da vor sich hat, und das könnte man für die Faulen auch über Eingabedialoge verinfachen. Da gibt man dann die wichtigsten Parameter ein, wie zB Gehäusetyp (CB, BR oä), untere Grenzfrequenz (ungefähr), geschätzte Baffle Step Frequenz usw. und das Modell wird dann erstellt. Das wird dann über eines der gängigen Verfahren (zB Nelder-Mead) optimiert.
Das schöne an der Prony-Methode ist, dass sie durch clevere Ausnutzung der Eigenschaften der z-Transformation* das nicht-lineare Gleichungssystem in ein lineares überführt, und das benötigt dann kein für die Lösung Vorwissen mehr.
Die Lösung kann entweder exakt sein - dann hat man genauso viele Parameter wie Eingangswerte - oder angenähert, dann hat man weniger Parameter als Eingangswerte. Das ist dann typische lineare Regression und die soll bei der Methode stabiler sein.
Was sie bei mir bisher nicht ist, wenn ich zu viele Parameter nehme wird sie instabil. Woran das liegt, kann ich bisher nicht sagen. Was ich aber sehe, wenn ich die gemessene (bzw modellierte, s.o.) mit der durch die Regression enstandenen Impulsantwort vergleiche, ist ein sehr geringer Unterschied, man könnte auch sagen: so gut wie nicht vorhanden. Aber auch "hinter" der Reflexion sind minimale Unterschiede, so in der Größenordnung 1e-5 bis 1e-4, und auch wenn die klein sind, über die Länge der Impulsantwort gesehen summiert sich das und ich komme nicht viel weiter nach unten als mit einfacher Fensterung. Ich denke, ich werde mehr Parameter benötigen, und daran scheitert es jetzt noch.
Echokompensation: ja, da denke ich auch drüber nach. Ein möglicher Weg: den ungestörten Teil der Impulsantwort nehmen und durch ein Filter schieben dessen Parameter so optimiert sind, dass die "Reflexion" herauskommt. Damit kann man die dann rausrechnen. Aber auch da kommt eben wieder eine Optimierung zum Einsatz.
* falls ich die noch nicht erwähnt hatte: das ist die zeitdiskrete Entsprechung der Laplace-Transformation
Guten Morgen,
* falls ich die noch nicht erwähnt hatte: das ist die zeitdiskrete Entsprechung der Laplace-Transformation
:D Jep, und da kommen dann die ganzen zeitdiskreten Phänomäne ins Spiel... Signaltheorie mach schon Spass...
Schade, dass ich nicht mehr Zeit habe. Es juck in den Fingern mit MATLAB da weiter zu schauen.
Bzgl. der Fit Methoden: hast Du mal in Richtung von Verfahren aus der Stochastik geschaut? Ich hatte für die Erweiterung empirischer Wahrscheinlichkeitsverteilungen mit Bootstrappingverfahren gute Erfahrungen gemacht. Das ließe sich hier evtl. anwenden, in dem Sinne, dass der wahrscheinlichste weitere Verlauf bestimmt werden kann.
Bzgl. Echokompensation des gestörten Teils über Filter: daran hatte ich schon gedacht. Ich hätte hier Dämpfungskoeffizienten frequenzabhängig angesetzt. Wenn man weiß, was die Reflexion hervorruft, kennt u.U. die Materialparameter. Da habe ich aber nicht weitergemacht.
Mit der Autokorrelation hätte ich eben ein 'Korrelationsfilter' gebaut. In dem Teil, in dem die Korrelation ~1 ist, wird sie invers angewandt und fadet dann im weiteren Verlauf aus, so dass die 'reale' Impulsantwort des DUT übrig bleibt.
Aber damit habe ich noch nicht mal angefangen in MATLAB rumzuspielen. Der Leidensdruck ist einfach nicht groß genug.
VG André
Ich glaube, so kompliziert muss es gar nicht werden, denn:
72523
Blau: Original
Grün: 2,5 ms Fenster
Rot: Rekonstruktion von Blau aus Grün mit Filterordnung 13
Warum es jetzt funktioniert und vorher nicht: ich hatte an einer Stelle ganz stumpf einen falschen Index eingesetzt :o
Höhere Ordnungen wollen allerdings immer noch nicht, nur wenn sich das so mit echten Messdaten umsetzen lässt wäre jetzt schon viel gewonnen.
Ach ja: die Berechnung dauert nicht lang, da dürfte es mehr Arbeit machen das Fenster richtig zu setzen.
quecksel
28.11.2023, 15:54
Wahnsinn :eek:
josh_cpct
28.11.2023, 16:35
Hallo
Ich verstehe das Eingangs beschriebene Problem der Fensterung und dem Auflösungsverlust.
Aber bevor man darüber diskutiert ob man das anders auswerten könnte, mathematisch, möchte ich mal fragen ob das überhaupt in der Praxis möglich ist. Praxis wäre hier ein Subwoofer im normalen Wohnzimmer.
Wenn ich einen Direktschall, und anschließend nach einen gewissen Intervall einen klar getrennten Diffusschall habe, OK. Wir reden aber auch vom Bass hier. Und wenn sich eine 7 Meter Welle im 50 Quadratmeter Raum ausdehnt, wo Grenzflächen wie Boden bereits nach 0.5 Metern, Wand in 2 Meter, und Decke in 3 Meter kommen, dann gibt es doch garkeine Trennung zwischen Direkt- und Diffusschall.
Wie kann da die Analyse Apfel und Apfel auseinanderhalten?
Gruß
Josh
Wahnsinn :eek:
Schön wäre jetzt, wenn das mit realen Messdaten auch funktionieren würde, was es nicht tut und ich habe nicht den geringsten Schimmer warum. Na gut, einen kleinen Schimmer habe ich, nämlich das unvermeidliche Delay am Anfang. Es könnte sein, dass mir das da übel mit reinspielt.
Ad Subwoofer: ich habe es mal gerade ausprobiert, 20 Hz untere Grenzfrequenz CB, 80 Hz Tiefpass 2. Ordnung, 2,5 ms Impulsantwort, wird einwandfrei rekonstruiert. Und auch bei dem wird natürlich jede Reflexion eine Verzögerung haben, nur wird die in der Impulsantwort vielleicht nicht ganz so klar sichtbar sein.
Guten Morgen,
ein Grund, warum es mit echten Messdaten nicht funktioniert ist, dass mir da von irgendwoher ein Differenzenglied mit hereinfliegt. Das war mir vorher durch einen dummen Programmierfehler nicht aufgefallen, der mir das bei synthetischen (unverrauschten, kein DC-Offset) Daten korrigiert hatte, aber bei echten Messdaten katastrophal wirkte.
Wenn ich jetzt die aus den Filterkoeffizienten ermittelte Impulsantwort integriere bin ich schon deutlich näher dran, aber noch nicht da wo ich hin will. Das Delay war es nicht, aber ich habe in dem Zuge einen cleveren Algorithmus entwickelt, der mit das Gate ziemlich optimal setzt.
Moin,
das....
Ich glaube, so kompliziert muss es gar nicht werden, denn:
https://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=72523&d=1701081432&thumb=1 (https://www.diy-hifi-forum.eu/forum/attachment.php?attachmentid=72523&d=1701081432)
Blau: Original
Grün: 2,5 ms Fenster
Rot: Rekonstruktion von Blau aus Grün mit Filterordnung 13
...ist wirklich sehr cool.
Wenn ich jetzt die aus den Filterkoeffizienten ermittelte Impulsantwort integriere bin ich schon deutlich näher dran, aber noch nicht da wo ich hin will. Das Delay war es nicht, aber ich habe in dem Zuge einen cleveren Algorithmus entwickelt, der mit das Gate ziemlich optimal setzt.
Jetzt bin ich natürlich neugierig: Wie nah dran bist Du denn inzwischen?
Grüße,
Christoph
Zu weit weg:
72546
Der Pegelunterschied juckt mich (noch) nicht, das ist eine importierte Impulsantwort und ich glaube ich habe einfach unterschiedlich eingestellte Skalierung (sollte sich eigentlich nicht auswirken, aber naja). Nur das es kein bisschen besser als mit gefenster ist, das priemelt mich ganz schön an. Vielleicht sind da einfach zu viele Details welche die verfügbaren Pol- und Nullstellen auffressen. Deswegen denke ich schon über ein mehrstufiges Verfahren nach, bei dem ich die IR in verschiedene Frequenzbänder aufteile, die Approximation durchführe und sie dann wieder zusammenfüge.
Edit: so sehen nach angepasster Skalierung übrigens die Impulsantworten aus:
72548
Ich habe extra ein wenig rausgezoomt, um auch die Reflexion der orignalen IR erkennen zu können.
rapherent
01.12.2023, 00:37
Nur das es kein bisschen besser als mit gefenster ist, das priemelt mich ganz schön an.
In der Sprungantwort eines Lautsprechers in einem Raum hast du immer nach einer gewissen Zeit zwei komplexe Informationen überlagert in einer Messung.
Wie soll dir das angewandte Verfahren mit G(s) diese trennen können? Woher soll die Approximation wissen, an was sie approximieren soll? Wird sie, um die Übertragungsgunktion zu tieffrequenten Frequenzen angeben zu können, nicht immer auch an den Teil der Messung approximieren, in dem der Raum steckt?
Aus meiner Sicht beweist du gerade, dass eine FFT bei dem Bandpass Lautsprecher (der keine Rechteckimpulse kann und damit die Fourierreihe auch nicht unendlich sein muss, um seinen Amplitudenfrequenzgang darzustellen) dasselbe Ergebnis hat wie G(s), wenn diese nur lang genug ist.
Gänginge Praxis ist es dynamische Systeme (z. B. Maschinenenfundamente) mit einer Übertragungsfunktion G(s) zu berechnen und mit einer Schwingungsmessung mit FFT zu prüfen; was meinst du was dabei raus kommt?
Beste Grüße
Wir trennen doch schon immer Lautsprecher und Raum, ganz simpel durch das Abschneiden der zeitlich verzögerten Raumantwort. Das schöne an der Impulsantwort eines Lautsprechers ist dann noch, dass sie sehr kompakt ist, soll heißen: in dem Teil vor der Reflexion steckt die meiste Information drin. Dummerweise kann die FFT die aber nicht nutzen, weil sie eigentlich das falsche Instrument ist, denn sie nutzt die falschen Basisfunktionen (Sinus/Kosinus), während ein Lautsprecher (und eigentlich auch jedes andere System) viel besser durch gedämpfte Exponentialschwingungen beschreiben lässt.
Wenn ich eine Maschine in einen Raum stelle und sie konstant betreibe, dann kann die FFT die richtige Methode sein, denn da hat es ja oft eine periodische Anregung und man möchte ja auch das Verhalten inklusive Raum bekommen.
Und so kann das dann Aussehen, wenn eine abgeschnittene Impulsantwort angenähert wird. Praktisch nicht zu unterscheiden bis zur Reflexion:
72561
Das gehört zu den Frequenzgängen in Beitrag 10 (https://www.diy-hifi-forum.eu/forum/showthread.php?23480-Jenseits-von-Fourier&p=343854&viewfull=1#post343854). Es ist also prinzipiell möglich, aber es scheitert noch an der Realität.
rapherent
01.12.2023, 16:12
Wir trennen doch schon immer Lautsprecher und Raum, ganz simpel durch das Abschneiden der zeitlich verzögerten Raumantwort.
Ja, aber dann fehlt die Information über einen Teil des Amplitudenfrequenzgangs, weil die längeren Wellenlängen tieferer Frequenzen nicht vollständig abgebildet sind. Lass es von mir aus 90° oder 180° Grad sein; das reicht nicht, um daraus eine Amplitude zu bilden, weder nach FFT noch nach G(s) Approximation.
Wenn ich eine Maschine in einen Raum stelle und sie konstant betreibe, dann kann die FFT die richtige Methode sein, denn da hat es ja oft eine periodische Anregung und man möchte ja auch das Verhalten inklusive Raum bekommen.
Es gibt keinen Unterschied zwischen einem Lautsprecher und einer Maschine. Reale Massenschwinger können kein Rechteck, außer sie besitzen keine Masse und/oder die Kraft ist unendlich. Ein Lautspecher ist ein Bandpass und der besitzt nunmal sein Ein-/Ausschwingverhalten, unabhängig von der Anregung.
Nein, ich möchte auch bei einer realen Maschinen nicht den Raum, sondern in den meisten Fällen die Dämmung (Entkopplung) vom Boden. Bei Gebäuden soll z. B. kein/ein verminderter Körperschall eingeleitet werden. Da aber in den meisten Fällen m(Gebäude) >> m(Maschine), ist der Einfluss durch das Gebäude auf die Messung deutlich geringer, als bei einem Lautsprecher im Raum.
Und so kann das dann Aussehen, wenn eine abgeschnittene Impulsantwort angenähert wird. Praktisch nicht zu unterscheiden bis zur Reflexion:
Natürlich sind die beiden nicht zu unterscheiden, weil das Ergebnis (Amplitude und Phase) bis zu diesem Zeitpunkt der Messung (gefenstert) gleich ist. Du wirst auch das Ergebnis inkl. der Raumantwort nachstellen können. Bringt dir nur nichts, weil du dann immer noch nicht Lautsprecher von Raum trennen kannst; es fehlt schlicht die Information, wer was liefert.
Eine Variante aus meiner Sicht ist, den Amplitudenfrequenzgang via Approximation und unterer Grenzfrequenz nach Fensterung zu ermitteln und die Frequenzen unterhalb anhand Thiele-Small (was auch in eine Übertragungsfunktion überführt werden kann) nachzubilden. Aber dafür fehlt mir gerade der Sinn, weil gleiches Ergebnis zu erwarten ist, wie mit FFT (gefenstert) und G(s) für Frequenzen niedriger FFT (gefenstert).
Aus meiner Sicht ist eine weitere mögliche Variante, einen Lautsprecher (Normal) in deinen Raum zu stellen, von dem die Übertragungsfunktion aus einem schalltoten Raum (RAR) oder Außenmessung bekannt ist, und die Impulsantwort aufzunehmen. Jetzt kannst du die Raumimpulsantwort an deiner Messposition per Rückrechnung (Impuls mit Raum - Impuls ohne Raum = Impuls von Raum) ermitteln. Als nächstes misst du deinen zu messenden Lautsprecher (Proband) im Raum. Jetzt kannst du die ermittelte Impulsantwort des Raums (Impuls von Raum) abziehen und bekommst die reine Impulsantwort deines Lautsprechers (Proband).
Vorraussetzungen:
- Kugelförmige oder exakt gleiche Abstrahlung beider Lautsprecher im betrachteten Frequenzbereich.
- Beide Messungen (im RAR und im Raum) werden mit dem gleichen Messequipment und denselben Abständen gemacht.
- Die Messungen im Raum werden mit gleichem Messequipment und exakt gleichen Positionen gemacht, einmal mit Normal und einmal mit Proband.
Durch die möglicherweise unterschiedlichen akustischen Eigenschaften von Normal und Proband kommt es zu unterschieldichen Wechselwirkungen zwischen Raum und Lautsprecher; entsprechend ist auch hier von einem Fehler in der Raumimpulsantwort und späteren Ergebnis des Probanden auszugehen.
Beste Grüße
Ja, aber dann fehlt die Information über einen Teil des Amplitudenfrequenzgangs, weil die längeren Wellenlängen tieferer Frequenzen nicht vollständig abgebildet sind. Lass es von mir aus 90° oder 180° Grad sein; das reicht nicht, um daraus eine Amplitude zu bilden, weder nach FFT noch nach G(s) Approximation.
Du denkst in Maßstäben der Fouriertransformation. Denke in Maßstäben von Filterkoeffizienten. Ich passe Filterkoeffizienten eines IIR-Filters, also eines Filters mit Pol- und Nullstellen, an, bis die Impulsantwort des Filters dem gefensterten Teil der Impulsantwort des Lautsprechers entspricht. Der Lautsprecher wird dabei auch als ein IIR-Filter angenommen (wegen Fettdruck siehe unten) und die Idee ist, dass sich dessen Koeffizienten auch schon in der gefenstern Impulsantwort wiederspiegeln. Müssen sie auch, so hoch ist die Filterordnung nicht. Und dann kann ich die auch entsprechend approximieren. Und dann kommt eben so etwas dabei heraus:
72566
blau: Original
rot: approximiert
Die Kurve zeigt den Verlauf kurz vor und nach der eintreffenden Reflexion, der blaue Cursor steht direkt davor (die entsprechende Kurve habe ich aber ausgeblendet für eine bessere Skalierung.
Edit weil ich jetzt die Erleuchtung habe: wenn ich einen Mehrweger messe dann habe ich auch in realen Messungen einen Laufzeitunterschied zwischen den einzelnen Chassis, das ist dann kein reines IIR-Filter mehr. Und wenn ich in meinem idealisierten LS-Modell dem Tieftöner ein kleines Delay verpasse dann fällt die Approximation derbe auf die Nase.
Dieses Wochenende werde ich nicht zum Messen komme, aber das werde ich nächste Woche mal nachholen.
rapherent
03.12.2023, 01:07
Du denkst in Maßstäben der Fouriertransformation. Denke in Maßstäben von Filterkoeffizienten.
Ich denke in Regelungstechnik und Maschinendynamik, darin ist beides enthalten:)
Ich passe Filterkoeffizienten eines IIR-Filters, also eines Filters mit Pol- und Nullstellen, an, bis die Impulsantwort des Filters dem gefensterten Teil der Impulsantwort des Lautsprechers entspricht. Der Lautsprecher wird dabei auch als ein IIR-Filter angenommen (wegen Fettdruck siehe unten) und die Idee ist, dass sich dessen Koeffizienten auch schon in der gefenstern Impulsantwort wiederspiegeln.
Die Koeffizienten finden sich auch in einem sehr kurzen Teil der Impulsantwort, nur eben je nach Frequenz und Filter meist sehr gut (hochfrequent) und nicht so gut (tieffrequent) beschrieben, abhängig von dem zur Verfügung stehenden Zeitabschnitt.
Müssen sie auch, so hoch ist die Filterordnung nicht. Und dann kann ich die auch entsprechend approximieren.
Bitte bedenke, dass in einer Messung mehr als ein Hochpass (Tiefpass) des Lautsprechers steckt; dazu gehört nämlich auch der Hochpass (und auch Tiefpass) des Mikrofons, des Mikrofon-Vorverstärkers, der Soundkarte, der Leistungsendstufe, etc. Die sieht man üblicherweise nicht im Amplitudenfrequenzgang, weil der Pegel durch den Hochpass (Tiefpass) des Lautsprechers zu sehr im Pegel runtergezogen wird und im Rauschen verschwindet, in dem Amplituden- und Phasenfrequenzgang sind diese aber sehr wohl enthalten und wirken sich entsprechend aus.
Andere am Lautsprecher angewendete IIR Filter haben die gleich Wirkung; hat der Lautsprecher einen Hochpass bei 100 Hz und ich setze einen zusätzlichen bei 300 Hz, so werden sich die Phasen addieren.
Nur bei der Betrachtung eines Amplitudenfrequenzgangs lässt sich häufig dazu keine Aussage machen; ich hatte dazu vor längerem mal ein Thread gestartet:
https://www.diy-hifi-forum.eu/forum/showthread.php?21327-Arta-Amplituden-und-Phasenkorrektur
Auch diese Filter müssten sich in der Approximation wiederfinden.
Edit weil ich jetzt die Erleuchtung habe: wenn ich einen Mehrweger messe dann habe ich auch in realen Messungen einen Laufzeitunterschied zwischen den einzelnen Chassis, das ist dann kein reines IIR-Filter mehr. Und wenn ich in meinem idealisierten LS-Modell dem Tieftöner ein kleines Delay verpasse dann fällt die Approximation derbe auf die Nase.
Dieses Wochenende werde ich nicht zum Messen komme, aber das werde ich nächste Woche mal nachholen.
Die Laufzeitunterschiede sind Phasenverschiebungen bzw. nicht genau überlagerte Phasenfrequenzgänge in der komplexen Addition der Signale eines z. B. Tieftöners mit Weiche und Hochtöners mit Weiche.
Hätten beide eine konstante Phase, dann addieren sie sich perfekt in Amplitude und Phase (zumindest in Bezug auf eine Abstrahlrichtung) und besitzen auch keine Laufzeitunterschiede mehr. Entsprechend sieht dann auch die Sprungantwort aus.
Diese Trennung von Amplitude zu Phase lässt sich mit FIR herstellen.
Auch ein Delay ist als Phasenaddition abbildbar; der Betrag der Phasenänderung ist dabei natürlich nicht konstant und steigt mit höheren Frequenzen; beeinflusst aber die Amplitude nicht.
Entsprechend ist ein reines Delay mit üblichen Weichen nicht Teil eines Mehrwegelautsprechers und aus meiner Sicht kann das System weiterhin mit IIR Filtern beschrieben werden.
Bitte nicht falsch verstehen; ich hoffe, deine Arbeit führt zu was. Vielleicht helfen meine Gedanken dabei, einem Ergebnis (wie auch immer das aussehen mag) auf die Spur zu kommen.
Beste Grüße
wenn ich einen Mehrweger messe dann habe ich auch in realen Messungen einen Laufzeitunterschied zwischen den einzelnen Chassis, das ist dann kein reines IIR-Filter mehr.
Hier habe ich mich geirrt, es bleibt weiterhin ein IIR-Filter. (Alle, die von der z-Transformation nichts verstehen oder nicht von ihr belästigt werden wollen bitte den folgenden Teil überspringen) Wenn man vor ein normales IIR-Filter eine Verzögerungsglied von N samples setzt, dann muss die Übertragungsfunktion mit z^-N (Achtung! z-Transformation) multipliziert werden. Das wirkt sich dann auf das Zählerpolynom ungefähr so aus:
z^-N*(b0+b1*z^-1+...+bk*z^-k) = b0*z^-N+b1*z^-(N+1)+...+bk*z^-(N+k)
Das ist an sich erstmal nur eine mathematische Befindlichkeit, in der Realität der Prony-Methode bedeutet es allerdings, dass die untersten N Parameter zu 0 werden und die obersten N Parameter einfach rausfallen, weil ich nur eine endliche Anzahl dieser Parameter habe. Das Zählerpolynom des nachgebildeten Filters sieht dann also so aus:
0+0*z^-1+...+0*z^-(N-1)+b0*b0*z^-N+b1*z^-(N+1)+...+b(k-N)*z^-(k-N)
Oder in kurz: ich verliere N Parameter bzw. Freiheitsgrade in der Approximation. Und das macht sich natürlich bemerkbar, wenn das Gate zusätzlich noch so kurz ist, dass grundsätzlich nur wenige Parameter möglich sind. Und auch die Delays von den einzelnen Wegen eines Lautsprechers wirken sich entsprechend aus. Mir ist, ehrlich gesagt, noch nicht ganz klar wie genau das zusammenhängt. Und daher auch nicht, wie ich das lösen kann.
(Ab hier darf wieder weitergelesen werden).
Dafür habe ich jetzt das Stabilitätsproblem "gelöst". Ist eigentlich gelogen, ich umgehe es nur geschickt. Mir ist wieder eingefallen, dass man ja aus den Filterparametern eines Filters ziemlich einfach (Einsetzen der komplexen Frequenz) den Frequenzgang direkt ablesen kann. Ich erzeuge also nicht mehr Impulsantwort des Filters und daraus den Frequenzgang, weil das unschöne Zwischenwerte annehmen kann (erzeugen dann eine Fließkommaausnahme). Ich habe jetzt also die maximale Anzahl von Freiheitsgraden zur Verfügung.
Hmm, also ich habe jetzt nochmal mit aufgetrennten Wegen gemessen, das Ergebnis ist immer noch Murks. Also entweder ist es das nicht, oder ich habe da noch ein weiteres, mir bisher unbekanntes Problem. Denn theoretisch geht es ja, habe ich gezeigt, die Literatur ist da auch sehr klar.
Um dem auf die Schliche zu kommen, kann mir mal jemand ein paar Impulsantworten hier anhängen? Textformat, irgendwo müsste die Abtastrate hinterlegt sein. Gefenstert brauchen sie nicht zu sein.
Hallo Jochen,
was für Impulsantworten brauchst Du? Also Mehrweger, Messabstand etc...?
Grüße,
Christoph
Überhaupt erstmal welche, aber Mehrweger bevorzugt. Messestand ist egal, Nahfeld wäre auch Ok
OK, ich schaue eben mal nach was auf dem Rechner liegt....
Habe Probleme mit der Dateigröße - der txt-file ist zu groß (>3mb), es sind nur 512kb erlaubt. Schaue mal, ob ich die kleiner kriege....72617
Jetzt als zip-Datei. Export von Arta. Funktioniert das so?
Danke. Ich musste erst den Import-Filter fixen, aber jetzt geht es. Nur: gleiches Problem wie bei mir, mit einem kurzen Fenster kommt nicht viel gutes heraus, mit einem langen (so ab 10 ms) wird die Anpassung besser. Aber dazu brauche ich den Klimbim nicht, es geht mir ja darum, mit möglichst kurzen Fenstern auszukommen, um Reflexionen auszublenden.
Die Impulsantwort hattest du einkanalig oder zweikanalig aufgenommen?
Edit: noch ein wenig mit dem "Modell-Lautsprecher" gespielt, hauptsächlich Filter eingebaut. Damit kann ich dann den approximierten IIR-Filter überladen, wenn die Impulsantwort zu kurz ist, und die Näherung wird immer schlechter. Was ihm aber am Ende richtig das Genick bricht sind weitere Reflexionen, zB an den Gehäusekanten. Das muss aber nicht allgemeingültig sein.
Mal sehen, wie ich da rauskomme.
Moin,
ich messe üblicherweise zweikanalig. Kann aber nochmal kontrollieren, dass ich Dir nicht aus Versehen ne Q&D Klirrmessung geschickt habe....
Melde mich nochmal.
Grüße,
Christoph
Edit: Ja, das ist eine Zweikanalmessung. Brauchst Du aktuell noch weitere Messungen?
Ich habe jetzt nochmal etliche Literatur gelesen, ua auch Paper von so Größen wie Earl Geddes, Sean Olive und John Vanderkooy, die sich alle schon damit beschäftigt haben. Die letzten beiden greifen übrigens auf eine extrem clevere Idee von Laurie Fincham - ja, DEM Laurie Fincham - zurück um die Erkennung der Pol- und Nullstellen im Tiefton zu verbessern. Im Paper von Vanderkooy kommt noch eine weitere extrem clevere Idee hinzu die dafür sorgt, dass auch ohne irgendeine hochmathematische Analyse eine Verbesserung erzielt werden kann, also mit ganz herrkömmlicher Fensterung. Das alles erfordert aber a) Vorwissen über das Messobjekt und b) bei mir noch einen weiteren Verarbeitungsschritt, den ich bisher wegen Aufwand weggelassen habe. Die Paper sind leider nicht frei verfügbar, liegen aber in der AES E-library.
Vorwissen anwenden wäre für mich Ok, und den Schritt b) werde ich auch noch gehen, ich hatte aber noch eine weitere Idee. Und zwar könnte man den Freifeldfrequenzgang auch aus dem Burst Decay ableiten. Im einfachsten Fall - keine Reflexionen - nimmt man einfach den Peak der Hüllkurve der Antwort auf den Burst, sobald Reflexionen vorliegen muss man aus der Hüllkurve vor der Reflexion ein paar Werte entnehmen und darüber annähern. Ich hatte das gestern Abend einfach mal schnell zusammengehackt, ohne die Annäherung also nur über den Maximalwert. Es ging mir nur um den generellen Ablauf, aber das Ergebnis ist trotzdem interessant:
72663
Was sehen wir da? Blau ist der Frequenzgang aus der ungegateten (bzw 100 ms lang) Impulsantwort, geglättet mit 1/6 Oktave, rot der Frequenzgang aus der Burstantwort. Der Burst ist 5 Perioden lang und mit einem Blackman-Fenster verformt. Das ist nicht ideal, war für mich jetzt aber am einfachsten. 5 Perioden bedeutet, dass nach 2,5 Perioden das Maximum erreicht wird. Die erste Reflexion trifft in der Messung nach ca 2 ms ein, d.h. ab ca. 1250 Hz entspricht die Kurve dem Freifeldfrequenzgang. Der ist natürlich stark geglättet, denn so einen Burst kann man auch als Bandpassfilter auffassen und daher spiegelt sich in der Antwort ein Frequenzband und nicht eine einzelne Frequenz wieder. Interessant finde dich allerdings auch den Bereich unterhalb von 1 kHz, der so ziemlich alle durch die Reflexionen verursachten Welligkeiten ziemlich gut wegbügelt. Woran das genau liegt kann ich nicht sagen, aber ich würde es erstmal nicht ausschließlich auf die oben erwähnte Glättung schieben.
So, und jetzt die eigentliche Idee: niemand hindert mich, weder die Auswertungsmethode - Peak oder Approximation - noch die Burstdauer konstant zu halten. Ich könnte zB im Tiefton mit möglichst kurzen Bursts arbeiten, um eine höhere zeitliche Auflösung zu erhalten (auf Kosten der Frequenzauflösung) und im Hochtonbereich gerade umgekehrt. Oder ich werte im Tiefton noch den Peak- oder die Fläche unter dem Burst aus, und dann ab ca 200 Hz über Approximation. Der Gedanke dahinter ist, mehr dem Gehör Rechnung zu tragen. Es bleibt also spannend.
Hallo Jochen,
sehr spannend was du hier zeigst. Die Liste der Leute, die sich an dem Thema versucht haben ist meines Erachtens noch länger, neben den erwähnten Größen aus der University of Waterloo auch z.B Juha Backman und andere, weniger bekannte Namen.
Nach meinem Kenntnisstand ist davon allerdings bislang nichts in der alltäglichen Messpraxis angekommen.
Vor einigen Jahren habe ich mal versucht Ivo Mateljan bei einem Treffen in Split zu überzeugen den Ansatz von Vanderkooy/Lipshitz in ARTA zu integrieren, bin aber böse abgeblitzt. Er sagte mir, dass all diese Verfahren viel zu instabil sind um seriöse Ergebnisse liefern zu können.
Lass dich nicht entmutigen.
Gruß
Heinrich
Hallo Heinrich,
der Name Backman tauchte auch irgendwo auf. Und Ivo hat auch irgendwie recht: es ist alles nicht so ganz stabil und zuverlässig, zumindest das was ich bisher gemacht habe. Die FFT funktioniert dagegen immer. Ich sehe das allerdings mehr aus Entwicklersicht: wenn ich damit auf, sagen wir, 100 bis 200 Hz unter Wohnraumbedingungen komme, dann habe ich schon viel gewonnen. Darunter kann man mMn mit dem Nahfeld gut substituieren.
Und wenn man mit Vorwissen noch weiter runter kommt, dann wäre mir das auch recht, denn ich weiß ja was ich baue. Und dann gilt eben: CB -> 1 doppelte Nullstelle bei DC, BR -> 2 doppelte Nullstellen bei DC. Und in beiden Fällen kann ich meistens auch das Modell direkt angeben. Wäre für mich Ok, es ist dann halt keine absolute Blackbox (das wäre natürlich die absolute Krönung, wenn das klappt).
Ich möchte auch stellvertretend für alle stillen Mitleser (still weil wahrscheinlich so ahnungslos wie ich) mitteilen dass ich diesen Thread aufmerksam mitverfolge in der Hoffnung, Messungen anfertigen zu können, die unter reflexionsfreien Bedingungen so tief hinabreichen, wie es nur irgendwie geht.
....außer, ich habe da was missverstanden....
Viele Grüße,
Michael
vBulletin® v4.2.5, Copyright ©2000-2024, Jelsoft Enterprises Ltd.