Taktunterschied zwischen Abspielen und Aufnahme des Logsweep

FoLLgoTT
Aktiver Hörer
Beiträge: 554
Registriert: 20.01.2011, 14:05
Wohnort: Hannover
Kontaktdaten:

Beitrag von FoLLgoTT »

Hallo Uli,
uli.brueggemann hat geschrieben:Ich habe einen Logsweep mit 48 kHz von 10 Hz bis 24000 Hz erzeugt, Zeitdauer 60 Sek. Und die dazugehörige Inverse gesichert. Dann dazu mal einen weiteren Sweep erzeugt, diesmal mit der Länge 59.99917185 sek. Das entspricht den 60 sek multipliziert mit einem Faktor 4057200/4057256 aus Fujaks Beispiel.
Aber das ist doch gar nicht das, was in der Praxis beim Abspielen von Musik passiert. :)

Wir falten das Musiksignal ja mit einer korrigierenden Impulsantwort, die mit einer leicht anderen Samplerate erstellt wurde. Auf digitaler Ebene gibt es das Samplerate-Problem aber gar nicht. Das existiert erst, sobald es analog wird. Der Falter (mit der leicht anderen Samplerate) faltet ja genauso die 65.536 (oder welche auch immer) Bytes, die der Messrechner erstellt hat.

In Wahrheit ändert sich die Form der Impulsantwort so gut wie gar nicht. Hier ist der Beweis.

Aufbau:

1. Messrechner mit Audio Interface
2. Faltrechner mit eingebauter Soundkarte

Kette: D/A 1 -> |A/D 2 - falten - D/A 2| -> A/D1

Die Pärchen 1 und 2 besitzen jeweils denselben Takt. Das heißt, der Messrechner ist in sich konsistent und der Faltrechner ist es auch.

Der Messrechner ist auf 96 kHz eingestellt. Zum Zeigen, was hier passiert stelle ich den Faltrechner später auf 88,2 kHz. Das entspricht einer Abweichung von fast 9%. Also schon um Welten mehr als über die paar Promille, über die wir hier eigentlich sprechen. Aber das Experiment soll ja auch nur die Auswirkungen verdeutlichen.

Nun messe ich ohne Filter und erstelle eine Korrektur, stelle einen Hochpass ein oder mache sonst irgendwas, damit mein Lautsprecher korrigiert wird. Das mache ich manuell, mit Acourate würde man es wahrscheinlich stärker automatisiert machen. Aber das spielt ja keine Rolle. Die Filter werden alle für 96 kHz erstellt. Das ist wichtig!

Nun falte ich die Filter.

Zunächst ein Dirac-Impuls:

Faltung mit 96 kHz:

Bild

Faltung mit 88,2 kHz:

Bild

Amplitudengänge:

Bild

Wie man sieht, sieht man nichts. Kein Wunder, ein Dirac-Impuls ist immer ein Dirac-Impuls, egal mit welcher Samplerate er abgespielt wird.

Als nächstes habe ich ein Filter gemessen, dass ich für meine Mittelhochtöner einsetze. Also Hoch-, Tiefpass und Korrektur.

Faltung mit 96 kHz:

Bild

Faltung mit 88,2 kHz:

Bild

Amplitudengänge:

Bild

Und hier sieht man genau das, was ich die ganze Zeit erzähle. Die Filter verschieben sich im Frequenzbereich. Und genau das passiert bei einer Abweichung im Promillebereich natürlich auch nur im Promillebereich. ;)

Gruß
Nils
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Nils,

ich bin Verfürworter eines Prinzips, das mir schon oft weitergeholfen hat.

Das Prinzip heißt: Extremdenken.

Es hilft Probleme zu verstehen und bzgl. einer Lösung einzugrenzen.

Ein simples offtopic-Beispiel: wenn Du Deinem Chef erzählst, Du willst 100000 € Gehalt im Monat, weisst Du, das klappt nicht. Wenn er Dir erzählt, dass Du für 0 € arbeiten sollst, weiss er auch, dass das nicht klappt. Also ist es logisch, dass Ihr Euch irgendwo dazwischen einigt.

Nun nehme ich an, dass ich einen digital erzeugten Logsweep mit Abtastrate 48 kHz abspiele. Bei der Erzeugung wird auch direkt die Inverse erzeugt, damit lässt sich eine "perfeke" Pulsantwort rechnen. Der Sweep kommt nun analog aus den Boxen. Damit spielt die Abtastrate beim Hören keine Rolle mehr.

