Moin René,
Also, soweit ich das sehe hat SPDIF keine Fehlerkorrektur, nichtmal einen festen Clock.
Es hat keine Fehlerkorrektur im herkömmlichen Sinne, sondern nur eine Parität über ein Kanal-Frame. Einzelne Bitfehler sind also erkennbar, aber nicht korrigierbar.
Einen festen Clock hat der Sender und auch der Bus, sonst würde es nicht funktionieren. Was heißt in diesem Kontext überhaupt "fest"...exakt Samplefrequenz*Bits*n? +/-1%...+/-0.1%, oder +/-1ppm? Auch geringste Abweichungen zwischen je einer festen Sender- und Empfängerclock würden bei einem Stream ohne Zeit zum Puffern früher oder später zum Verlust kompletter Pakete bzw. zu schweren Fehlern führen. Die Empfängerclock kann von da her gar nicht fest sein.
Das Signal wird nicht über Vergleich des Pegels mit Schwellwerten erkannt, sondern durch Übergänge von niedriger zu höherer Spannung und zurück. Siehe dazu schon Wikipedia. Somit ist das Signal theoretisch schon recht anfällig für Jitter, denn im Empfänger muss ein Reclocking erfolgen bzw. die Samplingrate (indirekt durch den zu ermittelten Clocksignal) aus dem Signal erkannt werden.
Das Signal wird schon über Pegel erkannt, aber nicht über Pegel während des Bits, sondern z.B. über zwei Pegel pro Bit, je am Anfang und am Ende. Das erlaubt es in jedem Bit die Clock mitzuschicken, egal ob tausend Nullen hintereinander kommen (bei NRZ-Codierung wäre hier die Clock nicht mehr rekonstruierbar), oder tausend Einsen, oder irgendwas anderes. Die Anfälligkeit für Jitter ist so also sogar geringer als anders, weil die Clock immer präsent ist, oder anders gesagt, mehr Clock pro Zeit zum mitteln. Aber dazu unten mehr.
Es gibt keine Info im Frame welche Samplingrate verwendet wird.
Es gibt zwei Bit für 44,48 oder 31kHz. Wäre aber eigentlich gar nicht unbedingt nötig, s.O.
Es gibt keinerlei Rückkanal, keine Wiederholung verlorener Frames, nichts. Jitter kann also, je nachdem was der Empfänger mit dem Eingangssignal anfangen kann, schon dazu führen das es z.b. eine Art Rauschen gibt, je nach Implementierung auch schon durch das Reclocking. Idealerweise ist das Signal ähnlich Dithering verrauscht, aber im Zweifel kann es genausogut störend wirken. Wenn man gezielt z.b. nach "SPDIF error correction" und ähnlichen Begriffen sucht findet man da auch viel tiefere Infos. Wenn es beim Wellenwiderstand nun Probleme gibt kann es durchaus zu Jitter-ähnlichen Effekten kommen, die je nach Implementierung des Empfängers unterschiedlich, auch durchaus hörbare, Effekte haben können. (...)
Ja, das ist der Teil der interessant ist und mich auch beschäftigt.
Implementiert wird das ganze über eine PLL im Empfänger, muss ja. Sonst würde es, wie gesagt, nicht sicher funktionieren. Die PLL wird während des ersten Frames von Hilfssysteme, die verhindern dass sich die PLL auf ein n-tel der Frequenz synchronisiert, auf die Clock geführt. Dann synchronisiert sie sich. Die Frequenz mit der sich die PLL ändern kann ist per Hardware beschränkt. Die Empfänger bieten für die weitere Verarbeitung per DAC o.ä. Ausgänge für die rekonstruierte Clock.
Das heißt, die PLL läuft mit dem Mittelwert der Bitrate über so viele Frames wie es durch die Hardware vorgegeben ist. Die Designbeispiele die ich gefunden habe haben -3dB bei ein einem Stück über 20kHz (Anmerkung: Das hat nichts mit der übertragenen Signalbandbreite zu tun!), vermutlich um einen "Lock" der PLL innerhalb von einigen Millisekunden zu gewährleisten.
Das heißt, Jitter der im Frequenzbereich der Bitrate kommt, egal woher, wird mit einigen 10dB unterdrückt. Muss er ja, sonst könnten die Bits nicht sicher erkannt werden. Jitter mit niedriger Frequenz wird kaum oder nicht unterdrückt. Sollte das nicht wie gedacht funktionieren passiert das was ich oben schon schrieb...alle Bits können Salat werden, jedes Audiobit und sonst auch alles. Das heißt, die ganze Bandbreite von gut hörbaren Störungen wird passieren.
Aber was heißt das nun für die Kabel und Stecker im Bezug auf Anpassung...
Kabel und Stecker können theoretisch je nach Anpassung veränderte Zeitverhältnisse erzeugen, kommt drauf an wie der Empfänger die Flanken erkennt, ob die Schwellen symmetrisch sind und ob er HL-Übergänge genau wie LH-Übergänge bewertet und was vorher war (Edit: ->Intersymbolinterferenz). Das sind alles Fehler die sich im Bereich der Bitrate abspielen, und damit von der PLL stark unterdrückt werden. Stark unterdrückt heißt nicht völlig entfernt...aber Jitter mit Bitraten-Frequenz hat auch auf die Interpretation im DAC erst mal keinen weiteren Einfluss, weil ja auch hier erst mal der Puffer mit dem entsprechenden Wort gefüllt wird, bevor gewandelt wird.
Erst dann wenn der DAC keine eigene Taktaufbereitung mehr hat, und ein einfach heruntergeteilter Bittakt aus dem S/PDIF-Receiver den Zeitpunkt festlegt zu dem der gewandelte Wert in den Analogausgang des DAC geschrieben wird könnte es theoretisch passieren dass eine Flanke des S/PDIF-Signals incl. Übergang einen Einfluss auf die Wandlung des DAC hat. Nutzt man dazu aber z.B. das 4Bit-Präambel am Anfang jedes Frames gibt es kein Problem, weil darin alle Übergänge definiert und jedes mal gleich sind. (Edit:Gerade gesehen - der TI DIR9001 scheint genau das zu machen, was ja auch Sinn macht.)
Also, zusammengefasst...wenn der Empfänger ungleiche Schwellen für LH und HL hat, gleichzeitig der DAC keine eigene Taktaufbereitung hat und eine Flanke die keine definierte Richtung hat für den setzen des neuen DAC-Wertes benutzt wird, DANN
könnte ich mir vorstellen dass verschieden angepasste Kabel ein verschiedenes Rauschen ins Ausgangssignal bringen...aber in einem Frequenzbereich, einer Bandbreite und einer Amplitude dass es nicht aus dem Gerät kommen wird und bestenfalls zu messen ist.
Niederfrequenter Jitter der im Hörbereich passiert und sehr viel wahrscheinlicher bis ins Analogsignal "durchschlägt", kommt sicher nicht aus dem Kabel, sondern aus dem Sender.
Über Kommentare, Korrekturen oder Ergänzungen dazu würde ich mich freuen!