Klangunterschiede bei digitalen Transportern

Rossi
Aktiver Hörer
Beiträge: 1107
Registriert: 13.04.2008, 14:40
Wohnort: Bayern

Beitrag von Rossi »

Hi amdrax,

ein paar Anmerkungen meinerseits:
amdrax hat geschrieben:- In irgendeiner Form interpolieren, raten, berechnen (was wohl die meisten Upsampler tun - und was unterschiedlich zum Original klingt!)
Es klingt nicht unterschiedlich zum Original, sondern unterschiedlich zum digitalen Quellsignal, was aber weiter nicht schlimm ist, da wir ja davon ausgehen, daß das digitale Signal, besonders von der CD, nicht das Gelbe vom Ei ist und durch ein wie auch immer gestaltetes Upsampling verbessert werden kann.
Letzteres kann man nun mit vielen Verfahren tun. Statisch, dynamisch, was auch immer (vor allen Dingen: "was auch immer das bedeuten mag!!"). Es ist dabei möglich, dass eine Operation (bzw. der Algorithmus) die vorher berechneten Daten mit einbezieht (das ist, wenn ich es richtig verstehe, Dein Erklärungsansatz, Leif).
Wenn die vorher berechneten Daten korrekt sind, macht es in meinen Augen Sinn, diese miteinzubeziehen.
Genauso kann ein anderer Algorithmus aber darauf verzichten, "alte Daten" mit einzubeziehen. Beide werden nun leicht unterschiedlich klingen. Beide sind nicht näher und nicht weiter weg vom Original. Sie sind einfach "anders", weil die Rechenvorschrift eine andere ist.
Ziel des Upsampelns sollte es sein, so nah wie möglich am Original - und zwar am analogen - zu sein.
Insofern: Es gibt keine "Wahrheit" beim Upsamplen, es gibt nur Algorithmen mit mehr oder weniger technischen Unzulänglichkeiten. Aber keiner kann raten, wie das Originalsignal (analog) wirklich mal aussah... ...unabhängig davon, ob der Code "geheim" ist oder nicht, ob es statisch oder dynamisch geht.
Ich glaube man braucht gar nicht zu raten, man muß nur (hin)hören! Wenn ein digitales Signal durch Upsampeln plötzlich besser, sprich analoger klingt, hat der Upsampler alles richtig gemacht.

Gruß,
S.
Bild
JoeBroesel
inaktiv
Beiträge: 570
Registriert: 17.01.2008, 21:24
Wohnort: Rosenheim

Beitrag von JoeBroesel »

Hi,
play-mate hat geschrieben:...und z.B. eine Vinylscheibe mit einer CD vergleicht, der wird auch herausfinden dass analoge Wiedergabe völliger Irrsinn ist.
Rossi hat geschrieben:Wenn ein digitales Signal durch Upsampeln plötzlich besser, sprich analoger klingt, hat der Upsampler alles richtig gemacht.
Einfach lustig, das zu lesen.

Rainer.
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4672
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Darf ich noch einmal zur Aufklärung hinsichtlich des Upsampelns beitragen?

Nehmen wir irgendein 44.1 kHz Signal. Man kann dann über eine Anzahl von Abtastpunkten eine Fouriertransformation durchführen um den Frequenzgang zu erhalten. Das sei im nächsten Bild dargestellt:

Bild

Die Frequenzachse geht hier bis 88200 Hz, unser Signal hat aber natürlich nur Frequenzen bis 22050 Hz. Das ist im Bild prima zu sehen, die Frequenzachse wurde bewusst linear und nicht logarithmisch gezeichnet.

Ok, nun machen wir das von amdrax beschriebene Verfahren, vervierfachen also die Punktanzahl = Upsampeln auf 176.4 kHz, indem wir nach jedem Abtastpunkt drei weitere Punkte einfügen. Jeder eingefügte Punkt bekommt den Wert 0. Das Resultat der FFT über dem neuen Signal sieht dann wie folgt aus:

Bild