So, und nun wird der Sweep mit einem Mikrofon und einem AD-Wandler aufgenommen. Der Wandler wird nun fälschlicherweise mit 44100 Hz oder auch 96000 Hz geclockt. Nun, die Aufnahme ist für sich genommen ok und kann sogar perfekt sein. Allerdings hat die Aufnahme im Vergleich zum 48 kHz-Originalsweep zu wenig oder zuviel Samples. Im Beispiel der 96 kHz doppelt soviel Samples.

Das Problem beginnt nun mit der Logsweep-Convolution. Die Inverse hat ja weiterhin die Anzahl Samples gültig für 48 kHz. Und nun wird eine 96 kHz Aufnahme mit einer 48 kHz Inversen gefaltet. Es sollte Dir klar sein, dass das mathematisch gerechnet werden kann, aber auch, dass das prinzipiell falsch ist.

Heraus kommt eine total falsche Pulsantwort. Die nachträglich nicht mehr korrigierbar ist. Wenn man nun auf Basis dieser Pulsantwort eine Korrektur rechnet, was passiert dann z.B. mit einer Phasenkorrektur?

Ich habe schon häufig gemessene Pulsantworten gesehen, wo ich sofort erkenne, dass das einfach nicht passt:

Bild

Wobei das reale Beispiel auf einer viel kleineren Abweichung als eine verdoppelte oder halbierte Abtastrate basiert. Wird da nun eine Korrektur inkl. Phasenkorrektur gerechnet, so wird beim anschliessenden Abspielen jedes Musikstück falsch gerechnet.

Zum Thema Hörbarkeit:
Ein Fehler ist definiert als eine Abweichung, die ausserhalb einer Toleranz liegt.

Meine Toleranz ist hier extrem klein, weil man es richtig machen kann. Insofern ist es mir egal, ob man es wirklich hört oder nicht. No compromise. Entweder ich verwende eine Soundkarte mit gleicher Clock für Wiedergabe und Aufnahme oder ich stelle fest, wie groß eine Abweichung ist und korrigiere die Aufnahme vor der Logsweep-Convolution mit SRC.

Viele Grüsse
Uli

PS: würdest Du einfach akzeptieren, dass Du im Monat 50 € weniger bekommst, weil Du es sowieso nicht wirklich merkst (=hörst)? :cheers:
Bild
FoLLgoTT
Aktiver Hörer
Beiträge: 554
Registriert: 20.01.2011, 14:05
Wohnort: Hannover
Kontaktdaten:

Beitrag von FoLLgoTT »

Hallo Uli,

ich glaube, wir reden aneinander vorbei. Da hilft auch deine Gehaltsanalogie nicht. ;)

Du beschreibst die Situation, die auftritt, wenn der Mess-PC in sich nicht konsistent ist. Die Takte für Aus- und Eingänge also unterschiedlich sind. Klar, dass dann das Korrekturfilter mehr oder weniger Schrott ist. Da stimme ich dir voll und ganz zu. Nur ist das nicht die Situation, die ich oben beschrieben habe.

Bei mir ist ist der Mess-PC in sich konsistent. Es wird also ein Filter für seinen Takt erstellt. Dieses Filter sieht erst einmal gut aus. Nun ist es dem Falter auf digitaler Ebene aber egal, für welche Samplerate das Filter erstellt wurde. In Wahrheit kennt der Falter überhaupt keine Samplerate. Er faltet nur ein gegebenes Signal mit einem gegebenen Filter. Die Samplerate kommt erst ins Spiel, wenn das resultierende Signal über den DAC ausgegeben wird. Und mit einem abweichenden Takt passiert dann folgendes:

1. Die Musik wird schneller (bzw. langsamer) und die Tonhöhe steigt (bzw. sinkt)
2. die Korrekturen des Filters verschieben sich analog dazu im Frequenzbereich

Das war's. Mehr passiert da nicht. Deine Beispielfaltung passt einfach nicht zu meiner Situation. Das ist eine völlig andere. Bei meinem Beispiel kommen die beiden unterschiedlichen Takte ja nie auf digitaler Ebene miteinander in Berührung. Bei deinem schon. Nämlich durch die unterschiedlich langen Sweeps beim Messen.

