Ankündigung

Einklappen
Keine Ankündigung bisher.

Kostenloses, freies und quelloffenes Lautsprecher-Messprogramm

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • ropf
    Registrierter Benutzer
    • 03.12.2013
    • 841

    #46
    Zitat von mbrennwa Beitrag anzeigen
    Welche Skripte meinst du jetzt genau? MATAA? Oder DRC-FIR (da habe ich allerdings noch keine Octave-Skripte gefunden)?
    Die unter drc-x.x.x/source/octave

    Mit Farina-Methode meinst du doch bestimmt die Errechnung der Impulsantwort aus dem aufgezeichneten sweepfile? (Der hat ja noch mehr geschrieben). Dürfte in der lsconv.c zu finden sein.

    Gruß
    /ropf

    Kommentar

    • mbrennwa
      Registrierter Benutzer
      • 10.04.2004
      • 8

      #47
      Zitat von ropf Beitrag anzeigen
      Die unter drc-x.x.x/source/octave
      Ok, werde ich anschauen.

      Zitat von ropf Beitrag anzeigen
      Mit Farina-Methode meinst du doch bestimmt die Errechnung der Impulsantwort aus dem aufgezeichneten sweepfile? (Der hat ja noch mehr geschrieben). Dürfte in der lsconv.c zu finden sein.
      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.

      Matthias

      Kommentar

      • Violoncello
        Registrierter Benutzer
        • 11.07.2010
        • 641

        #48
        Ich kenne diese Messmethode zwar nicht unter dem Namen "Farina-Methode", habe sowas aber schonmal erfolgreich auf der Uni programmiert.

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

        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

        • ropf
          Registrierter Benutzer
          • 03.12.2013
          • 841

          #49
          Zitat von Violoncello Beitrag anzeigen
          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.
          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?

          Kommentar

          • mbrennwa
            Registrierter Benutzer
            • 10.04.2004
            • 8

            #50
            Zitat von Violoncello Beitrag anzeigen
            Ich kenne diese Messmethode zwar nicht unter dem Namen "Farina-Methode", habe sowas aber schonmal erfolgreich auf der Uni programmiert.
            Hast du die Unterlagen dazu noch? Kannst ich die ansehen?

            Zitat von Violoncello Beitrag anzeigen
            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.
            Für die Impulsantwort alleine braucht es keinen Sweep. Wenn man die Veruzerrungsprodukte separieren will, dann schon (wie oben verschiedentlich angedeutet).

            Kommentar

            • Messfreak
              Registrierter Benutzer
              • 15.08.2009
              • 24

              #51
              .


              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

              • Violoncello
                Registrierter Benutzer
                • 11.07.2010
                • 641

                #52
                Für die Impulsantwort alleine braucht es keinen Sweep. Wenn man die Veruzerrungsprodukte separieren will, dann schon (wie oben verschiedentlich angedeutet).
                Tut mir leid, hab wohl nicht genau genug gelesen .

                Hast du die Unterlagen dazu noch?
                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.

                Derweil hab ich folgenden MATLAB-Code hingeschustert, dessen Ergebnis nicht zu 100% verkehrt aussieht:

                Code:
                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);
                Aber auch das wiederum mit Vorsicht genießen
                Angehängte Dateien

                Kommentar

                Lädt...
                X