Im Zeitdiagramm erkennen wir einen neuen Verlauf durch die eingefügten Null-Samples. Ooops, der Frequenzgang geht nun aber plötzlich bis 88.2 kHz, wir sehen wunderschön, wie der Bereich von 0 bis 22050 Hz an einer gedachten 22050 Hz-Linie gespiegelt ist und dann der Bereich von 0 bis 44100 Hz wiederum an der gedachten 44100 Hz-Linie gespiegelt ist.
Das neue Signal enthält nun also Frequenzen oberhalb von 22050 Hz bis fs/2. Darf das sein?

Wir wissen doch, dass unser 44.1 kHz-Ausgangssignal bandbreitenbegrenzt ist, also nur Frequenzen bis 22050 Hz enthält. Demzufolge ist das neue upgesampelte Signal so nicht richtig! Damit es richtig wird, müssen wir also alle Signalanteile über 22050 Hz wegnehmen. Wegnehmen heisst Rausfiltern. Also ein Tiefpass, der alles bis 22050 Hz durchlässt und alles darüber konsequent wegnimmt.

Das Filter sollte also idealerweise unendlich steil sein und in etwa so aussehen wie

Bild

die grüne Linie im Bild. Der Vorgang, wie so ein Filter mit dem Signal verrechnet wird, heisst Convolven oder Faltung. Es hat schlichtweg nichts mit "Statik" und "Dynamik" zu tun.

Also benötigen wir so einen Tiefpass, am besten einen perfekten. Bis 22050 Hz ein 1:1 Durchlass, dann ein unendlich steiler Abfall und über 22050 Hz ein perfektes Sperren. Es gibt dieses theoretisch perfekte Filter in der mathematischen Theorie: es ist ein sogenanntes sinc-Filter (Funktion sin(x)/x). Um allerdings die gewünschten Eigenschaften zu erhalten muss es unendlich lang sein, also in grauer Vorzeit beginnen und ewig dauern. Was nicht praktikabel ist. Also wird das Filter durch Abschneiden vorne und hinten auf eine reale Länge gebracht. Damit Start und Ende des Filters dadurch nicht plötzlich passieren, wird mit einer Fensterfunktion (Hamming, Blackman, Kaiser, Gauss ...) ein sanftes Fade-In/Out erzeugt.

Tja, und dieses Einkürzen bringt nun eben so seine Nachteile mit sich. Der Frequenzgang fällt vor 22050 Hz bereits ab, der Übergangsbereich ist nicht mehr unendlich steil, sondern wird flacher, der Sperrbereich sperrt nicht mehr so perfekt und es werden evtl. auch Frequenzen oberhalb von 22050 Hz übertragen (welche ja nicht vorhanden sein sollten). Ich habe hier über verschiedene Filterlängen bei diversen Programmen berichtet, von 194 Samples (Foobar einfach) bis 2180 Samples (Linn) bis hin zu 65536 Samples (das von mir verwendete Testfilter). Je länger das Filter, desto besser die Filtereigenschaften. Aber eben auch desto größer das Ringing.

Was noch verbleibt ist die Frage, wie es mit anderen Interpolationsansätzen aussieht. Hier wurden ja nur Nullen eingefügt.

Es ist wichtig zu wissen, dass das Falten des Musiksignals mit dem Filter ein mathematischer Rechenvorgang ist, der nun genau die sinc-Interpolation bewirkt. Am Ausgang des Filters haben die Samples, die vorher Null waren, die interpolierten Werte, die den gegebenen bandbreitenbegrenzten Signalverlauf bechreiben! Je perfekter das Filter, desto perfekter der Signalverlauf.

Wenn wir nun hergehen und z.B. den eingefügten Samples den jeweiligen Wert des vorausgehenden Samples zuweisen (Treppenfunktion), oder linear interpolieren (Dreiecksfunktion) oder eine Spline-Interpolation durchführen oder was auch immer noch tun, dann können wir mit dem neu erzeugten Signal wiederum eine Fouriertransformation durchführen. Wir werden dann sehen (bitte erspart mir den Nachweis aus Zeitgründen), dass durch all die anderen Interpolationen der Frequenzgang mehr oder weniger nett aussieht. Je nach Verfahren treten Frequenzen oberhalb von 22050 Hz auf, was aber nicht korrekt ist. Korrekt wäre: der Frequenzgang unter 22050 Hz bleibt unverändert, oberhalb von 22050 Hz sind die Amplituden verschwindend klein.