Gruß
Nils
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

FoLLgoTT hat geschrieben:Hallo Uli,
uli.brueggemann hat geschrieben:Ich habe einen Logsweep mit 48 kHz von 10 Hz bis 24000 Hz erzeugt, Zeitdauer 60 Sek. Und die dazugehörige Inverse gesichert. Dann dazu mal einen weiteren Sweep erzeugt, diesmal mit der Länge 59.99917185 sek. Das entspricht den 60 sek multipliziert mit einem Faktor 4057200/4057256 aus Fujaks Beispiel.
Aber das ist doch gar nicht das, was in der Praxis beim Abspielen von Musik passiert. :)
Nils,

das Thread-Thema heisst "Taktunterschied zwischen Abspielen und Aufnahme des Logsweep" und NICHT "was passiert bei der Wiedergabe mit falscher Taktrate". Insofern scheinst Du mir das Thema falsch verstanden zu haben (Zitat: "was in der Praxis beim Abspielen von Musik passiert" ) und insofern tragen Deine Bilder auch nichts zur Klärung der Sachlage bei.

Grüsse
Uli
Bild
FoLLgoTT
Aktiver Hörer
Beiträge: 554
Registriert: 20.01.2011, 14:05
Wohnort: Hannover
Kontaktdaten:

Beitrag von FoLLgoTT »

Hallo Uli,
uli.brueggemann hat geschrieben:das Thread-Thema heisst "Taktunterschied zwischen Abspielen und Aufnahme des Logsweep" und NICHT "was passiert bei der Wiedergabe mit falscher Taktrate".
Ok, da hast du natürlich Recht. Ich war wohl gedanklich schon einen Schritt weiter. ;)

Gruß
Nils
Bild
frankl
Aktiver Hörer
Beiträge: 485
Registriert: 20.01.2013, 01:43
Wohnort: Aachen

Beitrag von frankl »

Hallo,

als Nachtrag sind hier noch zwei Bilder, die etwa die ersten 3 Millisekunden der Impulsantwort für meinen linken Lautsprecher zeigen. Dadurch wird der Effekt vielleicht besser vorstellbar.

Zuerst so, wie ich bisher die Impulsantwort aus dem (inversen) Originalsweep und meiner Messung ermittelt habe. Das sieht dann so aus:

Bild

Und zum Vergleich, wie die Impulsantwort aussieht, wenn ich zuerst die Messung meines Sweeps von 95999.3 Hz auf 96000 Hz upsample:

Bild

(So falsch, wie das oben aussieht, klingt der damit berechnete Korrekturfilter allerdings nicht.)

Viele Grüße,
Frank
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Uli, hallo Frank

wie angekündigt habe ich heute folgendes mit Acourate gemacht:
  1. "LogSweep44_rec.wav" in Curve 1 laden und mit TD-Functions -> Samplerate (F10) auf Curve 2 resamplen mit der durch die Formel

    Code: Alles auswählen

                                          ([Orig.-Dirac End] - [Orig.-Dirac Start]) Samples
    korr. Samplerate = orig. Samplerate x -------------------------------------------------
                                          ([Aufn.-Dirac End] - [Aufn.-Dirac Start]) Samples
    
    [/size]
    errechneten Samplerate 44099,39134020072 - abspeichern als "LogSweep44_rec_SRC.wav"
    Ich konnte mich bis auf 1 Sample annähern (also wie bei Dir, Frank).
  2. "LogSweep44_rec_SRC.wav" mittels LogSweep -> LogSweep Convolution mit "Inverse44.dbl" auf Curve 3 und 4 falten und als "PulseL.dbl" und "PulseR.dbl" ausgeben.
  3. Diese dann ganz normal mit Makro 1-4/5 durchlaufen lassen.
Grafischer Vergleich vor Makro 1-4 (Korrektur durch Acourate):

Schon beim grafischen Vergleich werden nicht nur bei der Sprungantwort sondern auch interessanterweise im FG Unterschiede deutlich:

Rot = Pulse L mit SRC
Grün = Pulse R mit SRC
Blau = Pulse L ohne SRC
Braun = Pulse R ohne SRC

Frequenzgang (für die bessere Übersichtlichkeit: 1/12 Okt geglättet und bei 25Hz auf gleichen Pegel gebracht):

Bild

