HIFI-FORUM » Stereo » Elektronik » CD-/SACD-Player & andere digitale Quellen » Noise Shaping wie funktioniert das? | |
|
Noise Shaping wie funktioniert das?+A -A |
||||
Autor |
| |||
weakbit
Stammgast |
#1 erstellt: 18. Jan 2021, 11:24 | |||
Hallo, ich möchte wissen wie 'Noise Shaping' funktioniert? An Hand meines Sony Players CDP-X33ES der einen eigebauten 45bit Noise Shaper besitzt habe ich noch nichts genaues erfahren wie das Funktioniert. Was ich bis Jetzt verstanden habe ist: Die CD wird abgetastet und es kommen aus der CD 44,1kHz Samles je Kanal und 2 Kanäle gibt es. Bei einem 1fach Sampler ist das genau die Frequenz mit der die Daten ausgelesen werden. Bei einem 2fach Oversampler wird zwischen zwei Sample Punkten ein weitere eingefügt somit ist die Abtasfrequenz doppelt so hoch. Der Delta/2 Zwischenwert wird dann künstlich erzeugt. Bei einem 4fach Oversampler sind da dann zwischen zwei Samples + 3 Punkte die zwischen den 2 Samples stehen und künstlich erzeugt werden. Nun hat das Signal aber noch immer das Problem das es Stufen in sich hat und wenn man diese Kanten nach Furie zerlegt sind das durch die Harmonischen immer wieder Hochfrequente Störungen die im Signal sind. Man kann Sie zwar nicht hören weil dann ein Tiefpassfilter nach der DAC Wandlung ist aber es gibt eine Signaluntreue die sich in einem Phasenrauschen bemerkbar macht und somit ist das Signal verwaschen. Wenn man nun eine Vertikale Auflösung von mehreren Vielfachen macht (16bit + 29bit = 45bit) so kann man das Vetrtikal Signal hoch kranulieren (im 1/(2^45)) fast bis in die Unendliche Unterteilung und in der Zeitachse in den Megahertz Samples die man hier künstlich einfügt durch Berechnung des Delta/2 zwischen jeden Punkt. Damit schiebt man die Rauschenergie aber in den Megahertzbereich und kann mittels einfacherem Tiefpassfilter das Phasenrauschen so weit weg aus dem Hörbaren Bereich schieben das man dieses Phasenrauschen nicht mehr wahrnehmen kann. Kann mir irgend Jemand erklären warum dann das Phasenrauschen sich weil es in den Megahertz Bereich verschoben ist nicht mehr als Energie am Hautpsignal dem Audiosignal liegt? Eventuell wie man das auf einem PC rechnet mit einem C Beispiel wäre nett? |
||||
Buschel
Inventar |
#2 erstellt: 19. Jan 2021, 08:21 | |||
Ich versuche das mal in wenigen Sätzen zu erklären. 1. Oversampling: Es werden auf der Zeitachse Zwischenwerte berechnet. Der Sony mag dafür eine interne Rechengenaugikeit von 45 Bit verwenden. Das ist der 32 Bit oder 64 Bit Genauigkeit vergleichbar, die ein PC üblicherweise benutzt. 2. Quantisierungsrauschen: Bei der jeder Begrenzung der Auflösung (also Übergang von hoher Auflösung wie z.B. 16 Bit auf 8 Bit) entsteht Quantisierungsrauschen. Dieses ist im Normalfall "weiß", d.h. konstant über die Frequenz. 3. Noiseshaping: Das Quantisierungsrauschen aus 2) kann eingefärbt/geformt werden. Dabei kann dem Rauschen (in Grenzen) jede beliebige spektrale Form gegeben werden. Noiseshaper haben dabei eine sogenannte "Ordnung". Je höher die Ordnung, desto stärker lässt sich das Rauschspektrum formen. Beispiel 1: Sony Super-Bit-Mapping (SBM) CDs schieben das Rauschen in weniger empfindliche Bereiche des Gehörs, ohne Oversampling. Beispiel 2: Sämtliche sogenannte 1-Bit, Bitstream oder Pulse Wandler nutzen sehr hohes Oversampling und schieben das Rauschen dann in den unhörbaren Hochfrequenzbereich. 4. Konkret zu Sony: Ich meine die Sony-Wandler waren Wandler mit 7 Pulsbreiten (etwa 3 Bit) und 64-fachem Oversampling, d.h. es entsteht ein recht starkes Quantisierungsrauschen (45 Bit intern > 3 Bit Pulsbreite), das dann mit einem Noiseshaper höherer Ordnung geformt wird. 5. Implementierung / Code: // Ohne NoiseShaping int32 x_in; int32 x_out = ((int32)x_in / 256) * 256; // Reduktion der Auflösung um 8 Bit // Mit NoiseShaping, es wird der vorherige Rundungsfehler mit einem Faktor rückgeführt int32 x_in; int32 x_out, x_preout; int32 error_t1; float f1; // Konstante für die Rauschformung while (bla) { x_preout = (int32)(x_in - f1*error_t1); x_out = (x_preout / 256) * 256; // Reduktion der Auflösung um 8 Bit error_t1 = x_out - x_preout; } / Mit NoiseShaping 2. Ordnung, es werden die 2 vorherigen Rundungsfehler mit einem Faktor rückgeführt int32 x_in; int32 x_out, x_preout; int32 error_t1, error_t2; float f1, f2; // Konstanten für die Rauschformung while (bla) { x_preout = (int32)(x_in - f1*error_t1 - f2*error_t2); x_out = (x_preout / 256) * 256; // Reduktion der Auflösung um 8 Bit error_t2 = error_t1; error_t1 = x_out - x_preout; } Die Ordnung lässt sich weiter erhöhen. Es kommt aber zu Seiteneffekten je höher die Ordnung gebracht wird. [Beitrag von Buschel am 19. Jan 2021, 11:51 bearbeitet] |
||||
|
||||
weakbit
Stammgast |
#3 erstellt: 19. Jan 2021, 15:14 | |||
@Buschel, vorab einmal Danke für die Antwort. Ich verstehe das der je Sample Wert die Sample Höhe um die doppelten bits erhöht um dann den Error (das ist der Rundungsfehler in der Rechnung selbst wegen dem float) dann wieder abzieht und durch die Umwandlung nach 16bit die Genauigkeit besser ist. Punkt 2) Da verstehe ich das f1 (irgend ein Wert) mit dem Error rekursiv in das Siganl zurück gekoppelt wird. Aha Das muss ich mir erst durch mein kleines Hirn durchsickern lassen aber es ist schon ca. klar was die da machen. Sie schieben das rauschen eigentlich in die Fehler Korrektur hinein. Habe ich das richtig verstanden? Punkt 3) ist eine Infinite Funktion die wird praktisch nie fertig und korrigiert sich auf Ewig immer selbst. Wenn man das noch weiter spinnt kommt es zum Perfekten Signal - das ja eigentlich erwünscht aber unmöglich ist. Danke das ist eine Super Antwort ich muss mir das nochmal zum Verständnis durch kauen. Bin leider kein Mathematiker! |
||||
Sal
Inventar |
#4 erstellt: 19. Jan 2021, 20:20 | |||
Soweit ich es begriffen habe, existieren keine "Treppen" in einem digitalen Audio-Signal, weil der Strompuls, der den Dac verlässt, sehr kurz ist. Ein Strom/Spannungswandler/Tiefpassfilter verbindet diese Pulse zum Audiosignal-nicht gradlinig sondern kurvenförmig. Wieso eigentlich? Denn beim bei klassischen R2R reicht dazu -extrem vereinfacht gesagt- ein Widerstand mit Kondensator als Tiefpass...? |
||||
Buschel
Inventar |
#5 erstellt: 19. Jan 2021, 21:56 | |||
@weakbit, nimm dir ein wenig Zeit das Thema zu durchdringen und auch weiter im Netz zu suchen. Es gibt zu NoiseShaping jede Menge Material und auch Schaubilder.
Wahrscheinlich verwirrt dich das Hin- und Herrechnen mit /256 und *256. Man kann das viel einfacher an einem Beispiel durchgehen. Nimm an du hast die konstante Zahl 0,3. Diese geht jetzt in eine Quantisierung mit NoiseShaper 1. Ordnung. Der Quantisierer kann nur -1, 0 und +1 ausgeben. Runde 1: x_in = 0.4 -> x_preout = 0.4 - 0.0 -> x_out = 0 -> error = -0.4 Runde 2: x_in = 0.4 -> x_preout = 0.4 + 0.4 -> x_out = 0 -> error = -0.8 Runde 3: x_in = 0.4 -> x_preout = 0.4 + 0.8 -> x_out = 1 -> error = -0.2 Runde 4: x_in = 0.4 -> x_preout = 0.4 + 0.2 -> x_out = 0 -> error = -0.6 Runde 5: x_in = 0.4 -> x_preout = 0.4 + 0.6 -> x_out = 1 -> error = 0.0 usw. Es ergibt sich daraus eine Folge von x_out -> 0 0 1 0 1 ..., die im Mittel den Sollwert 0.4 erreicht und dabei wild herumzappelt. In diesem "Gezappel" steckt das spektral geformte Rauschen. Die Rückführung des Fehlers merzt diesen im Mittel aus.
Das stimmt so nicht ganz, und wahrscheinlich vermischt du hier verschiedene Dinge. Ja, in einem natürlichen Audiosignal gibt es keine Treppen. Aber gerade R2R Wandler geben erst einmal Treppen aus, weil sie aus dem mathematischen Signal mit unendlichen schmalen Pulsen wieder ein kontinuierliches Signal machen müssen. Wichtig ist, dass dieses treppenartige Signal noch analog gefiltert werden muss, weil die Treppen eigentlich nur durch ungewollte Frequenzanteile (sogenannten Aliasing) entstehen. Wenn die entfernt werden, wird das Signal wieder "glatt". Bitstromwandler (Pulse, 1Bit, ...) haben -- vereinfacht gesprochen -- nur den Wert 0 und 1 und schalten diese in unterschiedlicher Dauer und hoher Geschwindigkeit an und aus. Das ist eine Art Dichtemodulation und keine Treppe mehr. Nach einem analogen Filter sieht das wieder so aus wie bei einem R2R DAC. |
||||
weakbit
Stammgast |
#6 erstellt: 20. Jan 2021, 13:02 | |||
Da hast du Recht ich stelle mir vor das es sich um eine Format Wandlung handelt. Wie '>>8' (shift right 8*) und dann '<<8' (shift left 8*) Ich komme da aber auch auf kein Formatwandel den das Ergebnis ist das selbe wie am Ausgang Das verstehe ich nicht.
Das schaut aus wie ein 'Bresenham' Algorithmus (Der Regelt immer wenn es halt 0,5 überschreitet und dann nicht wenn es unterschritten wird) und das verstehe ich jetzt auch. Im Prinzip wird entgegen des Fehler gezappelt so ich da sehe. Bei R2R ist jeder Puls ein Disaster in der Oberwelle die man dann mit irgend einem schlechten Filter R/C abrundet aber das ist keine Lösung da gefällt mir der Noise Shaper schon um Ecken besser den er bekämpft das Problem an der Wurzel. Haha Wurzel Hertz |
||||
Buschel
Inventar |
#7 erstellt: 20. Jan 2021, 15:10 | |||
Der Trick dabei ist, dass ((x>>8)<<8) eben nicht gleich x ist. Die Aktionen >>8 und <<8 werden nacheinander auf eine int-Variable angewendet. Beispiel: 258>>8 = 1, 1<<256 = 256. Der Fehler ist -2. Wenn man nicht wieder auf die originäre Größe zurückgeht, bekommt man vollkommen falsche Fehlergrößen.
So ungefähr. Und wie stark es zappelt, und wie das spektral geformt ist, hängt von den Parametern ab, mit denen die rückgeführten Fehler gewichtet werden. Das lässt sich berechnen und auf einen ganz bestimmten Verlauf hin designen.
Bitstromwandler haben andere Probleme wie z.B. schwingende oder übersteuernde NoiseShaper, oder den höheren Störsignalanteil im Hochfrequenzbereich (denn dahin wird ja das Rauschen verschoben). |
||||
weakbit
Stammgast |
#8 erstellt: 21. Jan 2021, 09:20 | |||
Verstehe wenn ich shifte dann fällt der 8te Wert raus (er ist nicht umkehrbar) und somit ist es nicht mehr Rückgängig machbar also durch 256 dividieren und dann mit 256 multiplizieren.
Noch eine andere Frage kann ich einen Noise Shaper selber in C schreiben? Das Problem ich kann Assembler auf dem AVR aber meine C Kenntnisse sind nicht so besonders auf dem PC - ich habe da wenig bis gar keine Erfahrung aber ich will so einen Noise Shaper schreiben. Also ein Siganl vorher das dann in ein Signalnachher gewadnelt wird. Offline Audio Converter. Kannst du dir das vorstellen was ich da machen will? Ich möchte mir meinem PC ein wav (RIFF, AIFF) in ein Noiseshaped file umwandeln für meine 24bit Soundkarte. Das ich den gleiche Sound wie von meinen X33ES CD-Player erreiche. Das ist jetzt ja nicht so wenn ich ein CD file abspiele. [Beitrag von weakbit am 21. Jan 2021, 09:34 bearbeitet] |
||||
Passat
Inventar |
#9 erstellt: 21. Jan 2021, 11:26 | |||
Ohne analoge Filterung am DAC-Ausgang sieht man tatsächlich ein treppenförmiges Signal. Von Yamaha gab es mal einen CD-Player, der 2 Ausgänge hat, den CDX-1110. Der erste hat einen analogen Filter am DAC-Ausgang, der zweite nicht. Am ersten sieht man eine schöne Kurvenform, am zweiten Treppenstufen. Bei den meisten DAC-Chips ist der Analogfilter schon im Chip verbaut. Grüße Roman |
||||
Buschel
Inventar |
#10 erstellt: 21. Jan 2021, 12:38 | |||
Siehe meine erste Antwort.
Warum willst du so etwas selbst schreiben? Wenn es zum Lernen ist, ok. Ansonsten gibt es dazu Tools, die das machen und auch noch sehr flexibel konfigurierbar sind. Ich nutze z.B. sox unter Linux. Aber: Mit NoiseShaping kannst du nicht den Sound deines X33 nachahmen oder irgendwie den Sound verändern. Da spielen ganz andere Faktoren eine Rolle. |
||||
weakbit
Stammgast |
#11 erstellt: 21. Jan 2021, 16:22 | |||
@buschel - eine Klangnachbildung des X33 wäre super aber das geht wahrscheinlich nicht denn da spielt die ganze Hardware eine entscheidende Rolle. Wie z.B. die JRC Operationsverstärker die Koppelkondensatoren und und und... Ich will kein fertiges tool verwenden ich will da selber herumspieln aber sox ist ein Tipp. Muss man da auf irgendwas aufpassen und ist der im PPA? Komisch nur den habe ich aus welchem Grund auch immer bereits installiert??? Häää desktop ~ $ sox -? sox WARN getopt: option `?' not recognized sox: SoX v14.4.1 sox FAIL sox: invalid option Usage summary: [gopts] [[fopts] infile]... [fopts] outfile [effect [effopt]]... OK Danke einmal hast du eine Idee wie man den X33 nachmachen kann? Ich bin ein Fan von diesem Gerät und habe mir einen 2. defekten gekauft der steht jetzt hier leider ist der DAC defekt so bestellte ich einen neuen CXD2552Q im QFP Gehäuse. Recaping (alle Elkos neu) habe ich bereits gemacht da sind fast alle Lila/Rosa Elkos ausgeronnen gewesen. Dann geht auf Pin 15/16 das Digitale signal rein und der Clk auch auf einem Nachbar Pin aber Tot auf L&R out! Die Leiterplatte mit Aceton gereinigt das war eine Putzerei denn das Elektrolyt ist leitend und da musste ich putzen. Nun mein Pech ich bestelle auf eBay den CXD2552q der sagt mir nach Eingang der Zahlung einen Tag später das er den Chip in seinem Lager nicht findet doch dann gleich auf Ali dort den Chip für USD13,- mit Porto - hoffe das der jetzt kommt. |
||||
Buschel
Inventar |
#12 erstellt: 21. Jan 2021, 18:19 | |||
Dann mal viel Erfolg mit sox und dem Herumspielen. Damit wie man eine X33 nachahmen kann kann ich dir nicht weiterhelfen. Aber wie gesagt, mit NoiseShaping hat das mit Sicherheit nichts zu tun. Wenn du an dem Gerät so hängst (ich kann das verstehen, ich hatte auch viele Jahre einen X555), würde ich wohl versuchen per SPDIF an einen neuen DAC zu gehen. |
||||
weakbit
Stammgast |
#13 erstellt: 21. Jan 2021, 19:04 | |||
Hast du Vorschläge für einen Echt guten DAC? Kann auch selbstbau sein. Ich habe einen VSX921 aber der hört sich auf den Boxen auch nicht so Super an sondern eher "Nicht Transparent" eben nicht so wie der X33. Warum hast du deinen X555 weggegeben? Ich habe mir deshalb so einen gebrauchten X33 gekauft da ich an den CDs die habe so hänge und was ist wenn ich keinen mehr bekomme der so klar im Klang ist? Denn die MP3 und auch anders gespeicherten Sounds klingen einfach nicht so. Möglich auch das ich alles falsch höre das habe ich mir auch schon gedacht oder bin ich ein Nostalgieger der dem Zeitgeist nicht folgen kann? Ich wollte eigentlich immer das neueste bis dann MP3 gekommen ist da habe ich mir gleich Tausende Lieder aufgenommen und dann hat mir irgend so ein Typ diesen alten CD-Player X33 verkauft für €40,- weil der Klang so verzerrt war - die Transistoren Q401 & Q501 die für das Muting zuständig waren sind defekt gewesen die habe ich ausgebaut und dann einmal gehört wie ein sehr Guter CD-Player klingt. Seit dem kann ich nur noch CDs hören! Auch noch so gute Aufnahmen aus Youtube sind in meine Ohren nicht sehr transparent. Ich habe auch eine 24bit externe Soundkarte Behringer UMC204 die geht ausgezeichent aber die Quellen sind es halt die man nicht bekommt. Wie geht es dir damit? |
||||
Buschel
Inventar |
#14 erstellt: 21. Jan 2021, 19:14 | |||
Der X555 war defekt. Ich habe den letztlich an einen "Bastler" verkauft, wahrscheinlich ähnlich wie du an eine gekommen bist. Mittlerweile höre meine CDs gerippt über einen Mini-PC, als FLAC. Man muss nur für sich selbst festellen, ob man das mag. Ich habe erst gezweifelt, höre aber immer noch die Alben durch und vermisse den CD-Player nicht. |
||||
|
|
Das könnte Dich auch interessieren: |
Aqvox USB Low Noise Netzteil 8Quibhirfd8 am 17.06.2015 – Letzte Antwort am 18.06.2015 – 4 Beiträge |
CD Player Tuning funktioniert tatsächlich mgmk1 am 03.03.2004 – Letzte Antwort am 05.03.2004 – 7 Beiträge |
Yamaha CD-N301 und CD-N500: Wie funktioniert der Netzwerkplayer? PhantomiasDuck am 03.10.2016 – Letzte Antwort am 03.04.2020 – 10 Beiträge |
Toslinkverbindung funktioniert nicht Quasar0815 am 12.03.2009 – Letzte Antwort am 12.03.2009 – 4 Beiträge |
Qobuz Software und Bluesound Node 2 - wie funktioniert es? thelivingyears am 13.07.2017 – Letzte Antwort am 15.07.2017 – 4 Beiträge |
Burmester 939 cd Einzug funktioniert nicht Bene_ am 18.05.2021 – Letzte Antwort am 19.05.2021 – 3 Beiträge |
TosLink Ausgang am CD Player funktioniert nicht Austin_p am 01.05.2005 – Letzte Antwort am 02.05.2005 – 4 Beiträge |
Warum Funktioniert dieser CD-Player nicht? eger am 31.03.2006 – Letzte Antwort am 02.04.2006 – 10 Beiträge |
IPhone via DAC anschließen. wie geht das? boulevard100 am 24.11.2010 – Letzte Antwort am 18.12.2010 – 6 Beiträge |
Wie Technics SL-PG490 leiser machen? m@ces am 01.11.2009 – Letzte Antwort am 06.11.2009 – 24 Beiträge |
Foren Archiv
2021
Anzeige
Produkte in diesem Thread
Aktuelle Aktion
Top 10 Threads in CD-/SACD-Player & andere digitale Quellen der letzten 7 Tage
- Wie viel Sinn machen 32 Bit, 192 kHz und 384 kHz?
- Musik CD abspielen mit BluRay Player
- Laufwerksgeräusche von CD-Playern
- Klangverlust durch XLR auf Cinch?
- Bluesound Node + ext Netzteil Teddy Pardo
- Was tun , wenn CD nicht erkannt wird?
- CD-Wiedergabe - knistern etc
- Panasonic SC-PM02 erkennt USB-Stick nicht
- Wann wird Jitter hörbar? Und kann man Digitalgeräte mit hörbarem Jitter tatsächlich kaufen?
- Marantz SA 11 S3 oder Ruby KI
Top 10 Threads in CD-/SACD-Player & andere digitale Quellen der letzten 50 Tage
- Wie viel Sinn machen 32 Bit, 192 kHz und 384 kHz?
- Musik CD abspielen mit BluRay Player
- Laufwerksgeräusche von CD-Playern
- Klangverlust durch XLR auf Cinch?
- Bluesound Node + ext Netzteil Teddy Pardo
- Was tun , wenn CD nicht erkannt wird?
- CD-Wiedergabe - knistern etc
- Panasonic SC-PM02 erkennt USB-Stick nicht
- Wann wird Jitter hörbar? Und kann man Digitalgeräte mit hörbarem Jitter tatsächlich kaufen?
- Marantz SA 11 S3 oder Ruby KI
Top 10 Suchanfragen
Forumsstatistik
- Registrierte Mitglieder927.724 ( Heute: 1 )
- Neuestes MitgliedHirumael
- Gesamtzahl an Themen1.556.310
- Gesamtzahl an Beiträgen21.656.438