Wenn das damit hoffentlich alles klar geworden ist, steht vielleicht noch eine Frage aus: Warum gibt es dann die diversen Filterlängen bzw. die diversen Interpolationsarten? Das Rechnen der Filter kostet Zeit und Aufwand. Und die Mathematiker/Techniker denken nun schlichtweg darüber nach, wie ein bestmögliches Ergebnis mit einem minimalen bzw. machbaren Aufwand zu erzielen ist. Genau hierzu haben sich Generationen von Mathematikern beim Filterentwurf mit der Aufgabe befasst, wie z.B. ein optimales Filter gegebener Länge mit gewünschten Eigenschaften entworfen werden kann.

Im Bereich des Upsamplings ist mittlerweile klar, dass sinc-Filter Vorteile haben, die Länge wird mit schnellerer Datenverarbeitung immer unkritischer. Auch FPGAs und DSPs werden immer leistungsfähiger.

Grüsse, Uli
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4672
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Weil einfach zu machen ging, hier noch ein Bild eines Upsamplings bei dem die eingefügten Stellen den Wert des jeweils vorhergehenen existierenden Punktes erhalten (Treppenfunktion):

Bild

Und dazu noch ein Bild für das Ergebnis bei einer linearen Interpolation (Dreiecksfunktion):

Bild

Klar zu sehen, dass diese Interpolationsmethoden ebenfalls ohne Filterung nicht brauchbar sind, sie erzeugen weiterhin unerwünschte Frequenzen oberhalb 22050 Hz.

Gruss, Uli
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Uli,

Manchmal weiss ich nicht ganz ob du dich für oder gegen diese sinc-Filter aussprichst, aber es scheint mir dass es dämmert.... :cheers:

Egal ob nun so oder so upgesampelt wird, steht immer noch im Raum, dass wenn mit Hilfe von Interpolation das Datensignal auf eine höhere Samplingrate konvertiert wird, so wird die Qualität der Übertragung zum DAC verbessert.
-und dies ist der wirklich entscheidende Punkt, warum sich Linn die Mühe mit dem FPGA Chip leistet und diese Technik auch hervorhebt (und auch warum cPlay mindestens einen Duo-Core Prozessor fordert).
Die alleinige Qualität des Upsamplings wird somit eine Frage von Rechenpower.
Dies ist in der Tat eine Neuigkeit für die meisten Audiofreaks, meine Herren.

Mich würde interessieren ob andere digitale Transporter als die von Linn solche FGPA Chips oder Ähnliches verwenden ?
-denn hier dürfte es wirklich zu Klangunterschiede kommen.

Gruß Leif
Bild
veloplex
Aktiver Hörer
Beiträge: 360
Registriert: 23.01.2010, 13:41
Wohnort: Berlin

Beitrag von veloplex »

Hallo,

zunächst einmal einen Dank an Uli und die Diskutanten für diesen wirklich interesanten Thread!

Uli und Georg,

wäre es möglich, dass ihr mir das Testfile und das Ergebnis der Linnaufnahme zur Verfügung stellt? Zum einen möchte ich mit der Testfile mal andere upsampler probieren und vergleichen. Zum Anderen würde mich interessieren, ob Linn neben dem upsampling vielleicht noch andere Dinge hinzufügt (z.B. Klirr). Wobei mir klar ist, dass dabei der Messaufbau berücksichtigt werden muss.

Ich hofffe, es geht hier spannend weiter. Am Ende fände ich es wirklich interessant, wenn man dem Sound der Linn etwas auf die Schliche käme. Der Versuch, diesen Sound mit eigenen Mitteln nachzustellen wäre die Krönung!


Gruß Christoph
Bild
axxxxx

Beitrag von axxxxx »

Tachschön Junx,