Sprungantwort:

Bild

Hörvergleich:

Der Unterschied ist bei mir relativ groß. Wie anhand der Grafik zum FG zu erwarten war, klingt der File mit dem Filter auf Basis der SRC-Korrektur deutlich voller, sodass ich hier meine Zielkurve tonal anpassen musste. Auch die unterschiedliche Sprungantwort macht sich bemerkbar in einer präziseren Räumlichkeit.

Insofern hat es sich für mich wirklich ausgezahlt, die Taktunterschiede zwischen Wiedergabe und Aufnahme des Logsweep zu untersuchen und ggf zu korrigieren.

An dieser Stelle nochmal Danke schön an Euch, Frank und Uli, dass Ihr dieses Thema auf den Tisch gebracht habt.

Grüße
Fujak
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Fujak hat geschrieben: Rot = Pulse L mit SRC
Grün = Pulse R mit SRC
Blau = Pulse L mit SRC
Braun = Pulse L mit SRC
Fujak,

1. das versteh ich nicht.

2. Interessant ist für mich vor allem der Vergleich der gezoomten Pulsantworten aus der Logsweep-Convolution ohne/mit SRC des Sweeps.

Grüsse
Uli
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Uli, ich verstehe, dass Du das nicht verstehst. :)

Da ist mir ein Copy/Paste-Fehler unterlaufen.

Richtig muss es heißen:
Rot = Pulse L mit SRC
Grün = Pulse R mit SRC
Blau = Pulse L ohne SRC
Braun = Pulse R ohne SRC

Ich habe es im Text entsprechend korrigiert.
Uli.Brüggemann hat geschrieben:2. Interessant ist für mich vor allem der Vergleich der gezoomten Pulsantworten aus der Logsweep-Convolution ohne/mit SRC des Sweeps.
Beziehst Du Dich damit als Aussage auf meine zweite Grafik ("Step" gezoomt) oder möchtest Du damit sagen, dass Du gerne noch die entsprechenden Impulsantworten sehen möchtest?

Grüße
Fujak
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Fujak hat geschrieben: Beziehst Du Dich damit als Aussage auf meine zweite Grafik ("Step" gezoomt) oder möchtest Du damit sagen, dass Du gerne noch die entsprechenden Impulsantworten sehen möchtest?
Ich wollte die Impulsantworten sehen.

Du kannst mir gern mal den aufgenommenen Sweep (und die Inverse) zusenden, ich wundere mich über den so stark veränderten Frequenzgang.

Grüsse
Uli
Bild
FoLLgoTT
Aktiver Hörer
Beiträge: 554
Registriert: 20.01.2011, 14:05
Wohnort: Hannover
Kontaktdaten:

Beitrag von FoLLgoTT »

Hallo Fujak,

hast du die Messungen ohne und mit Korrektur direkt hintereinander gemacht? Oder gibt es da eventuell noch Messungenauigkeiten durch einen großen zeitlichen Versatz (z.B. Mikrofon erneut positioniert usw.)?

Ich frage nur zur Sicherheit. Denn auch ich finde den Unterschied im Amplitudengang erstaunlich groß.

Gruß
Nils
Bild
frankl
Aktiver Hörer
Beiträge: 485
Registriert: 20.01.2013, 01:43
Wohnort: Aachen

Beitrag von frankl »

Hallo Fujak,

schön, dass die Beachtung dieses technischen Details auch bei Dir einen Vorteil bringt.

Die unterschiedlichen Frequenzgänge, die Du zeigst, haben mich allerdings gewundert. Deswegen habe ich mir das bei meiner Messung auch mal angeschaut. Da kann ich diesen Effekt nicht sehen. In der Graphik für den wenig geglätteten Frequenzgang gibt es kleine sichtbare Unterschiede nur im Detail des Kurvenverlaufs, aber nicht in der mittleren Amplitude.

Am besten sichtbar wird der systematische Unterschied (der Fehler wird ja im Verlauf des Sweeps zu hohen Frequenzen hin größer) im 3D-Plot der Spektralverlaufes:

Bild

Und noch an Nils:
FoLLgoTT hat geschrieben: hast du die Messungen ohne und mit Korrektur direkt hintereinander gemacht? Oder gibt es da eventuell noch Messungenauigkeiten durch einen großen zeitlichen Versatz (z.B. Mikrofon erneut positioniert usw.)?

