.. for bedre lyd!

Digitale signalnivåer - om å holde toppene og bunnen ren

Det er viktig av å sette signalnivåene riktig på analogt utstyr. Lav lyd inn og høy lyd ut av en analog effekt gir høyere støygulv. Volumet skal være høyt, men ikke høyere enn til maks-grensen hvor det begynner å vrenge.
I den digitale verden er alt mye enklere da vanlig grunnstøy er så og si fraværende. Det eneste som er viktig å unngå er vreng på bølgetoppene og å skape digital støy i bunnen av det dynamiske området. Enten ved å gå for høyt med signalet slik at det vrenger, eller å klippe av de laveste elementene fra lyden slik at grunnstøyen blir høyere. Ved å holde alle topper på absolutt maksimum -6dB i alle ledd frem til Masteringen holdes toppene på bølgeformen i signalet inntakt. Støygulvet i bunnen av signalet holdes rent ved å bruke dithering hver gang bit-dybden i signalet minskes. Det skjer oftere enn du skulle tro!



Det er flere grunner til at signalnivået alltid skal holdes godt under null på digital lyd.

1. Maksimum nivå kan variere. Signaler over 0dBFS(null deciBel Full Scale) på et program er ikke nødvendigvis det samme som å gå over 0dBFS på et annet. Mange programmer er satt slik at en hel haug med bytes kan gå over null uten at programmet reagerer på det, andre er mer kravstore. Med andre ord: noen programmer sier fra om at det clipper med 3 maks-verdi samples på rad, andre venter til det er gått f.eks. 16 samples på null før den røde lampen reagerer. Det hender også at filen spilles på forskjellig nivå ut når volumkontrollen står på 0dB i to forskjelllige program.


2. I gamle dager var det viktig å dytte signalet så nærmt null som det var mulig å få det pga. begrensningene i de dårlige samplings-systemene, gjerne 12 eller 16 bit's systemer. Denne problematikken er nå foreldet og ikke lenger noe å bry seg om i disse 24 bit dager. Desverre holder de fleste fortsatt på praksisen med å dytte signalet så nærmt null som overhodet mulig. Det er ikke bare unødvendig men skaper også en del problemer i signalbehandlingen. Nå er det så mye bits å ta av at det ikke spiller noen rolle om signalet er på -20, -10 eller -5. Derimot blir det problemer om signalet nærmer seg null! Det er 6dB dynamikk per bit, dvs. en total på 96dB på 16 bit CD og 144dB på 24 bit. Ligger lyden med maks -6 dBFS i 24 bit er det fortsatt 138dB dynamikk igjen. Dette er mer enn noe utstyr klarer å levere! I praksis har 24 bit samplings-systemer et støygulv fra ca -100dB til -120dB. De aller beste og dyreste analog->digital konverterne i verden klarer å dytte dette til nærmere -130dB. Dette er et lavere støynivå enn på noe som helst utstyr som er mulig å sample. Mikrofoner, synther, samplere og andre lydkilder har egenstøy med verdier som er langt dårligere enn dette, typisk mellom -70dB til -110dB. Selv med svinadyrt utstyr og et nærmest perfekt støyfritt signal på -120dB er det bare 20 bits(20*6dB=120dB) som er i bruk, de fire resterende bits'ene i bunn er bare støy. Med andre ord kan dette perfekte 120dB signalet senkes med 24dB i et 24bits system uten å miste noe som helst verdifull informasjon. Vanligvis vil signaler ha et mindre dynamisk område enn dette, 120dB er nesten umulig å oppnå. Å ligge på -10 til -20dB under maks-nivået i vanlige programmer medfører dermed ingen forringing av signalet. Det eneste som forsvinner i bunnen er støy. Bunnen består i seg selv av støy! Resultatet er at lydbildet beholder all informasjonen selv om toppene ikke er i nærheten av null.



 

3. Signalet ut fra maskinen går ofte høyere enn verdiene på hvert enkelt samplepunkt. Denne kan være litt vanskeligere å forstå, men er hovedpoenget med å holde signalene et stykke under null i alle prosesser. Digitalt er rett og slett ikke konstruert for å håndtere signaler helt på smertegrensen. De digitale sample-punktene som lagres i maskinen og vises på skjermen i vanlige programmer forteller bare halve historien. Det er ikke et reelt bilde av hva som skjer med lyden når den går gjennom lavpass filtre rundt 20kHz og blir til en sammenhengende analog bølge igjen. Den sammenhengende bølgen som blir oppstykket i diskrete samplepunkt flyter egentlig i myke kurver mellom samplepunktene. Ser man på en bølge i et redigeringsprogram og konstaterer at alle sample-punktene ligger under null betyr det ikke at selve bølgeformen er uten klipping i det lyden kommer ut av lydkortet! Digitalt kan lett representere signaler over 0dB full scale. Kanskje det høres det greit nok ut når det kommer ut av PC'en eller CD-spilleren, eller kanskje det vrenger, det vet man ikke. De aller fleste data-baserte volum-målere viser bare hvor langt denne representasjonen beveger seg mot null, ikke hvor langt lydkortet/den analoge bølgeformen faktisk går.



