Data-acquisitie en bemonstering: oefenopgaven met stapsgewijze oplossingen

Gratis oefenopgaven over Data-acquisitie en bemonstering met schema’s, hints en volledig uitgewerkte oplossingen. Elke keer nieuwe waarden, op drie niveaus: Nyquist, LSB en datasnelheden, aliasing, bits en UART-frames, harmonischen, SQNR en systeemontwerp.

Gratis oefenopgaveMakkelijk
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?115200 Bd

Een UART-verbinding draait op 115200 baud. Bepaal de duur Tb van één bit, in µs.

baud = 115200 Bd
µs

Wat je oefent

  1. MakkelijkNyquist, LSB en datasnelheden
  2. Gemiddeldaliasing, bits en UART-frames
  3. Moeilijkharmonischen, SQNR en systeemontwerp

Zo los je opgaven over Data-acquisitie en bemonstering op

  1. Schrijf op wat gegeven is: bemonsteringsfrequentie, signaalfrequenties, aantal bits, ingangsbereik, baudrate.
  2. Vergelijk bij bemonsteringsvragen elke frequentie met fs/2; een hogere frequentie verschijnt bij fa = |f − k·fs| met het dichtstbijzijnde veelvoud van fs.
  3. Bepaal bij resolutievragen 1 LSB = VFSR/2ᴺ, of de kleinste N met 2ᴺ ≥ bereik/resolutie.
  4. Tel bij datasnelheden en UART-verbindingen alles wat wordt verzonden: kanalen, samples per seconde, bits of hele bytes per sample, en de start-, pariteits- en stopbits van elk frame.

Veelgemaakte fouten

  • Denken dat een frequentie boven fs/2 verdwijnt: ze verschijnt als alias binnen de band.
  • Het bereik door N delen in plaats van door 2ᴺ.
  • Het aantal bits naar beneden afronden in plaats van naar boven.
  • De start- en stopbits vergeten: 8N1 verstuurt 10 bits per byte.

Belangrijke formules

Nyquistcriterium
fs > 2·fmax, fN = fs/2
Aliasfrequentie
fa = |f − k·fs|, k = round(f/fs)
Stapgrootte
1 LSB = VFSR/2ᴺ
Kwantisatiefout (afronding)
±½ LSB
Afkappende ADC-code
D = ⌊Vin/LSB⌋
Bits voor een resolutie r
2ᴺ ≥ span/r
Ideale SQNR, volle-schaal sinus
SQNR = 6,02·N + 1,76 dB
Datasnelheid
kanalen × fs × N bit/s
Gemultiplexte ADC
fs = 1/(n·(tc + tset))
UART
Tb = 1/baud; 8N1 = 10 bits per byte; bytes/s = baud/bits per frame
Baudrate-deler
baud = fclk/(16·D)

Leer Data-acquisitie en bemonstering vanaf nul

Hiervoor: Talstelsels

1Wat data-acquisitie is

Een computer kan een spanning niet rechtstreeks inlezen. Een data-acquisitiesysteem zet een fysische grootheid om in getallen: een sensor maakt een kleine spanning, een versterker schaalt die op, en een analoog-digitaalomzetter (ADC) meet haar op regelmatige momenten en geeft een binair getal af.

TG∿01N, fs​0101

Twee keuzes bepalen hoe goed de getallen zijn. De bemonsteringsfrequentie fs zegt hoe vaak de ADC meet, en het aantal bits N zegt hoe fijn hij zijn spanningsbereik verdeelt. Samen bepalen ze ook hoeveel data je moet opslaan of verzenden.

Zelftoets Een ADC bemonstert met 2 kHz. Hoeveel samples neemt hij in 0,5 s?
  1. 1000
  2. 2000
  3. 250
  4. 4000

Antwoord: 1000. Samples = fs·t = 2000·0,5 = 1000. Vermenigvuldigen met 2 in plaats van 0,5 geeft 4000, en de tijd negeren geeft 2000.

2Bemonstering en aliasing

Om een sinus vast te leggen heb je meer dan twee samples per periode nodig. De bemonsteringsfrequentie moet dus meer dan twee keer de hoogste frequentie in het signaal zijn. De helft van de bemonsteringsfrequentie is de Nyquistfrequentie:

fs > 2·fmax fN = fs/2

Een frequentie boven fs/2 verdwijnt niet. Haar samples zien er precies zo uit als die van een lagere frequentie, de alias. In de figuur wordt een sinus van 7 Hz (getrokken lijn) bemonsterd met 10 Hz, en de punten passen even goed op een sinus van 3 Hz (gestippeld).

tf = 7 Hzfs​ = 10 Hz
fa = |f − k·fs|, k = het gehele getal dat het dichtst bij f/fs ligt

Na de bemonstering kan niets de alias nog onderscheiden van een echt signaal. Daarom verwijdert een analoog anti-aliasingfilter alles boven fs/2 vóór de ADC.