ich finde die Mühe, die Uli auf sich nimmt, wirklich bemerkenswert.
Allein, mir entzieht sich noch die praktische Konsequenz aus diesen Erkenntnissen.

Kann man, im Sinne einer, stark verkürzten, Zusammenfassung sagen:
Daß Upsampling dann einen positiven Effekt haben kann, wenn es "gut" gemacht wird.
Es aber dann kontraproduktiv ist, wenn das "nackte" Ergebnis besser aussieht?

Und wie könnte ich prüfen, wie das "nackte" Ergebnis bei einem/meinem DAC aussieht?

Gruß,
Kai
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Kai,
aston456 hat geschrieben:Daß Upsampling dann einen positiven Effekt haben kann, wenn es "gut" gemacht wird.
Es aber dann kontraproduktiv ist, wenn das "nackte" Ergebnis besser aussieht?
Ja, so ungefähr. Wir dürfen nicht vergessen, dass einer 44.1 kHz Datei gewissermaßen Daten entzogen sind. Nämlich von den unendlich vielen Samplingpunkte der analogen Aufzeichnung des Mikrofons, bis hinzu 44100 Einzelpunkte pro Sekunde. Da wird zwangsläufig etwas dazwischen fehlen ...

Dies versucht das "echte" Upsampling zu rekonstruieren und nützt dabei auch dem Datentransfer zum Wandler.
Und wie könnte ich prüfen, wie das "nackte" Ergebnis bei einem/meinem DAC aussieht?
??

Gruß Leif
Bild
Fortepianus
Aktiver Hersteller
Beiträge: 3692
Registriert: 17.12.2008, 12:41
Wohnort: Stuttgart

Beitrag von Fortepianus »

Hallo Uli,

vielen Dank für Deine anschauliche Darlegung des Upsamplings. Vielleicht fällt ja jetzt bei dem einen oder anderen der Groschen.

Ich möchte noch hinzufügen, dass bei den bisherigen Überlegungen die Eingangs- und die Ausgangsabtastrate genau bekannt war. Will man ein Upsampling von 44100Hz auf 88200Hz machen, wird genau ein neuer Abtastpunkt zwischen zwei vorhandenen eingesetzt. Dazu werden diese neuen Punkte zunächst auf Null gesetzt und dann wird das Ergebnis tiefpassgefiltert. Dazu braucht man genau ein passendes Filter.

Bisher haben wir also immer über synchrones Upsampling geredet, Upsampling um genau Faktor 2 oder 4 zum Beispiel.

Interessant wird es nun, wenn die Eingangsfrequenz bzw. das Verhältnis aus Ausgangs- und Eingangsfrequenz nicht genau bekannt ist, das Upsampling also asynchron erfolgt. Und das ist in der Realität eigentlich immer der Fall, wenn die Eingangsfrequenz und die Ausgangsfrequenz durch unterschiedliche Quarzschwinger festgelegt werden, deren Frequenzen immer eine gewisse Abweichung von der Sollfrequenz haben. Die Eingangsfrequenz wird also beispielsweise durch einen Quarz in einem Datenauslesegerät festgelegt, die Ausgangsfrequenz durch einen Quarz am DA-Wandler. Welches Filter nun benötigt wird nach dem Einfügen der Nullen, hängt nun vom genauen Frequenzverhältnis ab. Man halte sich bitte vor Augen, dass bei einem beliebig krummen Verhältnis die Abtastzeitpunkte des Eingangsdatenstroms ja gar nicht mehr vorkommen. Wieder ist es die Faltung mit einem passenden Filter, das die neuen Amplitudenwerte passend macht. Ein asynchroner Sampleratenkonverter (ASRC) ist also eine Faltungsmaschine, die zum Frequenzverhältnis das passende Filter bereit hält und die auf eine neue Zeitleiste aufgereihten Daten damit faltet. Ist das Frequenzverhältnis größer als 1, also die Ausgangsfrequenz höher als die Eingangsfrequenz, werden unbekannte Werte vor der Filterung mit Nullen gefüllt. Nach der Faltung mit dem passenden Tiefpassfilter sind die Amplitudenwerte entsprechend der neuen Zeitleiste richtig gesetzt - falls das Filter das richtige war.

