Kostenloses, freies und quelloffenes Lautsprecher-Messprogramm
Einklappen
X
-
Ok, werde ich anschauen.
Jein. Die Bestimmung der Impulsantwort ist einfach, das hat aber mit der Farina-Idee wenig zu tun, und benötigt auch nicht unbedingt einen Sinus-Sweep. Man kann dazu jedes Signal mit einem genügend breitbandigen Frequenzspektrum verwenden (Dirac, MLS, white/pink/red noise, etc.). Die Impulsantwort ergibt sich aus der Dekonvolution des gemessenen Signals und des verwendeten Testsignals. Aber darum geht es hier nicht.
Der Trick an der Farina-Methode mit dem 'exponentiellen' Sinus-Sweep ist, dass bei der Dekonvolution des gemessenen Signals mit dem Testsignal (eben dem Sinus-Sweep) die harmonischen Verzerrungsprodukte als Impulse vor der eigentlichen Impulsantwort erscheinen, was durch die zeitlichen Verteilung der (instantanen) Frequenz im Sinus-Sweep begründet ist. Wenn ich die Farina Publikationen richtig verstehe, soll jeder dieser Impulse der "Imuplsantwort" einer harmonischen Komponente entsprechen.
In meinen Experimenten erscheinen diese Impulse zwar, aber sie entsprechen nicht wie erwartet den Verzerrungskomponenten. Wenn ich ein synthetisches "Messsignal" erzeuge, das nur zweite harmonische Verzerrungen aufweist (ober keine Verzerrungen höherer Ordnung), dann dürfte neben dem Hauptimpuls nur ein einziger "Verzerrungs-Impuls" erscheinen, der eben den Verzerrungen zweiter Ordnung entspricht. In meinen Versuchen treten jedoch viele zusätzliche Impulse auf, die auf Verzerrungen höherer Ordnung deuten würden. Irgendwas ist da krumm, und darum würde ich gerne ein "worked example" anschauen.
MatthiasKommentar
-
Ich kenne diese Messmethode zwar nicht unter dem Namen "Farina-Methode", habe sowas aber schonmal erfolgreich auf der Uni programmiert.
Wenn mich meine Erinnerung nicht täuscht, dann ist es sehr wohl von Bedeutung, dass das Messsignal ein Sweep ist. Jedenfalls muss es ein Signal sein, das zu jedem Zeitpunkt aus nur einer bekannten Frequenz besteht. Nur dann kann sich nach der Faltung mit der Inversen des Signals eine eindeutige Zeitverschiebung der Verzerrungsprodukte in der Impulsantwort ergeben.Die Bestimmung der Impulsantwort ist einfach, das hat aber mit der Farina-Idee wenig zu tun, und benötigt auch nicht unbedingt einen Sinus-Sweep. Man kann dazu jedes Signal mit einem genügend breitbandigen Frequenzspektrum verwenden (Dirac, MLS, white/pink/red noise, etc.).
Unmathematisch ausgdrückt: Wenn das Anregungssignal ein aufsteigender Sweep mit der Momentanfrequenz f0 ist, dann erscheint die erste Oberwelle (bei f1=2*f0) des Testobjekts zum aktuellen Zeitpunkt t0 wie eine zeitverschobene lineare Antwort auf den Sweep zum Zeitpunkt t1, wo nämlich der Sweep bei der Frequenz f1 angekommen ist.
Ich glaube es war mit einem linearen (oder wars doch ein exponentieller? müsste man sich kurz mathematisch überlegen) Sweep am einfachsten, die Impulsantworten der einzelnen Oberwellen zu trennen, prinzipiell sollte mit entsprechender zeitlicher Verzerrung aber jeder Sweep funktionieren.
Das alles hier bitte mit Vorsicht genießen, das ist nur aus dem Gedächtnis hervorgekramt, aber vielleicht hilft es ja weiter. Falls nicht kann ich das nochmal genauer im entsprechenden Sript nachlesen.Kommentar
-
Ganz unmathematisch weitergedacht - die scheinbare Zeitverschiebung sollte über alle Grundfrequenzen konstant sein, damit sich ein sekundärer Peak für die ersten Oberwelle ergibt -- also t(2*f0)-t(f0)=const -- was imho nur für einen logsweep zutrift. Richtig soweit?Unmathematisch ausgdrückt: Wenn das Anregungssignal ein aufsteigender Sweep mit der Momentanfrequenz f0 ist, dann erscheint die erste Oberwelle (bei f1=2*f0) des Testobjekts zum aktuellen Zeitpunkt t0 wie eine zeitverschobene lineare Antwort auf den Sweep zum Zeitpunkt t1, wo nämlich der Sweep bei der Frequenz f1 angekommen ist.
Ich glaube es war mit einem linearen (oder wars doch ein exponentieller? müsste man sich kurz mathematisch überlegen) Sweep am einfachsten, die Impulsantworten der einzelnen Oberwellen zu trennen, prinzipiell sollte mit entsprechender zeitlicher Verzerrung aber jeder Sweep funktionieren.Kommentar
-
Hast du die Unterlagen dazu noch? Kannst ich die ansehen?
Für die Impulsantwort alleine braucht es keinen Sweep. Wenn man die Veruzerrungsprodukte separieren will, dann schon (wie oben verschiedentlich angedeutet).Wenn mich meine Erinnerung nicht täuscht, dann ist es sehr wohl von Bedeutung, dass das Messsignal ein Sweep ist. Jedenfalls muss es ein Signal sein, das zu jedem Zeitpunkt aus nur einer bekannten Frequenz besteht. Nur dann kann sich nach der Faltung mit der Inversen des Signals eine eindeutige Zeitverschiebung der Verzerrungsprodukte in der Impulsantwort ergeben.Kommentar
-
.
Einige Einzelheiten zur Farina-Methode finden sich auch hier:
-----------------------------------------------------------------------------
ARTA-user-manual.pdf (Version 1.8.3)
Seite 92 ... 95 (Kapitel 6.1.8)
"Simultaneous Measurement of Frequency Response and Harmonic Distortions"
-----------------------------------------------------------------------------
ARTA-Handbuch-D2.4-Rv0.1.pdf
Seite 143...146 (Kapitel 7.1)
"Messen von harmonischen Verzerrungen mit Gleitsinus"
-----------------------------------------------------------------------------
Gruß
Messfreak
.Kommentar
-
Tut mir leid, hab wohl nicht genau genug gelesenFür die Impulsantwort alleine braucht es keinen Sweep. Wenn man die Veruzerrungsprodukte separieren will, dann schon (wie oben verschiedentlich angedeutet).
.
Leider nein. Ich müsste aber irgendwo ein Skript haben, wo das beschrieben ist, das müsst ich aber raussuchen. Vlt. komm ich am Wochenende dazu.Hast du die Unterlagen dazu noch?
Derweil hab ich folgenden MATLAB-Code hingeschustert, dessen Ergebnis nicht zu 100% verkehrt aussieht:
Aber auch das wiederum mit Vorsicht genießenCode:sweep=chirp(0:1/44100:5,10,5,10000,'logarithmic',-90); %generate sin-sweep sweepdis=sweep - sweep .* sweep + 0.5; %add 2nd harmonic corr=xcorr(sweep, sweepdis); %cross-correlate with original plot(corr);
Angehängte DateienKommentar

Kommentar