|
.. 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