Ein ASRC ist also eine Faltungsmaschine mit einer Filterdatenbank, aus der das passende Filter gezogen wird. Dazu muss aber erst mal das Frequenzverhältnis möglichst genau bekannt sein. Das ist alles andere als trivial! Man könnte dieses Verfahren als eine Art digitale PLL bezeichnen. Man will ja nicht das Frequenzverhältnis ständig anpassen, wenn das Verhältnis etwas zappelt - und das macht es natürlich, denn jede Taktflanke, sowohl die des Eingangs- wie die des Ausgangstaktes bringt ja einen Jitter mit. Also liegt die Kunst in der Langzeitfilterung des Verhältnisses, aber dennoch soll die Schaltung sich bei Umschaltung der Eingangsfrequenz schnell an die neuen Verhältnisse anpassen.

Ich wollte nur noch etwas zur Verwirrung beitragen :mrgreen: . Und vielleicht erhöht das ja auch ein wenig den Respekt vor den winzigen ASRC-ICs, die das alles an Bord haben: Faltungsmaschine, riesige Filterdatenbank und digitale PLL.

Viele Grüße
Gert
Bild
Ralf Koschnicke
Aktiver Hersteller
Beiträge: 374
Registriert: 22.07.2008, 11:24
Wohnort: Wöllstein
Kontaktdaten:

Beitrag von Ralf Koschnicke »

Besten Dank Uli für die ausführliche, sehr schöne Erklärung!

Eine Frage hätte ich nur noch: Sehe ich das richtig, dass sich nach dem Durchlaufen eines entsprechenden Filters jeder neue Abtastwert aus der Summe so vieler Werte zusammensetzt wie die Länge des Filters ist? Denn jedes Sample erzeugt durch die Filterung nun Ereignise vor und nach sich selbst und die überlagern sich den umliegenden Samples. Richtig?

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

Beitrag von uli.brueggemann »

play-mate hat geschrieben:Manchmal weiss ich nicht ganz ob du dich für oder gegen diese sinc-Filter aussprichst, aber es scheint mir dass es dämmert.... :cheers:
Bei wem? Ich habe alle meine Beispiele selbst immer mit sinc-Filtern gerechnet bzw. die sinc-Filter von diversen Programmen inkl. cPlay analysiert. Wer lesen kann ist im Vorteil. :D
play-mate hat geschrieben:Egal ob nun so oder so upgesampelt wird ...
Neie, nicht egal. Wenn es richtig werden soll, ist es eben nicht egal.

Gruss, Uli
Bild
axxxxx

Beitrag von axxxxx »

Leif, Uli, Gert,

das mit den fehlenden Daten, ist der Part, den ich noch verstanden habe und auch der Begriff interpolation sagt mir etwas.

Wenn ich das, auf die Linns bezogen, richtig verstanden habe, dann werfen diese im raw-Modus die ungesämpelten, nackten Daten aus. Und hier gibt es dann die Möglichkeit, nackt und aufgesämpelt zu vergleichen?

Die Art und Weise, wie abgesämpelt wird, wird mit einem internen Algorithmus festgelegt. D.h. wie die Lücken aufgefüllt werden, wird vom Entwickler definiert. Korrekt?

Ob das nun näher an der Wahrheit ist oder nicht, ist also mehr oder minder Glückssache. Wobei das von Stefan beschworene "Näher-dran" am analogen Vorbild, wenn es "analoger" klingt, somit auch nur Wunschdenken ist. Es klingt halt nur anders.

Gruß,
Kai
uli.brueggemann
Aktiver Hersteller
Beiträge: 4672
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

Ralf Koschnicke hat geschrieben:Sehe ich das richtig, dass sich nach dem Durchlaufen eines entsprechenden Filters jeder neue Abtastwert aus der Summe so vieler Werte zusammensetzt wie die Länge des Filters ist?
ja, das ist eine Eigenschaft der Faltung. Ein Signal der Länge s gefaltet mit einem Filter der Länge f ergibt ein Ergebnis der Länge e = s + f -1

