|
.. for bedre lyd!
|
Noen grunnleggende
lydfenomener - impulser, sinuser, filtrering og sampling
Denne artikkelen presenterer og forklarer noen grunnleggende begreper
innen lyd og samplede systemer. Sinuskurver og impulser defineres samtidig
som tids-domene og frekvens-domene forklares. Det hele avsluttes med et
kort blikk på et av de mest spennende bruksområdene for disse
teoretiske idealene, samplede systemer. Mystiske formler unngås
så langt det lar seg gjøre, men mange av disse fenomene forklares
både grundigere og mer korrekt ved hjelp av matte. Det anbefales
å søke på nettet for videre informasjon for de som
er interessert! Her er fokuset lagt på musikalske bruksområder,
som forhåpentligvis gjør det lettere for lydteknikere å
sette seg inn i det.
Innen bølger finnes det to grunnleggende former. Det er enten 1
frekvens, en uendelig lang periodiskt repetetiv tone totalt uten harmonier,
som heter sinus. Eller den rake motsatsen, en impuls, ett totalt urepetetivt
uendelig kort støt, med et uendelig høyt frekvensspekter,
dermed også uendelig mange over- og undertoner. Begge deler er like
utopisk! Den eneste måten å lage dem helt nøyaktig
er ved å skrive mattestykker, alt annet blir bare mer eller mindre
vellykkede forsøk. Den vanligste måten å måle
utstyr er faktisk å se hvor mye de nærmer seg disse idealene.
Det kan nærme seg, men aldri være helt nøyaktig lik
teoriene. Alt i mellom disse ekstremene er komplekse bølger, som
er det eneste som er mulig å lage i virkeligheten.
Ikke tilfeldigvis
kan begge disse ekstremene også brukes som byggeklosser for å
lage alle andre komplekse bølger, som altid befinner seg et sted
mellom 1 ren frekvens og uendelig mange. Om overtonene filtreres ut av
en impuls blir den rundere og rundere i kantene til det slutt står
igjen en sinustone. Motsatt vil summen av mange nok sinusbølger
i en kraftig nok utstøting av plutselig energi bli en impuls. Dette
kan sammenlignes med forskjellen på å stryke en fiolinstreng
med buen og slå et trommeskinn med stikken; Fiolinen heller mot
å lage en periodisk bølge som utvikler seg over tid og trommen
med sin eksplosiv natur heller mer mot å ligne på en impuls.
Ingen av dem er engang i nærheten av de teoretiske sinus og impuls
funksjonene, men kjennskap til disse ytterpunktene innen lyd gjøre
det lettere å forstå alle andre bølger som er kombinasjoner
av disse..
Sinus
Noen husker
kanskje dette ordet med et grøss fra trigonometrien i skoledagene.
Egentlig er det temmelig greit å forholde seg til når det
ikke skjer i et klasserom. Ved å koble det til lyd blir det ikke
bare mer forståelig, det sier også forbløffende mye
om alt annet som skjer med musikk!
En sinuskurve er en sirkel som går bortover i tid i stedet for å snurre rundt på samme stedet. Bl.a. finnes denne kurveformen i strømmen i vegguttakene. I kraftverkent er generatoren en magnet som snurrer rundt i en sirkelbevegelse for å skape strøm.
Til venstre
i bildet under sees en sirkel med grader fra 0 til 360, sett mot klokken.
Under er samme sirkelen plottet bortover i tid med en tenkt urviser som
snurrer mot klokken. Høyden på kurven viser hvor langt opp
eller ned på sirkelen den har beveget seg. Den høyre sirkelen
gradert fra 0 til 1, tilbake til 0, ned til -1 og opp igjen til null.
Likt et lydsignal som svinger fra positiv til negativ og tilbake. Urviseren
lager en trekant inni sirkelen, med horisontalen på nulllinjen,
en rett vinkel opp til skjæringspunktet mot sirkelen og den lengste
siden i trekanten, hypotenusen, tilbake fra skjæringspunktet til
midten. I bildet under er denne trekanten illustrert i grønn. Tallene
mellom null og 1 på skiven er sinus'en, som er forholdstallet som
sier forskjellen mellom toppen av sirkelen og hvor langt opp på
kurven urviseren har
beveget seg. På toppen er forholdet 1 til 1, på 45 grader
er forholdet mellom høyden på vinkelen og toppen 1 til 0,707
og på 30 grader er forholdet 1 til 0,5. Resultatet av å plotte
denne rekken som går fra 0 til 1 til 0 til -1 osv blir blir det
samme, en sinuskurve.
Grader | 0 | 7.5 | 15 | 22.5 | 30 | 37.5 | 45 | 52.5 | 60 | 67.5 | 75 | 82.5 | 90 | 135 | 180 | 225 | 270 | 315 | 360 |
Tall | 0 | 0.13 | 0.26 | 0.38 | 0.5 | 0.61 | 0.71 | 0.79 | 0.87 | 0.92 | 0.96 | 0.99 | 1 | 0.71 | 0 | -0.71 | -1 | -0.71 | 0 |
Se også
en Utmerket
link med animert fremstilling
Legg spesielt merke til at bevegelsen bruker lenger tid på toppen
hvor den flater ut, raser i rett linje forbi nullpunktet, slakker farten
igjen og snegler seg forbi bunnen, aksellererer opp til fart igjen og
raser forbi nullpunktet, osv. Den samme bevegelsen oppstår i en
streng eller en pendel som svinger fra side til side. Helt ytterst må
pendelen snu og har derfor ingen fart, mens den på midtpunktet har
maksimum hastighet.
En annen ting å legge merke til i sinus-sirkelen over er at 45 grader
gir 71% av maksverdi. Nærmere bestemt er tallet 0,707. Et tall som
stadig dukker opp i forbindelse med lyd og matematikk! Topp til topp verdien
av kurven er lik 1, maksimum. Gjennomsnitt-effekten er 0,707 eller -3dB.
Dette er dynamikken, eller topp til snitt-nivået, i en sinuskurve.
Til sammenligning er topp-til-snitt forskjellen null på en firkantbølge,
ca 58% (-4,75dB) på triangel og sagtann-bølger og 25% (-12dB)
i pink noise. I vanlig musikk er forholdet mellom toppverdiene på
bølgene og snitteffekten i musikken oftest mellom 10 til 14dB.
Jazz, klassisk og lyttemusikk generelt pluss film og DVD har gjerne et
dynamisk spenn på 20 dB.
Denne kurven i forskjellige frekvenser kan sees som atomene i lydriket. Det er den aller enkleste bestanddelen av lyd det er mulig å redusere ting ned til. Å filtrere en komplisert bølgeform ned til grunnfrekvensen gir alltid en sinus, fri for overtoner. Samtidig er det en kurve som er umulig å lage helt rent i praksis. Sinus-formen forutsetter at sirkelen er 100% perfekt renskåret. I virkeligheten vil enhver geometri alltid være litt bøyd her og der. Det er alltid mer, eller forhåpentligvis mindre, vreng på kurven. Et annet problem er at sirkelen nødvendigvis må starte og stoppe et eller annet sted. I start og stopp punktene er det langt fra å være en sirkel! Disse avvikene medfører endring av bølgeformen. I det sinusen endrer seg en minste lille bit fra en ren sirkelbevegelse er det ikke lenger en enkelt frekvens, det blir en grunntone med over- og undertoner. Om sinusbølgen gjøres om til de linjalrette strekene i en triangel-kurve blir er det som å legge på 20% distortion. Med 100% vreng blir det en ren firkantbølge. Tonen endrer seg fra å være fri fra harmonier til å ha et rikt frekvensspekter.
Under vises
1kHz sinus, triangel, firkant og sagtannbølger. Øverst er
bølgene slik vi kjenner de fra sample-editoren på dataskjermen
og nederst sees frekvensregisteret til de respektive bølgene:
Stort bilde
av frekvensresponsene
Kurvene øverst
er vist bortover i tid. Den mest hendige og vanligste måten å lagre
og behandle lyd, men det er bare en av mange måter å se beskrive
hva som skjer. En annen måte å betrakte lyd er å se på
frekvens-registeret. I de små vinduene under vises frekvensene fra bass
til diskant bortover mot høyre i hvert enkelt vindu. Slike spektrum/frekvens/FFT
analyser er en god måte å lære litt om lyd! Sinusen er helt
ren, triangelen har en del vreng som gir overtoner, firkanten har mye men bare
oddetalls-harmonier og sagtannen har alle harmonier. Alle andre kurver enn sinus'er
inneholder et et komplekst frekvensspekter, som kan brytes ned til et bilde
av ulike enkelttoner med forskjellig volum, frekvens og fase. De små bildene
fra spektrum analysatoren over viser nesten alt som kan sies om lyden ved hjelp
av et matematisk triks som heter fast fourier transformation. Den viser frekvens
og signalnivå på alle harmoniene. Det eneste bildet mangler for
å gjøre bølgen komplett igjen er kjennskap til fasen, startpunktet,
til hver enkelt sinus-bølge som til sammen utgjør helheten. Da
kan vi gjøre som matematikeren Furier påpekte, beskrive enhver
tenkelig kompleks bølgeform som en rekke sinusbølger med varierende
frekvens, volum og fase.
Nedenfor vises sinus, triangel, firkant og sagtannbølger generert med
sinus-funksjoner i en grafisk kalkulator:
Formlene for å
lage bølgene over
En firkantbølge kan lages ved å ta en sinus og vrenge den til det
bare er flate topper igjen. En firkant-bølge kan også lages ved
å ta en rekke sinusbølger med riktig frekvens og mikse dem sammen.
I firkantbølgen
er det bare oddetallsharmonier. Overtonene på 1kHz firkantbølge
blir derfor sinuser på 3, 5, 7, 9, 11, 13, 15, 17, 19 kHz, osv. Nivået
minsker i takt med frekvens-stigningen. Under vises fra høyre til venstre
en enkelt sinus med en ekstra harmoni mikset inn på hver hele syklus av
kurven:
stort bilde
For hver ekstra sinus/overtone som mikses inn i signalet blir det en ekstra
svingning på kurven. Med et uendelig frekvensspekter vil det slutt bare
være en flat strek igjen på toppen.
Omvendt vil en helt
firkantet bølge bli mykere og mykere til det bare er en enkelt sinus
igjen om bølgen filtreres ned. Bildet under, hentet fra artikkelen om
digitale signalnivåer, viser først en teoretisk perfekt firkantbølge
og en mer jordnær variant under:
Den øverste
firkantbølgen inneholder nesten uendelig med overtoner fordi strekene
mellom flatene på toppen og bunnen går nesten rett opp og
ned. I den filtrerte versjonen under er sidene på firkanten blitt
mer skrå og flaten er byttet ut med en sinustone som daler litt
i volum på midten. Denne sinustonen har den maksimalt tilgjengelige
frekvensen i systemet, her 21kHz, som er den 11'te oddetallsharmonien
på 1kHz firkantbølgen. Strekene som før gikk rett
opp og ned på sidene har nå blitt til litt mer skrå.
Kurvens endring har en maksimal hastighet som er lik både på
sideveggen og på sinuskurven som nå ligger bortover flatene
på toppen og bunnen. Fortere enn dette er det ikke mulig å
bevege seg uten å lage de frekvensene som nettopp ble filtrert ut!
På den eminente hjemmesiden til Paul Falstad ligger
blant mye annet to java program som lar brukeren tegne bølger og
overtoner og utforske sammenhengen mellom dem: Fourier
series applet og Digital
Filters applet.
Impuls
Alle kurvene som beskrevet over er sammenhengende og repeterende, såkalt
periodiske bølger. Om signalet kuttes i begynnelsen eller slutten
er det ikke lenger samme bølgen, det blir noe annet, en kompleks
bølge. Ta en sinuskurve, den perfekte rene tonen, og se for deg
at vi kapper bort alt på begge sider av en enkelt oppover-kurve
fra null til 1 til null igjen. Se så for deg at frekvensen er så
høy at syklusen går nesten uendelig fort. Det vil ikke være
mye lyd av det, om ikke volumet er sterkt nok, f.eks. nesten uendelig
høyt. Gitt nok volum vil denne ene pittelille blippen kunne rive
vårt lille univers i fillebiter i en vanvittig eksplosjon! Signalet
har gått fra å være en ren sirkel til å bli en
uendelig tynn søyle, et pulsstøt med energi.
En impuls er ideelt sett en uendelig kort enhet med uendelig mye energi.
I virkeligheten er det selvsagt både begrenset med energi å
ta av og umulig å gjøre noe som tar ikke tar noe som helst
tid, det ville vært to-dimensjonalt. Under er det illustrert et
par litt mer realistiske impulser:
Den første
minner mest om den uendelige impulsen, men den er begrenset både
i tid og styrke slik virkeligheten nødvendigvis må være.
Den neste inneholder nøyaktig samme energi-mengden, men er litt
lavere og spredd litt utover i tid. Den siste begynner å se temmelig
flat ut og den er strekt mye utover i tid. Innholdet i boksen er det samme
som i den tynne søylen og energimengden er den samme, men det kreves
mer energi på kortere tid jo mindre og høyere søylen
er. Når tingene endrer seg fortere blir det høyere frekvenser.
Frekvensresponsen til en teoretisk impuls er alt. Alle frekvenser fra
dypeste bass til uendelig topp. Stikk motsatt av responsen til en sinus.
Å vise det i en spektrum analysator er nesten meningsløst,
det er uansett bare en flat strek! Dess mer perfekt impulsen er dess skarpere
er kantene og jo mindre tid bruker den.
Filter
Alle virkelige fenomener er begrenset til en viss båndbredde, i
hvert fall i toppen. Ingenting kan være uendelig raskt. Ting tar
tid! Både når det gjelder musikkbransjen generelt og lyd spesielt.
Den eneste informasjonen av interesse befinner seg uansett i relativt
lave hastigheter. Mellom 20 og 20 tusen svingninger i sekundet. Mikrofoner,
forsterkere, høytalere og annet utstyr er laget for å møte
dette kravet, men ikke mer. Er liten vits å lage ultralyd som mennesker
ikke hører, flaggermus og hunder setter ikke pris på det
likevel. Resultatet blir at utstyret fungerer som et lavpass-filter som
tar vekk alle høye frekvenser. Dette skjer også rent fysisk
i akustiske instrumenter og lyder. De begynner svakt og sakte før
de vokser til full hastighet og styrke, som til sammen utgjør energibruken
over stykke tid. Gjerne i løpet av svært kort tid, som et
trommeslag, men det tar likevel littegranne tid. Filtrering er iboende
i alt.
I et lavpassfilter, som er det interessante i denne sammenhengen, blir
alle overtoner som går over filterfrekvensen kuttet. Alle toner
og deltoner under filterfrekvensen skal helst passere igjennom helt uendret.
Overgangen fra at alt passerer til at lyden blir helt dempet er ikke momentan,
det slakker sakte av oppover i frekvensregisteret. Hvor skarp denne overgangen
er måles i deciBel per oktav, per dobling av frekvensen. Hastighet
er frekvens, så i bunn og grunn skal et slikt filter hindre hurtige
endringer fra å forekomme. Dette gjør det ved å temme
de kjappe endringene og la ting få litt tid til å utvikle
seg. Det endrer bølgen før den kommer! Analogt er i umiddelbart
i reaksjonen, forsinkelsen ligger på ca lyshastighet. Det kan ordnes
med kondensatorer, små batterier, som gir en ørliten forsinkelse
gjennom filtersystemet. Det er lite tid å snakke om, 90 grader forsinkelse
på kurven i et 6dB/oktav filter. Akkurat nok til å ta kontrollen
på utviklingen av bølgen i stedet for den mer eksplosive
naturen som ligger i de høyere frekvensene. For hver 6dB skarpere
karakterestikk som legges inn i filteret blir det 90 grader mer forsinkelse,
f.eks. 360 grader i et 4 pols filter med 24dB/oktav karakterestikk. I
digitale systemer er det mer enn nok minne å ta av til å forsinke
lyden så mye det ønskes.
En teoretisk impuls som filtreres ned med et uendelig skarpt filter vil
få en symmetrisk form som gir mange spennende muligheter. Bildet
nedenfor viser først en impuls som kun er 1 sample på maksverdi,
under er resultatet av å filtrere den ned til 20kHz:
.
Dataprogrammet som lager disse bildene viser rette linjer mellom samplepunktene,
men den øverste pulsen skal egentlig gå rett opp fra ingenting
og rett tilbake igjen til ingenting. En slik teoretisk impuls vil i virkeligheten
alltid være filtrert ned til å ligne på den nederste
versjonen. Her er den forstørret flere ganger opp for å gjøre
den mer synlig. En sinus blir speilvendt på midten og brer seg utover
på hver side med minkende styrke. For å holde den noenlunde
nær idealet om en evig sirkel bruker denne tonen lang tid på
å fade inn og ut på hver side av hoved-impulsen. Egentlig
fortsetter svingningene på begge sider av impulsen mye lenger enn
bildet viser, mange hundre sykluser før de drukner i støyen,
men de blir fort for små til å vises uten enorm forstørring.
Svingningene er resultatet av at de vanvittig høye frekvensene
som impulsen inneholder nå er fjernet. Lyden prøver å
endre seg fortere, men det aller kjappeste den kan endre seg er en kurve
med hastighet som tilsvarer den i en sinuskurve med maksfrekvensen i systemet.
De øverste tonene som slipper igjennom blir alltid filtrert ned
til en ren sinus i et skarpt filter. Første overtonen på
en 11kHz tone er på 22Khz. Alt over 11kHz vil derfor alltid være
rene sinustoner i et 44.1kHz samplet system.
Energien blir spredd utover i tid, men resultatet for oss mennesker som
hører maksimum 20kHz er nøyaktig det samme som om vi kunne
spilt av den teoretiske impulsen som går rett opp. Den eneste forskjellen
er at de hurtigste bevegelsene som tilsvarer frekvenser over 20kHz er
filtrert ut. Alle tonene under filter-frekvensen er fortsatt de samme,
nå representert ved den største svingningen i midten. Alt
under 20kHz er i behold og det meste av impulsen er fortsatt igjen. Hvordan
dette høres ut vet vel egentlig de fleste. Det låter som
noe som er tilkoblet et kraftig anlegg og slås av og på, eller
når en kabel plutselig dras ut. For å lage en ren tone som
går av og på trengs det en del fading på hver side.
1 sekund med sinus høres ut som en kort sinus, 1 millisekund blir
for lite og da smeller det!
Kjappe endringer krever mer energi enn langstrakte endringer. Signalet
trenger dobbelt så mye energi for å bevege seg dobbelt så
fort med det samme signalnivået. For å lage en riktig tynn
søyle må den endre seg svært fort fra null til mye.
En kjapp endring betyr også høy frekvens. Ta sinusen igjen
og kjør den gjennom en vrengboks. Ved å flate ned strekene
til rette linjer i stedet for en sirkel, en triangelbølge, endres
den fra en ren tone til en grunntone med et sett overtoner. Å flate
ut gir en vinkel på kurven som er krever hurtigere bevegelse å
utføre enn å gå i den myke sinus-kurven. I tegningen
øverst i artikkelen vises det at sinusen har maksimal hastighet
rundt nullpunktet, på den nær rette linjen som går fra
135 til 225 grader. Denne hastigheten tilsvarer frekvensen til sinuskurven.
Enhver kompleks kurve vil alltid ha en hastighet på et gitt punkt
på bølgen og denne tilsvarer alltid frekvensen til en spesifik
sinus-kurve uansett hvilken bølgeform det er snakk om! Husk at
sirkelen går tregest på toppen mens den raser i rett linje
forbi nullpunktene. Alle frekvenser/sinuser har sin egen spesifike hastighet
og enhver endring på en kurve tilsvarer en frekvens, uavhengig om
det er en repeterende bølge eller en enkelt impuls. Ved å
sende en impuls gjennom en en prosess og ta opp igjen resultatet får
man en deformert impuls tilbake. Med hjelp av litt intrikat matte kan
hele frekvensresponsen til prosessen analyseres bare ved å myse
på hastighets-endringen i deformasjonen av impulsen. Disse subtile
bøyningene av kurven kan beskrive frekvens-responsen til ethvert
system fra
bass til uendelig. En slik impuls-respons kan brukes til å kopiere
responsen til effekter, f.eks. romklang, og ikke minst til å måle
akustikk og utstyr.
Et virkelig lydsystem som er båndbreddebegrenset til hørbare
frekvenser vil derfor ha en maksimal frekvensrespons som er lik sinuskurven
til den høyeste frekvensen i systemet. For å endre kurven
fortere enn dette må sinus-sirkelen overskride maks hastighet. Ethvert
forsøk på å gå over denne frekvensen, f.eks.
ved å kjøre inn en nær perfekt impuls, vil resultere
i at den høyeste hastigheten som blir blir igjen på den ellers
perfekte stigningen er den samme som hastigheten i en sinus på systemets
maksfrekvens. Det glade faktum at denne sinusen er konstant repetetiv
kan utnyttes på en utrolig snedig måte.
Det virkelig interessante skjer når det kommer mange impulser på
rad. Hver for seg selv er de bare et knepp med energi spredd utover frekvensregisteret.
Etter filtrering vil de ha en ringende sinustone som brer seg utover med
konstant frekvens, nullkrysningene i bølgen kommer nøyaktig
på rad og rekke. Å mikse en rekke impulser etter hverandre
med et tilfeldig tempo gir en rimelig kaotisk sum av opp og nedover bølgedalene.
Om vi derimot setter de slik at svingningene rundt senteret på impulsen
overlapper på hver kryssning av nullpunktet vil summen av alle impulsene
over tid bli en sammenhengende kurve! Hver bølgedal og topp på
begge sider av impulsen kommer med nøyaktig samme avstand, på
nullkrysningene til sinuskurven. Ved å lage en rekke nøye
planlagte impulser på rad kan summen bli til alle tenkelige kombinasjoner
av opp og nedover bevegelse! Her kommer enda en måte å lage
en firkant, nå ved å å legge 9 slike impulser etter
hverandre med nullkrysningene nøyaktig oppå hverandre:
stort
bilde
Om rekken av impulser fortsetter å vokse blir det til slutt en firkant
med en ren strek mellom begynelsen og slutten. Det samme som skjer ved
å lage en uendelig serie sinus overtoner! Et imponerende triks,
men ikke særlig nyttig i seg selv, det blir jo bare en flat likestrøm
med null frekvens!
For å gjøre det mer brukandes, som å lage en frekvens
over null, må det være mulig å gjøre noe med
topp-verdien på hver enkelt impuls. F.eks. kan annenhver impuls
fjernes, slik at det blir en sekvens som veksler mellom +1 til null til
+1 til null. I bildet under vises samme firkanten som over, men her er
annenhver impuls fjernet:
Det begynner å bli en sinus! Det eneste som trengs å endres
for å gjøre den helt identisk med sirkelen vi begynte med
er å gi bølgen uendelig med tid å utvikle seg. Det
viktige er at alle impulsene kommer nøyaktig på annenhver
nullkryssning, at klokken er så ren som mulig.
Sampling
Impulsene vi har sett på så langt har blitt brukt til grunnleggende
former
for lyd og bølger. En enslig impuls gir alle tilgjengelige frekvenser
på en gang. Uendelig mange på rad gir en flat direkte-strøm
som ikke er en bølge engang, helt uten frekvens. Til slutt, annenhver
impuls på og og av gir en sinus med maksfrekvensen til systemet.
Selvsagt er det også mulig å skape alle slags verdier mellom
disse ekstremene!
En sample betyr en stikkprøve. Ved å digitalisere en lang rekke stikkprøver etter hverandre kan en rekke verdier lagres som et sett med tall etter hverandre. Når musikk blir stikkprøvet finner man spennings-verdien til den sammenhengende lydkurven på et lite avgrenset tidspunkt og gir denne spenningen en positiv eller negativ tallverdi som lagres i datamaskinen. Hver for seg selv gir tallene bare en enkelt impuls med varierende volum, men settes de sammen etter hverandre, med alle de små svingningne langt utover til begge sider fra midtpunktet, kan summen av både den høye toppen på midten og alle de små og store positive og negative svingningene rundt alle impulsene anta alle tenkelige og utenkelige kombinasjoner. Periodiske funksjoner som triangel, firkant og sagtann er selvsagt enkelt å lage. Vi kan også hente hente informasjonen om nivået til hver enkelt impuls fra virkeligheten, ved å bruke en analog til digital konverterer.
Begrensningene i et samplet system ligger i to faktorer; hvor fort tallene kommer
etter hverandre og hvor mange siffer vi kan gi til hvert tall.
Hastigheten på klokken som styrer tidspunktet for hver sampling setter
en øvre grense for den kjappeste sinusen som er mulig å sample.
Under vises samplingspunktene på en 2222Hz og en 8888Hz sinus i et system
som jobber med 44100 samples i sekundet:
Kurven til venstre ser kanskje mer normal ut enn den til høyre, men i
virkeligheten beskriver de begge en helt ren sinus. Årsaken til at det
ser så rart ut til høyre er at dataprogrammet tegner linjer mellom
samplepunktene i stedet for å se på det større bildet som
summen av de mange impulsene egentlig utgjør. Når dottene ligger
tettere gir det et mykere bilde rent visuelt, men den egentlige kurven bir ikke
noe mykere av den grunn. Den er allerede så myk som den kan bli, den er
jo en sinus! I et digitalt instrument som viser bølger trengs det minst
ti ganger bølgefrekvensen for å få et rimelig korrekt bilde
bølgen. Det betyr ikke at bølgen er mer eller mindre firkantet
jo høyere samplefrekvensen blir, det er bare visningen på skjermen
som endrer seg. Under vises samme frekvensene med en rekonstruert bølge
mellom samplepunktene:
Når de rette linjene erstattes med impulser med samme toppnivå som
sample-dottene, vil summen bli den flytende sinusen samplepunktene egentlig
representerer. Alle de små toppene og bunnene rundt impulsene summer seg
perfekt opp til en myk og sammenhengde kurve. Dottene bryr seg ikke om hvor
på linjen de havner, summen blir uansett en perfekt kontinuerlig bølge.
Starten er vanskelig. Det blir litt vreng i begynnelsen, de første millisekundene,
før summen begynner å ligne originalen. Derfra og utover i de neste
millionene og milliardene med samplepunkter er summen av de filtrerte impulsene
garantert å være likt originalen så lenge klokken er dønn
stabil. Over ble det laget en ren sinus ved å la annenhver sample være
på og av! Dette er maksfrekvensen i systemet. Med klokke på 44100Hz
vil det teoretiskt kunne samples signaler opp til 22050Hz. I praksis trengs
det ørlittegranne mer enn to samples per syklus.
Grunnen til
at det må være littegranne mer enn to samples per syklus finner
du også i sinusen vi laget av impulser et lite stykke over. Ved
å kombinere impulser som gikk annenhver på og av ble summen
en sinus. Dette fungerer utmerket så lenge signalene er på
maks og minimums-verdi, men hva om de ligger helt midt på kurven?
Da vil de sample en null-verdi hver eneste gang og resultatet vil bli
en flat strøm med nuller! Om signalet som samples har nesten nøyaktig
halvparten av klokkefrekvensen vil det derfor oppstå en feil med
volumet. Ved å øke frekvensen på samplingen eller senke
hastigheten til sinusen littegranne unngås problematikken. Det digitale
systemet vil gjenngi den flytende bølgen med garantert presisjon.
Samplingsteorien er så perfekt at det er vakkert, men i praksis
er det ikke bare maksimal sinus-hastighet som setter maksimal frekvens
i systemet. For at sampleren skal fungere som tiltenkt må alle frekvenser
som overstiger halvparten av klokke-hastigheten filtreres ut. Filtre bruker
en hel del båndbredde fra de begynner å drepe lyd til all
lyden er dempet. Punktet hvor de dreper -3dB er som oftest det som blir
oppgitt som filterfrekvensen, derfra forsvinner lyden med X decibel per
oktav, per dobling av frekvensen, oppover i registeret. Et vanlig synth-filter
med 24dB per oktav vil med et -3dB punkt på 20kHz fortsatt ha -27dB
lyd igjen på 40kHz og -51dB på 80kHz! Det finnes mange lure
løsninger rundt dette og alle involverer at det brukes en høyere
klokkefrekvens i samplingssystemet for å overkomme problemet med
å få filtrert ut de unødvendige frekvensene. Alle nyere
samplingssystemer er av den over-samplede typen systemer som bruker fra
2 til 256 ganger vanlig klokkefrekvens. Ved å sample i megahertz-området
kan det analoge filteret som ligger før digitaliseringen være
et svært enkelt filter med en veldig svak kurve. Sampling på
slike hastigheter er svært unøyaktig og gir ikke mange bits.
Et digitalt filter bytter hastighet mot presisjon og gjør om de
få bit'ene i mHz hastighet til et 24 bits ord i vanlig samplingshastighet
som sendes videre til neste enhet i rekken.
Filtrerings-problemet
gjelder utelukkende lokalt i selve konverteringsprosessen mellom de analoge
og de digitale rikene. Når signalet først er blitt samplet
er det egentlig ingen grunn til å bruke vanvittig høye samplerates.
Mennesket hører uansett bare opp til 20kHz! Når den oversamplede
sampleren har gjort jobben sin i høy hastighet blir signalet digitalt
filtrert og sendt videre i et mer levelig tempo tilpasset dagens lydstandarder,
f.eks. 44.1kHz, 96kHz eller 192kHz. En samplerate rundt 60kHz ville vært
ideelt for både å gi plass til god filtrering og minske mengden
ubrukelig informasjon, men med dagens valg på lydformat er 88.2
eller 96kHz det nærmeste vi kommer. Mer enn dette er unødvendig
på alle måter og vil faktisk gi dårligere resultater.
I sampleren skal elektronene i det analoge signalet rekke å stabilisere
seg, bli lest av som en digital verdi og bli tømt igjen fra bufferen
før neste verdi skal leses av. 192kHz er rett og slett for kjapt
til at elektroniske kretser kan få tid til å gjøre
en ordentlig måling av signalet i høy oppløsning .
Klokkefrekvensen begrenser altså hastighets-oppløsningen,
eller hvor kjappe endringer vi kan registrere, langs Y aksen, bortover
i tid. Så lenge klokken er mer enn to ganger fortere enn signalet
som ska samples blir det gjenngitt i sin fulle helhet som en myk og flytende
bølge. Hver enkelt sample har et visst antall siffer som settter
plasseringen på X aksen, oppover i signalnivå. Dette er støyforholdet
i systemet. Med 8 bits er det bare 2 opphøyd i 8, 256, steg å
velge mellom når nivået på kurven skal leses av analog
til digital konvertereren(ADC). Alle verdier mellom disse stegene blir
plassert på nærmeste tilgjengelige plass. Skal tallet bestemmes
mer nøyaktig må det mer bits til. Forskjellen mellom den
egentlige verdien på signalet og verdien som blir valgt av ADC'en
utgjør en feil, såkalt kvantiserings-støy. Feil-mengden
er maksimalt lik halvparten av verdien på den minste bit'en. For
hver ekstra bit som legges til i tallet dobler det i størrelse
og øker dermed evnen til å skille mellom forskjellige verdier
med 6dB. Kvantiseringsstøyen dempes tilsvarende med 6dB for hver
ekstra bit. 8 bit har 48dB dynamikk, 16 bit har 96dB og 24 bit gir et
spenn fra toppen til støygulvet på 144dB. Denne kvantiserings-støyen
er en følge av at den flytende bølgen blir stykket opp i
begrensede verdier langs den vertikale aksen, volumet på signalet.
I utgangspunktet er denne støyen svært ubehagelig, men den
kan elegant unngås ved å bruke dithering, som vist i signalnivå
og dithering artikelen.
Et samplet system kan være en nøyaktig serie impulser med
varierende verdi, som vist over. Hver enkelt sample skyter fra null til
toppverdien sin og tilbake til null igjen, hengende løst i tid
med tomrom mellom hver sample. Såkalt Return To Zero sampling. Det
kan også være en firkantet sammenhengende bølge der
hver sampleverdi blir holdt på sin verdi frem til neste sampleverdi
kommer. Non Return To Zero sampling. Bildet under viser 2222 og 8888 Hz
sinusene i 44.1kHz samplern med firkantblokker tegnet i grått. Bølgen
blir holdt flatt på samme verdien frem til neste samplepunkt hvor
den plutselig skifter nivå momentant.
Disse sprangene er litt lik impulsene i det at blir en haug med overtoner
av det. Bevegelsene over er små og kraftige og lager svært
høye frekvenser! Den fine sammenhengende bølgen er gått
fra å flyte mellom punktene til å bli firkantet og langt i
fra en ren sinus. Kvantisering langs Y axen, på volumet, er reel.
Det er derimot ikke kvantiseringen bortover i tid, på X aksen, som
det er snakk om her. Riktignok er signalet nå utvilsomt rett og
slett fullt av søppel, det er tydelig. Heldigvis ligger all støyen
på frekvenser over grunnbåndet av interesse!
Alle overtonene som oppstår er hendig nok nøyaktige speilinger
av spekteret til original-signalet. Frekvensbåndet i en ideel 44.1kHz
sampler går fra null opp til 22050. Rundt punktet på 22050
speiler frekvensene seg og et speilbilde av originalregisteret brer seg
opp til 44100 hvor det begynner på null igjen. Der ligger det en
perfekt kopi av originalregisteret fra bass til diskant, opp til 66150hz.
Der blir det igjen speilvendt og daler ned mot bassen på 88200,
hvorpå overtonene igjen går vanlig vei fra bass til diskant
opp til 110250, og så videre i det uendelige. Bildet under viser
en tenkt sample med et frekvensregister som speiler og kopierer seg selv
oppover i registeret:
Teoretisk sett trengs det ikke filter på utgangen av en digital->analog
konverterer på 44.1kHz eller høyere klokkefrekvens. Alt som
er hørbart er det første frekvens-spekteret, alt annet ligger
langt over menneskets lytteevner. I praksis liker ikke resten av utstyret
å få radiofrekvente signaler inn i seg. Det gir ofte rare
støyfenomener i det hørbare registeret. Filtreringen må
skje et sted i kjeden, energien kan ikke bare forisvinne av seg selv.
Høytalerne spiller i hvert fall ikke ultralyd. Derfor brukes det
også oversampling og filtrering på utgangen, for å få
kontroll på prosessen og gjøre det på en hensiktsmessig
måte.
På inngangen er det derimot enormt viktig med filtrering! Om originalen
ikke er filtrert nok vil spekteret i det originale signalet strekke seg
inn i speilbildet i det digitaliserte signalet. Sampleren prøver
da å sample med mindre enn to ganger signalets frekvens. Alle speilbildene
er lik hverandre, om en av disse endrer seg vil også alle andre,
inkludert originalen, endre seg. Dette er veldig hørbart og opptrer
som et såkalt alias signal som daler nedover i frekvensregisteret
jo lenger inn i speilbildet signalet går. Ta for eks en 32050Hz
tone i dette systemet som har en begrensning på 22050Hz. Tonen på
32050 ligger 10000Hz inn
i speilbildet og i det hørbare registeret vil det komme en speilet
tone på 22050 minus 10kHz, 12050Hz.
Digitale prosesser har en tendens til å skape høyfrekvent
energi ved å gjøre skarpe endringer på lydkurven. Om
disse ikke filtreres ut vil det slå inn i original-signalet som
alias frekvenser. For eksempel er det mange populære limitere som
skaper mye aliasing. Disse alias over- og undertonene som kommer inn i
signalet er avhengig av klokkefrekvensen, ikke originalsignalet. Det blir
totalt dis-harmonisk i forhold til nesten ethvert tenkelig signal! I motsetning
til vanlig vreng som gir overtoner med matematisk perfekt dobling, tredobling,
firedobling, osv av originalfrekvensene. Alias låter per definisjon
surt og skarpt. Det gjør også det meste av de andre feilene
som kan oppstå i sampling og digital signalbehandling.
Alle bildene av filter-prosesser i denne artikkelen er laget med et lavpass-filter
med nær umiddelbar demping av lyden over filterfrekvensen. Gir en
god illustrasjon av hvordan de øverste tonene blir filtrert ned
til sinuser som opptar mye større plass både i tid og høyde
enn originalen. I samplingsteorien er en totalt ideel lavpass respons,
med umiddelbar demping over filterfrekvensen, en del av regnestykket.
Utslagene ville vært mye mindre ved bruk av et slakere filter. I
de fleste virkelige filtre er heldigvis ikke dette noe stort problem da
det unngås ved å bruke oversampling.
Samplede systemer
er så og si perfekt. Helt til det skal skje noe med lyden, da er
det plutselig veldig vanskelig. Som et rent opptaks og avspillings system
er det ikke så krevende å ha nær perfekt prestanda på
den digitale siden. Det er bare å flytte på masse data uten
å ødelegge noe. Den store forskjellen i kvaliteten i samplings-systemer
ligger i den analoge elektronikken på inn og utgangene. Her er det
enorme variasjoner fra de billigste til de dyreste. Som med all annen
elektronikk er det svært krevende å lage gode kretser.
Ekstremt høye klokkefrekvenser er unødvendig for opptak
og avspilling, men mange digitale effekter har godt av å jobbe på
høye frekvenser. Mange prosessorer har nå mulighet for 2
og 4 ganger oversampling internt i prosessen. Oversamplingen er i seg
selv ikke så lett å få til, men om den er god nok vil
det som oftest gi langt bedre resultater å jobbe med effekter på
høyere frekvenser. Dette er spesielt tydelig i kompressorer, limetere
og andre såkalt ikke-lineære prosesser. Se denne
linken for et eksempel på alias-artifakter i et par populære
limitere. Det største problemet er at det krever enorm datakraft.
Svært få maskiner har regnekraft nok til å jobbe under
optimale forhold og brukerne legger ofte stor vekt på CPU-bruken.
De aller fleste digitale prosesser blir kodet med prioritet på hastighet,
ikke nøyaktighet. Digital lyd er i dag et minefelt. Forhåpentligvis
har denne artikkelen gitt et litt bedre grunnlag for å finne frem
i terrenget.
Andreas Nordenstam
Mye av stoffet
i denne artikkelen er basert på Dan Lavrys eminente introduksjon
til Sampling
Lenker:
notam02.no/../bok.html
- Grundig innføring i lydfenomener på Norsk av Øyvind
Hammer ved Notam
howstuffworks.com/analog-digital
enkle forklaringer på det meste av praktiske fenomener, her litt
samplingsteori
Rane.com: Digital
Dharma of Audio A/D Converters - Rane note om sampling
national.com/an/../AN-236.pdf
- an introduction to the sampling theorem fra National Semiconductor
* Hete søkeord i denne sammenhengen er bl.a.Sine
Wave, Unit
Circle, wave
motion, deciBel,
loudness,
fourier,
Dirac
Impulse, audio
filter, sampling
frequency og sinc.
** Bildene
som er brukt i denne artikelen er laget i et vanlig lydredigeringsprogram
med signal-generator, volumkontroll og et fase-lineært filter. Klokkefrekvensen
i programmet varierer fra 44.1kHz på noen bilder til 192kHz på
de fleste. Den unødvendig høye frekvensen er valgt for å
få et bedre bilde rent visuelt, men det er fortsatt et godt stykke
fra å være et perfekt bilde av hvordan bølgen blir
rekonstruert når den kommer ut av datamaskinen. Et oscilloscop er
det beste verktøyet for å se på bølgene. Presisjonen
i redigeringen er svært lav. Mange av bildene er fjernt fra å
være så nøyaktig som de blir i et ekte system. Det
gir grove tilnærminger til de perfekte visuelle resultatet som ville
oppstått ved å bruke et rent matematisk verktøy. Det
samme kan sies om forklaringene, som egentlig best beskrives med regnestykker.
Forhåpentligvis blir det veid opp av at denne vinklingen gir en
familiær kobling til lyd. Det er mulig for alle som er interessert
å selv gjennskape alle disse bølgene med et vanlig redigeringsprogram.
Noen programmer, som Cool Edit/Audition, viser en oversamplet bølge
mellom samplepunktene som gir et presist visuelt bilde av den samplede
kurven.