Ich frage nur zur Sicherheit. Denn auch ich finde den Unterschied im Amplitudengang erstaunlich groß.
Es handelt sich hier nur um eine Messung (pro Kanal), die lediglich verschieden verarbeitet wird.

Viele Grüße,
Frank
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Uli, hallo Frank,

in der Tat, mich wundern diese Auswirkungen auf den FG auch, was ich insofern nicht nachvollziehbar finde, als die Korrekturen ja in der Zeitdomäne stattfinden. Uli, ich sende Dir mal die Dateien via Mail zu.
Nils hat geschrieben:hast du die Messungen ohne und mit Korrektur direkt hintereinander gemacht?
Ich habe nur eine Messung gemacht, es gibt also nur eine Datei mit dem aufgenommenen Logsweep, genannt "LogSweep44_rec.wav". Eine Kopie davon habe ich durch SRC korrigiert und nennt sich "LogSweep44_rec_SRC.wav".

Beide Files habe ich dann per Logsweep Convolution mit der Inversen gefaltet. Das Ergebnis ist das, was ich in den Grafiken dargestellt habe (rot/grün = "LogSweep44_rec_SRC.wav" gefaltet mit "Inverse44.dbl" - blau/braun = "LogSweep44_rec.wav" ebenfalls gefaltet mit "Inverse44.dbl").

Grüße
Fujak
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4658
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Hallo Fujak,

danke für die Sweeps. Du hast alles soweit richtig gemacht - fast. :P
Acourate macht bei der Logsweep-Convolution eine automatische Normierung, der Spitzenwert der Pulsantwort wird auf 1 normiert. Bei unterschiedlichen Antworten ergeben sich damit Pegelunterschiede im Frequenzgang.

Um nun die Pulsantworten vergleichbar zu machen, führst Du die erste Convolution mit dem SRC gewandelten Sweep aus und speicherst die Pulsantworten z.B. als srcPulse44L und srcPulse44R. Dann machst Du die Convolution mit der Sweep-Aufnahme, markierst dazu aber die "Freeze norm. gain" Checkbox, dann wird dieselbe Verstärkung wie bei der vorherigen Normalisierung verwendet.

Dann passt es. Die Frequenzgänge sind unmerklich unterschiedlich.

Ohne SRC sehen die Pulsantworten so aus:

Bild

Das ist noch etwas geschönt, der rechte Puls ist noch um 2 Samples nach links rotiert, damit es übereinstimmt.

Mit SRC, also der Anpassung der Takte von Aufnahme/Wiedergabe, ergibt sich die "richtige" Pulsantwort:
Bild

Das schaut schon anders aus. Und das bloss, wegen 56 Samples Abweichung bei nominellen 4057200 Samples!

Grüsse
Uli

PS für die kritischen Betrachter: beim SRC braucht es ein Brickwallfilter gegen Aliasing. Das verursacht eine Hochtonbegrenzung bei fs/2. Was zu erkennen ist am leichten Ripple vor der optimierten Pulsantwort. Für Betrachtungen bei der Raumkorrektur unbedenklich.
Bild
Fujak
Moderator
Beiträge: 5752
Registriert: 05.05.2009, 21:00
Wohnort: Bayern
Kontaktdaten:

Beitrag von Fujak »

Hallo Uli,

danke für die Arbeit, die das Rätsel tatsächlich aufgeklärt hat.

Tja, das ...
Uli hat geschrieben:Acourate macht bei der Logsweep-Convolution eine automatische Normierung, der Spitzenwert der Pulsantwort wird auf 1 normiert. Bei unterschiedlichen Antworten ergeben sich damit Pegelunterschiede im Frequenzgang.
... müsste man vorher wissen. Prima, damit ist meine Welt wieder in Ordnung. :cheers:

Noch eine Frage zur SRC-Korrektur (2. Grafik):
Uli hat geschrieben:Das ist noch etwas geschönt, der rechte Puls ist noch um 2 Samples nach links rotiert, damit es übereinstimmt.
Hat das Rotieren nur kosmetische Auswirkungen für die Grafik oder fließt das in die weitere Korrektur mit ein, also sollte in jedem Fall durchgeführt werden? Denn in der originalen Pulsantwort liegen die Pulse ja korrekt übereinander.

Grüße
Fujak
Bild
Antworten