Gruss, Uli
Bild
uli.brueggemann
Aktiver Hersteller
Beiträge: 4672
Registriert: 23.03.2009, 15:58
Wohnort: 33649
Kontaktdaten:

Beitrag von uli.brueggemann »

aston456 hat geschrieben:Wenn ich das, auf die Linns bezogen, richtig verstanden habe, dann werfen diese im raw-Modus die ungesämpelten, nackten Daten aus. Und hier gibt es dann die Möglichkeit, nackt und aufgesämpelt zu vergleichen?

Die Art und Weise, wie abgesämpelt wird, wird mit einem internen Algorithmus festgelegt. D.h. wie die Lücken aufgefüllt werden, wird vom Entwickler definiert. Korrekt?

Ob das nun näher an der Wahrheit ist oder nicht, ist also mehr oder minder Glückssache.
Kai,

wenn Linn 1:1 ausgibt, also 44.1 kHz mit 44.1 kHz, dann ist es bitgenau. Beim Upsampeln verwendet Linn ein sinc-Filter (was hier nun mittlerweile allen klar werden sollte, dass wir immer diese Filter vorfinden, auch wenn sie sich unterscheiden mögen).

In http://www.aktives-hoeren.de/viewtopic. ... 633#p34633 habe ich den ultimativen Test hinsichtlich Vergleichbarkeit aufgezeigt. Wenn man nach 176.4 upsampelt und dann wieder nach 44.1 zurück, dann sollte idealerweise das Ursprungssignal wieder rauskommen. Wenn sich das Signal ändert, dann ist das Verfahren nicht perfekt. Logisch? Zumindest sollte dann das Ergebnis dem Ursprungssignal so nahe wie möglich kommen. Je näher umso besser.

In http://www.aktives-hoeren.de/viewtopic. ... 661#p34661 habe ich noch das Ergebnis seitens Linn nachgereicht.

Und ja, der Entwickler definiert eben, wie er die Lücken auffüllt. Und ja, es ist Glückssache, zumindest für den Anwender, was sich letztendlich ergibt, weil er ja mit dem Leben muss, was er vom Entwickler vorgesetzt bekommt. Und nein, es ist keine Glückssache, ob man mehr oder weniger an der Wahrheit ist, es ist schlichtweg abhängig davon, was der Entwickler festlegt.

Wichtig ist IMHO der folgende Gedanke:
das Upsampling rekonstruiert ein bereits vorhandenes bandbreitenbegrenztes Signal. Es gibt zu dem vorliegenden Signal genau ein einziges analoges Signal, welches für alle Samplerates gültig ist, welches aber nur Frequenzen bis maximal fs/2 der ursprünglichen Abtastrage aufweist.
Das Upsampling rekonstruiert nicht das ursprüngliche analoge Signal, weil dessen Informationsanteil über fs/2 durch die erste Abtastung verlorengegangen ist.
Wenn das Upsampling nicht ordnungsgemäß durchgeführt wird, entstehen zusätzliche Artifakte und man entfernt sich definitiv weg von der Wahrheit.
Und - die Anstrengungen aller Entwickler, so sie etwas von der Materie verstehen, zielt darauf ab, dass das Endergebnis sich als positives Hörergebnis niederschlägt, dabei aber der Aufwand in einem gegebenen Rahmen bleibt. Nur aus diesem Grund gibt es kein Einheitsgerät und die Klangunterschiede.

Gruss, Uli
Bild
play-mate
Aktiver Hörer
Beiträge: 448
Registriert: 26.02.2010, 08:18
Wohnort: Berlin

Beitrag von play-mate »

Hallo Gert,

Ist es denn nicht so, dass der Einsatz von dieser Interpolations Technik einen asynchronen Sampleratekonverter (ASRC Chip) im DAC eben überflüssig macht?

Ich kenne mehrere DACs, die (mit oder ohne ASRC) einfach die Samplingrate (auch z.B. 88.2/176.4 kHz) annehmen, die vorliegt, ohne nochmals etwas zu konvertieren.

Gruß Leif
Bild
Antworten