Zelftoets Een toon van 7 kHz wordt zonder filter bemonsterd met 10 kHz. Bij welke frequentie verschijnt hij?
  1. 17 kHz
  2. 3 kHz
  3. 5 kHz
  4. 7 kHz

Antwoord: 3 kHz. 7 kHz ligt boven fs/2 = 5 kHz, dus hij vouwt terug: |7 − 1·10| = 3 kHz. Hij kan niet op 7 kHz blijven, 17 kHz telt op in plaats van af te trekken, en 5 kHz is alleen de vouwfrequentie.

3Resolutie en kwantisatie

Een N-bits ADC heeft 2ᴺ uitgangscodes, van 0 tot 2ᴺ − 1. Hij verdeelt zijn volle-schaalbereik VFSR in 2ᴺ gelijke stappen. Eén stap heet 1 LSB (least significant bit):

1 LSB = VFSR/2ᴺ

Een afkappende ADC geeft de code ⌊Vin/LSB⌋, het hele getal eronder. Een afrondende ADC zit nooit meer dan ½ LSB van de ware waarde af: dat is zijn kwantisatiefout.

Om stappen van grootte r over een bereik te onderscheiden heb je de kleinste N nodig met 2ᴺ ≥ bereik/r. Elke extra bit halveert de LSB en voegt ongeveer 6 dB toe aan de ideale signaal-kwantisatieruisverhouding:

SQNR = 6,02·N + 1,76 dB
Zelftoets Een 10-bits ADC heeft een bereik van 0 tot 5,12 V. Hoe groot is 1 LSB?
  1. 10 mV
  2. 2,5 mV
  3. 5 mV
  4. 512 mV

Antwoord: 5 mV. 210 = 1024, dus 1 LSB = 5,12/1024 = 0,005 V = 5 mV. Delen door N = 10 geeft 512 mV, 2⁹ gebruiken geeft 10 mV, en 2,5 mV is de grootste fout van een afrondende ADC, een halve LSB.

4Datasnelheden en seriële verbindingen

Elk kanaal levert fs samples per seconde van N bits. De ruwe datasnelheid is kanalen × fs × N. In het geheugen neemt een sample hele bytes in beslag, dus een sample van 12 bits gebruikt 2 bytes.

Een UART verstuurt elke byte als een frame: een startbit, 8 databits, een optionele pariteitsbit en een of twee stopbits. In het gangbare 8N1-formaat is dat 10 bits per byte. De baudrate telt bits per seconde, dus één bit duurt 1/baud.

bytes per seconde = baud/(bits per frame)

Een multiplexer laat één ADC om de beurt meerdere kanalen bedienen. Als één conversie (inclusief insteltijd) t duurt, wordt elk van de n kanalen bemonsterd met 1/(n·t).

5Een uitgewerkt voorbeeld

Gebruik deze volgorde voor de meeste vragen:

  1. Controleer de bemonsteringsfrequentie aan de hand van de hoogste signaalfrequentie.
  2. Bepaal de stapgrootte uit het bereik en het aantal bits.
  3. Tel de data: kanalen, samples per seconde, bytes per sample.
  4. Vergelijk met wat de verbinding of het geheugen aankan, en tel start-, pariteits- en stopbits mee.
Uitgewerkt voorbeeld

Een logger meet 4 temperatuurkanalen met een 12-bits ADC over 0 tot 4,096 V. De signalen bevatten frequenties tot 20 Hz, en elk kanaal wordt bemonsterd met 100 Hz. Elk sample wordt als 2 bytes via een UART verzonden met 9600 baud, 8N1. Is de bemonsteringsfrequentie hoog genoeg, hoe groot is 1 LSB, en kan de verbinding het bijhouden?

1

Nyquistcontrole

2·fmax = 2·20 = 40 Hz < 100 Hz

De bemonsteringsfrequentie is hoog genoeg.

2

Stapgrootte

1 LSB = 4,096/212 = 4,096/4096 = 0,001 V = 1 mV
3

Te verzenden data

4 kanalen · 100 samples/s · 2 bytes = 800 bytes/s
4

Capaciteit van de verbinding

8N1 verstuurt 10 bits per byte.

9600/10 = 960 bytes/s ≥ 800 bytes/s
5

Controleer het antwoord

Op de lijn is dat 800·10 = 8000 bit/s, onder de 9600 baud. De verbinding is voor 83 % bezet.

Antwoord

Ja: 100 Hz is meer dan twee keer 20 Hz, 1 LSB = 1 mV, en de verbinding heeft 800 van zijn 960 bytes/s nodig.

