Hallo Kollegen, Angeregt durch den Thread unten über Clipping stelle ich mal generell die Frage, wie man eigentlich genau digitale Übersteuerungen definiert. Wenn der analoge Signalpegel so groß ist, daß bei der jeweiligen Wortbreite alle Bits "1" oder "0" sind - sprich: der Wertevorrat voll ausgeschöpft ist - ist Vollaussteuerung erreicht. Wie aber erkennt z.B. ein digitaler Aussteuerungsmesser bei einem bereits digtial vorliegenden Signal (was ihm z.B. über eine AES/EBU eingespeist wird) ein "Over" ?. Wie soll man definieren "wann" ein Signal im "over" ist?. Beim analogen Signal kann man es genau definieren: Überschreitet ein Signalpegel einen bestimmten Nominalwert, wird dies als Übersteuerung gewertet. Bei UKW-Sendern wenn der festgesetzte Frequenzhub überschritten wird, und bei AM-modulierten Sendern wenn der Träger gerade anfängt auszusetzen. All diese Kriterien sind beim digitalen Signal nicht definiert. Wenn der Wertevorrat erschöpft ist, ist Schluß. Bei dem HDR-System "SADiE" wird z.B. in dem virtuellen Mixer genau angezeigt um wieviel dB das System übersteuert wurde. Woran aber erkennt das das System? Hat jemand da eine Antwort drauf?
Lieber Rainer, ich nehma mal an dass das System selbst mit einer höheren Wortbreite arbeitet. Da dadurch mehr Schaltzustände möglich sind, kann dir das System auch genauere Angaben machen - allerdings dürfte das nur bei analogen Aufnahmen (1. mal wandeln) funktionieren, bei einer bereits digitalen "abgeschnittenen" Aufnahme - woher soll er die Daten nehmen?! Soweit ich auch weiss gilt aber ein digitales Signal bereits als "Over" wenn es theoretisch erst vollaussteuerung hat, i.e. 0dBFS wäre dann bei 16 Bit Hausnummer 1111111111111110, clip wäre dann theoretisch 1111111111111111.... So funktioniert zumindest die Clip-Anzeige hab ich mir mal erklären lassen. Aber ganz so sicher bin ich mir da selbst nicht, vielleicht findet wer genaueres? werde auch nachforschen... Herzlichen Gruß Georg
Zur AES/EBU Schnittstelle: Das empfangende Gerät kann natürlich keine Übersteuerungen feststellen, die schon beim Sender entstanden sind. Trotzdem zeigen die meisten HD-Systeme ein Signal, bei dem alle Bits gesetzt sind als Clipping an (wie schon erwähnt, muß ja mindestens ein Bit vorher (1...1110) die Grenze gesetzt werden). Zur Übersteuerungsanzeige: Normalerweise ist die Rechengenauigkeit eines HD-Systems deutlich höher als die eigentliche Audio-Wortbreite. Es müssen ja diverse Rechenoperationen durchgeführt werden, die fast immer größere Ergebnisse zur Folge haben (Z.B. zwei Kanäle addieren). DSPs sehen dafür oft schon Abfangmöglichkeiten vor (Stichwort Saturation, d.h. der DSP nimmt das Ergebnis und paßt es ganz friedlich an die Wortbreite an). Wenn SADiE die Übersteuerung angibt ist das sehr gut, die meisten "ziehen pauschal die Summe runter" (sie teilen durch einen festen Faktor oder bauen diese Saturation ('Limiter, Leveller') ein). Man darf dem Benutzer ja nicht zuviel zumuten ;-) Gruß Christoph
1. Genau genommen kann ein digitales System nicht übersteuert werden. Maximal voll ausgesteuert. Soll es höher ausgesteuert werden clippt es, d.h. es weigert sich hartnäckig höher ausgesteuert zu werden. 2. Die grösste 16 bit zahl bei vorzeichen(!)-behafteten Integerzahlen ist: 01111111111111111 == 0x7FFF (Hexadezimal) == 32767 (dezimal) die Zahl 1111111111111111 == 0xFFFF (hexadezimal) entspricht der Zahl -1 D.h alle bits sind schon dann gesetzt wenn kein Signal anliegt aber die letzt Stelle schwankt! 3. Intern arbeiten alle heutigen (Sadie?) Audioverabeitungsmaschinen mit höherer Auslösung. Nämlich mit 32bit-Fliesskommazahlen. Der Wertebereich geht etwas von -10^37 bis +10^37. D.h. man kann deutlich höhere Zahlen als (2^n)/2 darstellen. Anschliessend werden diese Fliesskommazahlen wieder in Intergerzahlen gewandelt. Das System kann dadurch durchaus erkennen ob das prozessierte Signal drüber liegt und wieviel dB drüber.
Richtig: bei der die grösstmögliche und/oder kleinstmögliche Zahl erreicht ist. Lösst euch von der "bit"-Vorstellung. Siehe oben oder im Archiv. Zu den Abfangmöglichkeiten der DSPs kann ich nix sagen. Denke aber mal dass das programmierungsabhängig ist. D.h. es existiert kein Automatismus. Ich denke auch nicht das DPS automatisch selbstständig den Pegel anpassen sollten. Das sollte maximal von einem Compressor/Limiterprogramm erfolgen das von den DSPs gerechnet wird. Richtig ist allerdings, dass digitale System intern mit höherer Auslöung arbeiten. DSPs arbeiten auch mit Fliesskommazahlen (z.B. shark mit 32bit). Wenn der Algorithmus entsprechende geschreiben ist, können auch höhere Auslöungen darauf gerechent werden. (ein 8bit Processor/Controller kann ja auch grössere Zahlen verabeiten, nur eben nicht in einem Schritt)
"Lösst euch von der "bit"-Vorstellung. Siehe oben oder im Archiv." Ich halte es für sehr gefährlich sich von der Bitvorstellung zu lösen. Natürlich weiß ich, wie die Zweierkomplementdarstellung in der Berechnung funktioniert. Und daß mein Beispiel für negative Zahlen war, ist ja nicht weiter schlimm... Es gibt übrigens auch sehr viele DSPs die mit Festkommazahlen arbeiten (weil billiger). Und die Saturation kann man in der Tat auch abschalten, aber in vielen Algorithmen wird sie benutzt, weil der Programmierer auch für "unkundige" User Sicherungen vorsehen möchte oder gar keine Eingriffsmöglichkeit besteht. Gruß Christoph
Ich halte es für sehr gefährlich sich von der Bitvorstellung zu lösen.
Wieso? Sie ist doch völlig irrelevant. Entscheident ist nur, dass ich einen gewissen Wertebereich mit 65536 gleichmässigen Abstufungen, die im Prinzip -1 bis +1 representieren. Da man alles skalieren kann. Man könnte mit den Bits auch eine völlig andere Codierung vorsehen, z.B. Greycode. Zwar unpraktisch. Aber die Codierung (Spannungswert->Bitmuster) ist nicht zwingend so wie sie ist. Und eigl. sind doch 24bit eigl. schon Festkommazahlen. Da man die niedrigwertigen 8bits als Kommastellen interpretieren kann.
Gerade deshalb ist es doch interessant, wie denn nun wirklich codiert wurde. (Hast aber schon Recht, für den Anwender ist es vollkommen uninteressant) Christoph
Hallo Thomas, zu 1.: ""Soll es höher ausgesteuert werden clippt es, d.h. es weigert sich hartnäckig höher ausgesteuert zu werden. "" Ist schon klar, und genau da setzt meine Frage an: Wie erkennt ein System, das ein digitales Signal eingespeist bekommt, wenn diese digitale Signal geclippt ist, d.h.: Das zugeführte digtiale Signal entstand aus einen AD-Wandler, dessen Wertevorrat überschritten worden wäre. zu 2: Ist auch klar, deshalb sprach ich von "Wertevorrat".
zu 3.: Das SADiE arbeitet intern mit 32 bit (Fließkomma). Es muß aber auch da einen Algorithmus geben, der erkennt wo ein extern zugeführtes Digitalsignal bereits durch Überschreitung des Wertevorrates geclippt worden ist. Könnte es sein, daß bei einem Clipping, wo ja zwangsläufig mehrere gleiche Bitfolgen die das Maximum repräsentieren, dann beim überschreiten einer bestimmten Anzahl dieser Folgen dann "Over" gemeldet wird? Grüße Rainer
Ne eben nicht. Wenn ich linear quantisiere und die Abtastung auch gleichmässig ist, dann ist nur interressant wie die Samplingfrequnz ist, wie die Quantisierung, d.h. der mögliche Wertebereicht ist. Wie die Daten gespeichert und kodiert werden ist völlig irrelavant. Man könnte quasi über eine Lookuptable jeden 24bit-wort ein entsprechend anders 24bit Wort zuordnen. Die bits sind jetzt völlig anders aber der Wertebereich bleibt gleich. In der Praxis wird das ja auch gemacht. -> EightToFourteen und EigthToTen-Modulation. Völlig andere Bits, aber immer noch gleicher Wertebereich.
Könnte es sein, daß bei einem Clipping, wo ja zwangsläufig mehrere gleiche Bitfolgen die das Maximum repräsentieren, dann beim überschreiten
einer bestimmten Anzahl dieser Folgen dann "Over" gemeldet wird? So würde ich den Algorithmus implementieren. Allerdings wäre noch zu überlegen was ich mit einer übersteuerten Signal mit einer Frequenz von 20Khz mache. Denn in diesem Bereich hat man kaum zwei Samples mit vollem Ausschlag. D.h. im günstigesten Fall schwanken sie zwischen MAX und MIN. Im übrigen kann man ein digitales System doch übersteuern. Nämlich dann wenn die Abtastung (Phase und Frequenz) sdo gewählt wird, dass ich das Signal niemals an den Maxima erwische, es aber dennoch eindeutig bleibt. Z.B. einen Sinus bei PI/4, 3*PI/4, 5*PI/4, 7*PI/4 abtasten. Sind aber dann 3dB Gewinn, da die digitalen Werte nie über 1 und -1 kommen die Amplitude aber 1.4fach grösser sein kann.
Kann es sein, dass der Over-Bereich in Sadie durch Interpolation errechnet wird, so aehnlich wie ein geclipptes Signal restauriert wird (z.B. in Samplitude)? Steigung der Kurve vor und nach dem Over werden als Grundlage genommen und daraus die Hoehe der Uebersteuerung berechnet. Das wuerde auch bei externen Signalen funktionieren. Hermann
Muss gestehen bislang nur für Intel und SGI-Kisten (und früher mal Z89/U880) programmiert zu haben. Und das zu 99.9% in C++, C oder Java (*nerv*). Wie programmierst du? Hart in Assembler? Oder in C? Welche DSPs?
Im Moment programmiere ich in DSP-C, was eine Form von C für Philips DSPs ist, sowie Assembler. Der DSP ist also von Philips mit 24bit Festkommadarstellung. Da man viel die Bits hin und her schieben muß, bin ich an der exakten Darstellung schon interessiert. Gruß Christoph
Hallo Hermann, an sowas habe ich auch schon gedacht. Bei 32 bit interner Wortbreite könnte ich mir das vorstellen. Die Anzeige auf dem virtuellen Mischpult ist auf 2 Dezimalstellen dargestellt.