Konvertering mellom analoge og digitale signaler med AD- og DA-omformere.
Fra stemme til tall og tilbake
Når du snakker inn i mobilen, sender du ut lydbølger – noe glidende og kontinuerlig, der trykket varierer jevnt opp og ned. Men inni telefonen finnes bare nuller og enere. Hvordan klarer den å fange den myke stemmen din i en verden av harde digitale tall, og hvordan gir høyttaleren den tilbake som ekte lyd?
Svaret er to slags omformere. Den virkelige verden – lyd, lys, temperatur, trykk – er analog, den varierer kontinuerlig. Digitale systemer kjenner bare diskrete verdier. For å bygge bro mellom dem bruker vi en AD-omformer (ADC) som gjør analoge signaler om til digitale tall, og en DA-omformer (DAC) som gjør det motsatte. Mikrofonen din har en ADC, høyttaleren en DAC, og det samme finnes i temperaturmålere, medisinsk utstyr og musikkspillere.
I dette kapittelet skal vi forstå hele kjeden. Vi ser hvordan AD-omforming foregår gjennom sampling og kvantisering, hva oppløsning betyr for nøyaktigheten, hvorfor Nyquist-teoremet setter en grense for hvor sjelden vi kan måle, og til slutt hvordan en DAC bygger den analoge spenningen tilbake fra tallene.
Å fange et analogt signal
AD-omforming skjer i to steg. Det første er sampling, eller prøvetaking: vi måler det analoge signalet med jevne mellomrom. Hvor mange målinger vi tar per sekund, kaller vi samplingsfrekvensen , målt i hertz. CD-lyd bruker 44 100 Hz, telefonlyd klarer seg med 8000 Hz, og en Arduino sampler typisk rundt 10 000 Hz.
Det andre steget er kvantisering: hver måling rundes av til nærmeste tilgjengelige digitale verdi. Hvor mange verdier vi har å velge mellom, bestemmes av oppløsningen – antall bits. En 8-bits ADC har nivåer, en 10-bits har , og en 12-bits hele . Forskjellen mellom den ekte analoge verdien og den nærmeste digitale kaller vi kvantiseringsfeil, og flere bits gir mindre feil og høyere nøyaktighet.
La oss regne på en ekte ADC. En 10-bits omformer måler fra 0 til 5 V. Spenningsoppløsningen – det minste trinnet den kan skille – blir V, altså cirka 4,89 mV. Skal vi måle en spenning på 3,2 V, blir den digitale verdien . Sjekker vi tilbake, svarer 654 til V, så kvantiseringsfeilen er bare omtrent 2 mV. Med 10 bits måler vi altså spenningen med rundt 5 mV nøyaktighet.
Hvor ofte må vi måle?
Vi har sett at sampling betyr å måle signalet med jevne mellomrom. Men hvor ofte er ofte nok? Hvis vi måler for sjelden, mister vi informasjon, og det analoge signalet kan ikke gjenskapes. Svaret gir Nyquist-teoremet, som sier at samplingsfrekvensen må være minst dobbelt så høy som den høyeste frekvensen i signalet:
Halvparten av samplingsfrekvensen kalles Nyquist-frekvensen, . Signaler med frekvens over denne grensen kan ikke gjengis riktig. Skjer det likevel, oppstår aliasing: høye frekvenser «forkler seg» som lave, og signalet forvrenges. For å hindre dette setter vi et anti-aliasing-filter – et lavpassfilter som fjerner de for høye frekvensene – foran ADC-en.
Et godt eksempel er lyd. Mennesket hører opp til cirka 20 000 Hz, og CD-standarden sampler på 44 100 Hz, som er mer enn det dobbelte. Dermed er Nyquist-kravet oppfylt, og all hørbar lyd gjengis korrekt. Tar vi et lydsignal med frekvenser opp til 15 000 Hz, krever Nyquist minst Hz.
I praksis sampler man gjerne enda hyppigere enn det strenge minimumet. Et tregt temperatursignal som varierer opptil 50 Hz, krever ifølge Nyquist minst Hz – men en tommelfingerregel er å sample 5 til 10 ganger den høyeste frekvensen, altså 250 til 500 Hz her. Denne oversamplingen gir bedre signalkvalitet og gjør det enklere å filtrere bort støy.
Veien tilbake: fra tall til spenning
Når lyden er lagret som tall, må den til slutt bli til ekte lyd igjen. Det er DA-omformerens jobb: å gjøre et digitalt tall om til en analog spenning. Prinsippet er at hvert bit i tallet bidrar med en vektet del av spenningen, og bidragene summeres til utgangsspenningen.
For en -bits DAC med referansespenning er formelen:
Ta en 8-bits DAC med V. Den digitale verdien 0 gir 0 V, verdien 128 gir V, og den høyeste verdien 255 gir V. Med V og inngangen 200 blir det V, og minste spenningstrinn er mV.
Men DAC-utgangen er ikke jevn – den er trappetrinnsformet, fordi den hopper fra ett nivå til neste. For å få en glatt bølgeform sender vi den gjennom et rekonstruksjonsfilter, et lavpassfilter som runder av trappetrinnene til en jevn kurve. Dette er nettopp det som skjer i en CD-spiller eller mobil før lyden når høyttaleren. La oss til slutt regne på datamengden i CD-lyd: 16 bit er 2 byte per sample, og med 44 100 samples i sekundet blir det byte per sekund per kanal – over 170 kB/s for stereo. De 16 bitene gir forresten mulige lydnivåer, nok til et dynamikkområde på rundt 96 dB.
Oppsummering
Vi har fulgt stemmen din hele veien fra lyd til tall og tilbake. AD-omformeren gjør analoge signaler digitale i to steg: sampling måler signalet med jevne mellomrom, og kvantisering runder av til nærmeste digitale nivå. Oppløsningen i antall bits avgjør nøyaktigheten, siden en -bits ADC har nivåer og dermed mindre kvantiseringsfeil jo flere bits.
Nyquist-teoremet, , forteller hvor ofte vi minst må sample for å unngå aliasing, som hindres med et anti-aliasing-filter. Veien tilbake går gjennom DA-omformeren, som bygger en analog spenning fra tallet etter , og et rekonstruksjonsfilter glatter den trappetrinnsformede utgangen. Sammen utgjør ADC og DAC broen mellom den analoge verden og de digitale nullene og enerne.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.