6Veelgemaakte fouten

  • Denken dat een frequentie boven fs/2 gewoon verloren gaat: ze verschijnt als alias binnen de band.
  • Het bereik door N delen in plaats van door 2ᴺ.
  • Het aantal bits naar beneden afronden: 2ᴺ moet minstens bereik/resolutie zijn.
  • 8 bits per byte tellen op een UART: 8N1 heeft er 10 nodig.
  • Vergeten dat een sample van 10 of 12 bits in 2 hele bytes wordt opgeslagen.
Zelftoets Hoeveel bytes per seconde kan een UART van 9600 baud verzenden in het 8N1-formaat?
  1. 1067
  2. 1200
  3. 9600
  4. 960

Antwoord: 960. Elke byte heeft 10 bits nodig (start, 8 data, stop): 9600/10 = 960. Delen door 8 vergeet de start- en stopbits, en delen door 9 vergeet er een van.

7Hoe tentamenvragen eruitzien

  • Makkelijk: Nyquist, LSB en datasnelheden. Je bepaalt de minimale bemonsteringsfrequentie, de Nyquistfrequentie, de LSB-grootte of kwantisatiefout, de bittijd van een UART of de ruwe datasnelheid.
  • Gemiddeld: aliasing, bits en UART-frames. Je bepaalt een aliasfrequentie, het aantal bits voor een resolutie, de uitgangscode voor een spanning, het geheugen voor een opname, de byte-snelheid van een UART-formaat of de ideale SQNR.
  • Moeilijk: harmonischen, SQNR en systeemontwerp. Je bepaalt waar een harmonische alias wordt, de bits voor een vereiste SQNR, de hoogste frequentie die een via UART streamende ADC kan vastleggen, de snelheid van een gemultiplexte ADC, de baudratefout van een deler of de temperatuurresolutie van een sensorketen.

Leer het stap voor stap in de appLeer het stap voor stap in de app

Uitgewerkte voorbeelden

Voorbeeld 1Makkelijk
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?2400 Bd

Een UART-verbinding draait op 2400 baud. Bepaal de duur Tb van één bit, in µs.

baud = 2400 Bd

Gevraagd: Tb (µs)

Hints tonen
  1. De baudrate is het aantal bits dat per seconde wordt verzonden.
  2. Tb = 1/baud.
  3. 1 s = 10⁶ µs.
Toon het antwoord en de stapsgewijze oplossing

UART: een asynchrone seriële verbinding verstuurt elke byte als een frame: één startbit (laag), de databits, een optionele pariteitsbit en een of twee stopbits (hoog). De baudrate is het aantal bits per seconde, dus één bit duurt Tb = 1/baud en een frame van n bits duurt n/baud. Het gangbare 8N1-formaat heeft 10 bits per byte. De baudgenerator deelt de klok: baud = fclk/(16·D) met een geheel getal D, dus de werkelijke baudrate wijkt iets af van de gewenste; een fout onder ongeveer 2 % is meestal acceptabel.

Bittijd

Tb = 1/2400 s = 416,7 µs

Antwoord

Tb = 416,7 µs
Voorbeeld 2Gemiddeld
Vin​N = 85 V2ᴺ − 101 LSB2,125 V?

Een 8-bits ADC met een ingangsbereik van 0 tot 5 V kapt af: zijn uitgangscode is ⌊Vin/LSB⌋ met 1 LSB = VFSR/2ᴺ. Bepaal de decimale uitgangscode D voor een ingang van 2,125 V.

N = 8VFSR = 5 VVin = 2,125 V

Gevraagd: D

Hints tonen
  1. Bepaal eerst de grootte van één LSB.
  2. 1 LSB = 5/256 = 19,53 mV.
  3. Deel de ingang door de LSB en houd het gehele deel.
Toon het antwoord en de stapsgewijze oplossing

ADC-resolutie: een N-bits omzetter verdeelt zijn volle-schaalbereik VFSR in 2ᴺ codes, van 0 tot 2ᴺ − 1. Eén stap is 1 LSB = VFSR/2ᴺ: de kleinste verandering die de omzetter kan tonen. Een afkappende ADC geeft de code ⌊Vin/LSB⌋; een afrondende ADC zit nooit meer dan ½ LSB van de ware waarde af, zijn kwantisatiefout. Elke extra bit halveert de LSB en voegt ongeveer 6 dB toe aan de ideale signaal-kwantisatieruisverhouding SQNR = 6,02·N + 1,76 dB voor een sinus met volle uitsturing. Om een resolutie r over een bereik te halen, kies je de kleinste N met 2ᴺ ≥ bereik/r.

Stapgrootte

1 LSB = 5/28 = 19,53 mV

Code

Vin/LSB = 2125/19,53 = 108,8
code = ⌊108,8⌋ = 108

Antwoord

D = 108

In binair is dat 01101100.

Voorbeeld 3Moeilijk
f0fs​/2fs​1,92 kHz7f₁?