Bildet under viser først en digitalt generert firkantbølge på 1kHz.Under vises samme bølgen med identisk signalnivå, filtrert til å ha en maksfrekvens på 22kHz:

Den øverste bølgen er en teoretisk fiksjon, den kan ikke eksistere i virkeligheten. Det ville krevd uendelig båndbredde, uendelig høye frekvenser, i systemet. Den er derfor umulig å lage i praksis, men datamaskinen tar ikke slike hensyn! Den nederste bølgen viser nøyaktig samme firkantbølgen med et sylskarpt filter på 22kHz. Dette gir bølgen samme båndbredde-begrensning som et ideelt digitalt system på 44.1kHz. Grunntonen på 1kHz og de elve odde-talls harmoniene som følger på 3, 5, 7, 9, 11, 13, 15, 17, 19 og 21 kHz er tydelig i bildet. Ved å legge på en rekke harmonier som går uendelig høyt vil summen av disse til slutt bli den flate og perfekte firkant-bølgen på toppen. Uendelig med harmonier er umulig i virkeligheten, det ville krevd et uendelig frekvensspekter i systemet. Resultatet blir alltid rundere kurver i virkeligheten enn det datamaskinen først gir inntrykk av.


Problemet blir tydeligere jo høyere frekvens signalet har. En 20kHz firkantbølge har første harmonien på 60kHz, neste på 100kHz, osv. Disse blir alle filtrert ut av signalet av et 22kHz filter og den gjennstående bølgen er en ren sinus tone. Denne vil alltid være høyere enn firkantbølgen den kom fra!

Teoretisk firkantbølge med totalt flate topper og dermed uendelig høye frekvenser.
Samme firkantbølgen filtrert ned til grunnfrekvensen. Den gjennstående bølgen er fri for alle overtoner, en sinus, med over 2dB høyere topper enn utgangspunktet.

Klipping eller brutal limiting på toppene i lydkurven skaper en bølgeform som minner svært mye om den perfekte men umulige firkantbølgen over. De flate toppene ender opp som myke kurver som skyter over null når de blir filtrert. I dette og dette bildet er to eksempler på CD'er med maksvolum og en bedre representasjon av hvor langt bølgen egentlig går. De flate toppene er umulig, de krever et uendelig frekvensregister på utgangen. Filteret i digital til analog konvertereren gjennoppretter deler av signalet og gjør den flate toppen til en fin flytende kurve. Problemet er at det blir bare en slags sinus-bevegelse der flaten en gang var. Filteret kan ikke vite hva som var der før signalet ble trykket flatt på toppen! Informasjonen i toppene er slettet for godt, filteret lager gjør bare den tidligere flaten til en mykere kurve med en gitt maksimal hastighet i filterfrekvensen. Ved å la brukeren selv skru opp en eller to små desiBel'er ville informasjonen vært i behold. Toppene er smellet og sparket i musikken og høres stort sett bedre ut når de kommer originalt, ikke som et resultat av kunstig utflating og gjennoppretting i filteret i utgangen på utstyret.

Når både toppene og bunnen holdes unna de respektive grensene vil alle prosesser jobbe optimalt med lyden. Nivået i det ferdige mediet setttes i Masteringen, ikke under miksingen. Det igjen er bare et medie for lyd, ikke en volumknott. Den er det helt og holdent opp til brukeren å styre!


Et digitalt system kan ikke sample slike sample-verdier fra analog->digital konverterne. Om datasystemet utelukkende benyttes til innspilling og avspilling er det garantert å være fritt for illegale sample-verdier. Problemet oppstår når signalet behandles i plug-ins og andre prosesser. Disse rutinene kan endre sample-verdiene slik at de skaper et digitalt signal som vil gi en utgangsverdi som overskridder nullpunktet. Resultatet blir høyst uforutsigbart. Noen digital->analog konvertere takler dette helt fint mens andre vil vrenge på slike verdier. Noen plugins, programmer og andre prosesser har takhøyde for å jobbe med signaler over null, andre vil klippe av toppene når de overskrider grensen. Alle filtre eller transformasjoner, som i digital->analog konvertere, sample rate konvertere, intern oversampling i plug'ins og psykoakustisk koding av MP3 typen, vil gjenskape noe av toppene som før skjulte seg som en flat strek. For å være sikker på at signalet får ren signalbehandling inni datamaskinen og kommer ut riktig på digi->annie konverterne er det derfor best å holde toppene godt under -3dB, helst et sted mellom -6 og -10dB.



