Forums Neueste Beiträge
 

Gruppenlaufzeit per Anpassung ermitteln

11/03/2010 - 23:22 von Marcel Müller | Report spam
Hallo,

ich suche nach einer Möglichkeit aus ordentlich verrauschten Daten die
frequenzabhàngige Gruppenlaufzeit zu ermitteln. Das dumme daran ist,
dass ich den Referenzgenerator nicht vernünftig mit dem ADC
synchronisieren kann, da das Ergebnis auch mit relativ ràudigen
Soundkarten und unbekannter Latenz als Konverter funktionieren soll.

Das bedeutet ich habe als zusàtzliche Unbekannte eine lineare
Phasenverschiebung, die durchaus im Bereich von Sekunden liegen kann,
zumal die Programme für Testsignal und Auswertung auch nie ganz
gleichzeitig gestartet werden. Die eigentlich zu ermittelnden
Differenzen in der Gruppenlaufzeit sollen aber mit einer Genauigkeit von
<=1ms bestimmt werden (Audio-Anwendung). Das bedeutet ich muss erst
einmal den globalen Offset anpassen und dann kann ich im zweiten Schritt
die lokalen Schwankungen bestimmen.

Mathematisch gesehen ist das erst einmal nichts anderes als ein
Least-Square-Fit, nur greift die Standardmethoden Levenberg-Marquardt
hier ins Leere, da die Chi^2-Landschaft aufgrund der Periodizitàt der
Phase nur so vor lokalen Minima strotzt. Wenn man erst einmal mit der
Hand etwas herumpuzzlet und einen guten Startwert für den Timeshift
festlegt und den auch weitgehend fixiert, konvergiert das Ergebnis ganz
gut und liefert auch hinreichend genaue Daten. Nur ist das aufwendig und
vor allem nicht automatisierbar.

Früher habe ich das Problem einfach gelöst, indem ich mein eigenes
Signal per Loopback auf einem Eingangskanal des Sounddevices mit
aufgezeichnet habe und damit der Timeshift nahe null war. Bei den
neuesten Messungen geht das aber nicht mehr so einfach, da ich alle
Kanàle brauche. Im Ergebnis sollen nàmlich Frequenzgang, Gruppenlaufzeit
und harmonische Verzerrungen (H2/H3) des Audioequipments in einer
einzigen Messung mit einem breitbandigem Testsignal charakterisiert
werden und das noch für beide Stereolautsprecher gleichzeitig.
Funktioniert auch soweit (man könnte auch noch mehr Kanàle gleichzeitig
analysieren). Nur die Gruppenlaufzeit bockt noch etwas herum.

Irgendeine Idee, wie ich die Information phi(f) in eine große lineare
und kleinere freie Schwankungen zerlegen kann? Bei dem kleinen Signal
bringe ich zusàtzlich noch die Einschrànkung hinein, dass die 2.
Ableitung der Phase unter realistischen Bedingungen nicht sonderlich
groß werden kann - also letztlich eine Art Tiefpass-Filter in der
Gruppenlaufzeit(f).

In Zahlen: ich habe einen linearen Term, der im Bereich [0,2Pi) pro
Frequenzkanal (ca. 0,18Hz) praktisch jeden Wert annehmen kann und ein
Nutzsignal was höchstens ±0,013 pro Frequenzkanal schwankt, insgesamt
ein Fenster von ±0,1 pro Frequenzkanal eher nicht verlassen wird und
dessen Mittelwert der Gruppenlaufzeit natürlich null ist. Der Rest
steckt ja schon in dem linearen Term.


Marcel
 

Lesen sie die antworten

#1 Marc Jet
12/03/2010 - 13:24 | Warnen spam
Warum benutzt Du nicht einfach einen Carrier mit moduliertem
Datensignal? Das Signal koennte eine bestimmte Bitfolge enthalten,
die die 0 Phase definiert. Erkennen kannst Du es per Bandpassfilter
und Korrelation.

Ähnliche fragen