Een blokgolf van 1,92 kHz wordt zonder anti-aliasingfilter bemonsterd met 8 kHz. Een blokgolf bevat de oneven harmonischen 3f₁, 5f₁, 7f₁, … Bij welke frequentie fa verschijnt zijn harmonische 7f₁ in de bemonsterde data? Geef het antwoord in Hz.

f₁ = 1,92 kHzfs = 8 kHzharmonische: 7f₁

Gevraagd: fa (Hz)

Hints tonen
  1. De harmonische ligt bij 7·1,92 kHz = 13,44 kHz, boven fs/2 = 4 kHz.
  2. Ze verschijnt bij fa = |f − k·fs| met het dichtstbijzijnde veelvoud van fs.
  3. 13440/8000 = 1,68.
Toon het antwoord en de stapsgewijze oplossing

Bemonstering: een ADC meet het signaal fs keer per seconde. Volgens het Nyquist–Shannon-theorema wordt een frequentie f alleen correct vastgelegd zolang f < fs/2, de Nyquistfrequentie (vouwfrequentie), dus de bemonsteringsfrequentie moet groter zijn dan twee keer de hoogste signaalfrequentie. Een hogere frequentie gaat niet verloren: ze verschijnt als alias bij fa = |f − k·fs|, met het hele getal k dat het resultaat tussen 0 en fs/2 brengt. De samples kunnen de twee niet uit elkaar houden, dus een analoog anti-aliasingfilter moet alles boven fs/2 verwijderen vóór de ADC.

Frequentie van de harmonische

7f₁ = 7·1,92 kHz = 13,44 kHz

Dichtstbijzijnde veelvoud van de bemonsteringsfrequentie

m = round(1,68) = 2

Aliasfrequentie

fa = |13440 − 2·8000| = 2560 Hz

Antwoord

fa = 2560 Hz

De alias komt binnen de signaalband terecht, waar geen digitaal filter hem kan verwijderen. Alleen een analoog filter vóór de ADC helpt.

Vragen en antwoorden

Data-acquisitie en bemonstering: wat is het?

Een computer kan een spanning niet rechtstreeks inlezen. Een data-acquisitiesysteem zet een fysische grootheid om in getallen: een sensor maakt een kleine spanning, een versterker schaalt die op, en een analoog-digitaalomzetter (ADC) meet haar op regelmatige momenten en geeft een binair getal af.

Twee keuzes bepalen hoe goed de getallen zijn. De bemonsteringsfrequentie fs zegt hoe vaak de ADC meet, en het aantal bits N zegt hoe fijn hij zijn spanningsbereik verdeelt. Samen bepalen ze ook hoeveel data je moet opslaan of verzenden.

Data-acquisitie en bemonstering: hoe los je de opgaven stap voor stap op?
  1. Schrijf op wat gegeven is: bemonsteringsfrequentie, signaalfrequenties, aantal bits, ingangsbereik, baudrate.
  2. Vergelijk bij bemonsteringsvragen elke frequentie met fs/2; een hogere frequentie verschijnt bij fa = |f − k·fs| met het dichtstbijzijnde veelvoud van fs.
  3. Bepaal bij resolutievragen 1 LSB = VFSR/2ᴺ, of de kleinste N met 2ᴺ ≥ bereik/resolutie.
  4. Tel bij datasnelheden en UART-verbindingen alles wat wordt verzonden: kanalen, samples per seconde, bits of hele bytes per sample, en de start-, pariteits- en stopbits van elk frame.
Data-acquisitie en bemonstering: wat zijn veelgemaakte fouten?
  • Denken dat een frequentie boven fs/2 verdwijnt: ze verschijnt als alias binnen de band.
  • Het bereik door N delen in plaats van door 2ᴺ.
  • Het aantal bits naar beneden afronden in plaats van naar boven.
  • De start- en stopbits vergeten: 8N1 verstuurt 10 bits per byte.
Data-acquisitie en bemonstering: wat oefen je?
  • Makkelijk: Nyquist, LSB en datasnelheden
  • Gemiddeld: aliasing, bits en UART-frames
  • Moeilijk: harmonischen, SQNR en systeemontwerp

Elke opgave heeft nieuwe waarden, zodat je de methode leert in plaats van een antwoord. Kom je vast te zitten? Open eerst een kleine hint en de volledige uitleg pas als je die nodig hebt.

Zo werkt het oefenen

  • Elke opgave heeft nieuwe waarden, zodat je de methode leert in plaats van een antwoord.
  • Kom je vast te zitten? Open eerst een kleine hint en de volledige uitleg pas als je die nodig hebt.
  • Je voortgang, fouten en bewaarde opgaven blijven bewaard, zodat je vóór het tentamen kunt herhalen.

Onderwerpen ervoor en erna

Eerst leren

Vakken met dit onderwerp

Meer onderwerpen in Elektrotechniek

Printbaar werkblad