Et annet tilfelle er hvor bølgene ligger på del-frekvenser til sample raten i systemet. Det beste eksempelet er på frekvenser på eller nær en fjerdedel av sampleraten. På 44100Hz er en fjerdedel 11025Hz. Her er det tydelig hvordan digitalbølgen representerer et høyere signal enn samplepunktene gir inntrykk av. Bildet under viser en sinusbølge på 11026Hz, sett på to forskjellige steder med 1/8 sekunds avstand. Frekvensen er valgt for å få varierende fase mellom samplepunktene og toppene på bølgen. De fire bølgeperiodene til venstre er representativ for den ene ekstremen, hvor samplepunktene er langt fra toppene. De fire bølgeperiodene til høyre er representativ for den andre ytterkanten, hvor sample punktene treffer nøyaktig på toppene, midten og bunnen. Nivået er egentlig jevnt på -6dB for hele kurven, men vanlige topp-nivå metere vil vise et nivå som varierer med 3dB.


Under vises den samme bølgen, nå rekonstruert slik at den ser ut slik den kommer ut av datamaskinen:


Vanlige toppnivå-metere viser bare tall-verdien til hvert enkelt samplepunkt. De sier ingenting om hvor høyt den flytende analoge bølgen på utgangen vil bevege seg. Desverre er dette blitt viser-standarden i digital lyd. Den beste løsningen er å bruke et over-samplet peak meter som viser hva de faktiske toppene vil bli etter konvertering til analogt signal.

Link: Nika Aldrich .PDF om de skjulte digitale overstyringene
Link: Diverse artikler om overstyring i digitale enheter fra TC Electronics' tech library, bl.a. .PDF artikkelen Distortion To The People

 

Dithering:

Er ikke bare noe som brukes for å mastre 16 bit CD'er, det er en nødvendighet for å tilfredsstille kravene i samplings teorien!

Problemet er "word lenght reduction". Ta f.eks. en effekt som jobber internt på 48 bit på et 24 bit signal.

Gjøres et 24 bit signal om til 48 bit er det bare å hive på 24 ikke-aktive bits på slutten, så blir det et 48 bits digitalt ord. Reel oppløsning er fortsatt 24 bit da de siste bittene ikke gjør noe som helst. Om dette hadde vært f.eks. en effekt-prosessor, med en del prossesering underveis, ville signalet kanskje endt opp rundt 40 bitter. Hver gang noe gjøres med et digital signal genereres flere desimaler og dermed flere bits! Som et eksempel kan vi ta en liten volumforandring. Et 16 bit maks-signal har verdien 32767, med en liten volumsenking blir dette f.eks. ganget med 0,9687234 og verdien blir da 31742,1596478. Et tall som helt tydelig har langt fler desimaler enn tallet vi begynte med. I lydverden blir den tilsvarende effekten at hver eneste bidige forandring på lyden genererer flere bits. En 16 bits sampling kan fort ende opp med 40 bits informasjon etter hvert som den går gjennom plugins og andre prosesser inni maskinen.

Når dette 40 bit signalet skal ut igjen av effekten som vanligvis har 24 bit kommunikasjon med omverdenen er det to måter å gjøre det på. Det enkleste og teiteste er å rått og brutalt kappe av de siste bitsene slik at det blir et et 24 bit signal igjen. Å kappe av de siste bits'ene på slutten av signalet, såkalt trunkering, vil gi i en forskjell, en feil, mellom signalet og verdien som settes. I lydlingua heter det quantization noise. En meget dårlig løsning! Når bitsene kappes av på den måten, uten å gjøre noe intelligent med de ekstra bitsene, kommer det ikke-harmonisk støy som resultat. Støy-energien er klumpet sammen i små energibunter spredd utover frekvensregisteret.

