Tilbake
2.7
AD- og DA-omforming

2.7 AD- og DA-omforming

Konvertering mellom analoge og digitale signaler med AD- og DA-omformere.

50 min
5 oppgaver
AD-omformerDA-omformerOppløsningSamplingsfrekvensKvantisering
Du leser den lesevennlige versjonen
Din fremgang i kapitlet
0 / 5 oppgaver

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 fsf_s, 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 28=2562^8 = 256 nivåer, en 10-bits har 210=10242^{10} = 1024, og en 12-bits hele 212=40962^{12} = 4096. 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 52101=510230,00489\displaystyle \frac{5}{2^{10}-1} = \frac{5}{1023} \approx 0{,}00489 V, altså cirka 4,89 mV. Skal vi måle en spenning på 3,2 V, blir den digitale verdien 3,20,00489654\displaystyle \frac{3{,}2}{0{,}00489} \approx 654. Sjekker vi tilbake, svarer 654 til 6540,004893,198654 \cdot 0{,}00489 \approx 3{,}198 V, så kvantiseringsfeilen er bare omtrent 2 mV. Med 10 bits måler vi altså spenningen med rundt 5 mV nøyaktighet.

📝Oppgave Quiz 1

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:

fs2fmaxf_s \geq 2 \cdot f_{max}

Halvparten av samplingsfrekvensen kalles Nyquist-frekvensen, fN=fs/2f_N = f_s/2. 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 215000=300002 \cdot 15000 = 30\,000 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 250=1002 \cdot 50 = 100 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.

📝Oppgave Quiz 2

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 nn-bits DAC med referansespenning VrefV_{ref} er formelen:

Vut=digital verdi2nVrefV_{ut} = \frac{\text{digital verdi}}{2^n} \cdot V_{ref}

Ta en 8-bits DAC med Vref=5V_{ref} = 5 V. Den digitale verdien 0 gir 0 V, verdien 128 gir 1282565=2,5\displaystyle \frac{128}{256} \cdot 5 = 2{,}5 V, og den høyeste verdien 255 gir 25525654,98\displaystyle \frac{255}{256} \cdot 5 \approx 4{,}98 V. Med Vref=3,3V_{ref} = 3{,}3 V og inngangen 200 blir det 2002563,32,58\displaystyle \frac{200}{256} \cdot 3{,}3 \approx 2{,}58 V, og minste spenningstrinn er 3,325612,9\displaystyle \frac{3{,}3}{256} \approx 12{,}9 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 441002=8820044100 \cdot 2 = 88\,200 byte per sekund per kanal – over 170 kB/s for stereo. De 16 bitene gir forresten 216=655362^{16} = 65\,536 mulige lydnivåer, nok til et dynamikkområde på rundt 96 dB.

📝Oppgave Quiz 3

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 nn-bits ADC har 2n2^n nivåer og dermed mindre kvantiseringsfeil jo flere bits.

Nyquist-teoremet, fs2fmaxf_s \geq 2 \cdot f_{max}, 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 Vut=digital verdi2nVref\displaystyle V_{ut} = \frac{\text{digital verdi}}{2^n} \cdot V_{ref}, 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.