Den intelligente måten å gjøre dette på er med Dithering. Ved å legge på en svak støy rundt de aller laveste bitsene fjernes de ikke-harmoniske problemene som oppstår ved trunkering. Det blir riktignok litt mer grunnstøy på signalet, men det er mye bedre enn de ikke-harmoniske støybuntene som oppstår ved trunkering. Vi bytter rett og slett ut den hissige fæle lyden av små energibunter med feil-signal mot en jevn og lavere spredning av støyenergien. Så kommer det som er så himla pent: mennesket kan oppfatte lyder som ligger badet i støy med langt høyere volum enn lyden selv. Skru på radioen og hør, selv om det bråker som et fossefall er det lett å høre svake signaler langt inni bruset. Det er der dithering kommer inn i bildet! Lager man støyen på riktig måte kan man bygge inn et par ekstra bits med informasjon i denne støyen.


En annen måte å se det hele på er at trunkering skaper en total svart/hvit tilstand. Dithering modulerer inn nyanser i av/på-signalet ved å la summen av en rekke av/på'er bli en mellomting mellom av og på. La oss si at en enslig liten bit representerer tallene +1 eller -1, ingenting i mellom. Om vi da ønsker å legge inn verdien +0,5 vil det ikke være en verdi tilgjengelig som direkte representerer dette, nærmeste steget er jo +1. Men om vi legger 3 på'er og 1 av i en rekke på fire signaler blir summen +0,5. Slik er det mulig å representere alle mulige signaler ved bruk av 1 bit. Et eksempel med fire bits på rad:
1111 = +1
1110 = +0,5
1010= 0
1000 = -0,5
0000 = -1

I virkeligheten er det minst 44100 samples etter hverandre i sekundet. Nok av tid til å lage en fin flytende bølge!




De følgende bildene viser frekvens-analyse av trunkering og dithering til 16 bits:



Det øverste bildet viser en 1kHz sinus bølge trunkert til 16 bit uten bruk av dither. Trunker-støyen er tydelig med sine mange små skarpe topper.

Det midterste bildet viser den samme 1kHz sinus bølgen trunkert til 16 med enkelt TPDF(Triangular Probability Density Function) dither. Her er trunkerings-støyen byttet ut mot et høyere støygulv.

Det nederste bildet viser samme 1kHz sinus bølgen trunkert til 16 bit med HPTPDF(High Pass Triangular Probability Density Function) dither. Høypass-filteret på TDPF-ditheren former støyen slik at det er mindre av den der øret er mest sensitivt, i området mellom 2 til 4kHz, men for å opprettholde det samme totalt-nivået av støy blir det litt mer støy på de aller høyeste frekvensene.


Dette er grunnlaget for Noise Shaping innen dither. Så lenge den totale støy-mengden i ditheren er den samme kan frekvens-registeret formes slik brukeren ønsker det. Hissig noise shaping vil gi fravær av støy i de lavere frekvenser men desto mer støy i det øverste registeret. De to neste bildene illustrerer dette:



I det øverste bildet er det brukt en relativt kraftig noise shaper. Støyen er langt under -90dB helt opp til 7kHz, hvorpå den stiger kraftig oppover mot 22kHz.
Det nederste bildet viser en enda mer aggresiv noise shaper. Støyen er enda mer fraværende på de lave frekvenser, men desto kraftigere på toppen av registeret.

Det finnes i dag en rekke typer dither på markedet, fra helt enkel TPDF til de ulike merkevarene som POWr consortium dither, Waves IDR og Apogees UV-22. Det er helt opp til program-materialet vilken type dither som passer best i den aktuelle sammenhengen. Vær dog observant på de hissigste noise shaperne. Disse kan i visse tilfeller gi bedre resultat på den aller siste ditheren før trykk. Men det gir ofte problemer om signalet skal videre-behandles, f.eks. av en radiostasjon prosessor eller MP3 koder. Derfor anbefales det å bruke vanlig HPTPDF for alle prosesser frem til ferdig medium og om noise shaping er ønskelig bør den brukes med varsomhet.


Så hva har dette å gjøre med samplings teorien? Dithering er ikke bare en løsning for å få bedre lyd. Det er også et krav for å opprettholde signal-integriteten i digitale signaler. Kvantiserings-støyen som er diskutert her handler om at digitale signaler uungåelig blir stykket opp i trappetrinn langs volum-aksen, eller Y-aksen, når det samples verdier inn i analog->digital konverterne. Dithering vil opprettholde denne flytende sammenhengende egenskapen i de digitale signalene. Uten dithering oppstår det ikke bare ubehagelig støy, men kravene i samplings-teoriene blir ikke fulgt. Resultatet blir ikke en flytende sammenhengende bølge men en oppstykket og kvantisert bølge.

Link: Bob Katz artikkel om dithering
Link: Sound on Sound artikkel om digital lyd og dithering







All tekst og bilde på denne siden er (C) Andreas Nordenstam