Perolehan data & pensampelan: soalan latihan dengan penyelesaian langkah demi langkah

Soalan latihan Perolehan data & pensampelan percuma dengan rajah, petunjuk dan penyelesaian lengkap. Nilai baharu setiap kali, pada tiga tahap: Nyquist, LSB dan kadar data, alias, bit dan bingkai UART, harmonik, SQNR dan reka bentuk sistem.

Soalan latihan percumaMudah
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?115200 Bd

Pautan UART beroperasi pada 115200 baud. Cari tempoh Tb satu bit, dalam µs.

baud = 115200 Bd
µs
Soalan seterusnya →

Apa yang anda latih

  1. MudahNyquist, LSB dan kadar data
  2. Sederhanaalias, bit dan bingkai UART
  3. Sukarharmonik, SQNR dan reka bentuk sistem

Cara menyelesaikan soalan Perolehan data & pensampelan

  1. Tuliskan apa yang diberi: kadar pensampelan, frekuensi isyarat, bilangan bit, julat input, kadar baud.
  2. Untuk soalan pensampelan, bandingkan setiap frekuensi dengan fs/2; frekuensi yang lebih tinggi muncul pada fa = |f − k·fs| dengan gandaan fs yang terdekat.
  3. Untuk soalan resolusi, cari 1 LSB = VFSR/2ᴺ, atau N terkecil dengan 2ᴺ ≥ span/resolusi.
  4. Untuk kadar data dan pautan UART, kira semua yang dihantar: saluran, sampel sesaat, bit atau bait penuh setiap sampel, serta bit mula, pariti dan henti bagi setiap bingkai.

Kesilapan lazim

  • Menyangka frekuensi di atas fs/2 hilang: ia muncul sebagai alias di dalam jalur.
  • Membahagi julat dengan N dan bukannya dengan 2ᴺ.
  • Membundarkan bilangan bit ke bawah dan bukannya ke atas.
  • Terlupa bit mula dan henti: 8N1 menghantar 10 bit bagi setiap bait.

Formula utama

Kriteria Nyquist
fs > 2·fmax, fN = fs/2
Frekuensi alias
fa = |f − k·fs|, k = round(f/fs)
Saiz langkah
1 LSB = VFSR/2ᴺ
Ralat pengkuantuman (pembundaran)
±½ LSB
Kod ADC pemangkasan
D = ⌊Vin/LSB⌋
Bit untuk resolusi r
2ᴺ ≥ span/r
SQNR unggul, sinus skala penuh
SQNR = 6.02·N + 1.76 dB
Kadar data
saluran × fs × N bit/s
ADC termultipleks
fs = 1/(n·(tc + tset))
UART
Tb = 1/baud; 8N1 = 10 bit setiap bait; bait/s = baud/bit setiap bingkai
Pembahagi kadar baud
baud = fclk/(16·D)

Pelajari Perolehan data & pensampelan dari awal

Sebelum ini: Sistem nombor

1Apa itu perolehan data

Komputer tidak dapat membaca voltan secara langsung. Sistem perolehan data menukarkan kuantiti fizikal kepada nombor: penderia menghasilkan voltan kecil, penguat menskalakannya, dan penukar analog-ke-digital (ADC) mengukurnya pada saat-saat tetap dan mengeluarkan nombor perduaan.

TG∿01N, fs​0101

Dua pilihan menentukan betapa baiknya nombor itu. Kadar pensampelan fs menyatakan kekerapan ADC mengukur, dan bilangan bit N menyatakan betapa halusnya ia membahagikan julat voltannya. Bersama-sama, keduanya juga menentukan berapa banyak data yang perlu anda simpan atau hantar.

Semakan kendiri ADC mengambil sampel pada 2 kHz. Berapa banyak sampel yang diambilnya dalam 0.5 s?
  1. 1000
  2. 2000
  3. 250
  4. 4000

Jawapan: 1000. Sampel = fs·t = 2000·0.5 = 1000. Mendarab dengan 2 dan bukannya 0.5 memberikan 4000, dan mengabaikan masa memberikan 2000.

2Pensampelan dan alias

Untuk menangkap gelombang sinus anda memerlukan lebih daripada dua sampel setiap tempoh. Jadi kadar pensampelan mestilah lebih daripada dua kali ganda frekuensi tertinggi dalam isyarat. Separuh kadar pensampelan ialah frekuensi Nyquist:

fs > 2·fmax fN = fs/2

Frekuensi di atas fs/2 tidak lenyap. Sampelnya kelihatan sama seperti sampel frekuensi yang lebih rendah, iaitu alias. Dalam rajah, sinus 7 Hz (garis penuh) disampel pada 10 Hz, dan titik-titik itu sepadan dengan sinus 3 Hz (garis putus-putus) sama baiknya.

tf = 7 Hzfs​ = 10 Hz
fa = |f − k·fs|, k = nombor bulat yang paling hampir dengan f/fs

Selepas pensampelan tiada apa yang dapat memisahkan alias daripada isyarat sebenar. Itulah sebabnya penapis anti-alias analog membuang semua yang di atas fs/2 sebelum ADC.

Semakan kendiri Nada 7 kHz disampel pada 10 kHz tanpa penapis. Pada frekuensi manakah ia muncul?
  1. 17 kHz
  2. 3 kHz
  3. 5 kHz
  4. 7 kHz

Jawapan: 3 kHz. 7 kHz berada di atas fs/2 = 5 kHz, jadi ia berlipat balik: |7 − 1·10| = 3 kHz. Ia tidak boleh kekal pada 7 kHz, 17 kHz menambah dan bukannya menolak, dan 5 kHz hanyalah frekuensi lipatan.

3Resolusi dan pengkuantuman

ADC N-bit mempunyai 2ᴺ kod output, dari 0 hingga 2ᴺ − 1. Ia membahagikan julat skala penuh VFSR kepada 2ᴺ langkah yang sama. Satu langkah dipanggil 1 LSB (bit paling tidak bererti):

1 LSB = VFSR/2ᴺ

ADC pemangkasan mengeluarkan kod ⌊Vin/LSB⌋, nombor bulat di bawahnya. ADC pembundaran tidak pernah lebih daripada ½ LSB daripada nilai sebenar: itulah ralat pengkuantumannya.

Untuk meleraikan langkah bersaiz r pada suatu julat, anda memerlukan N terkecil dengan 2ᴺ ≥ span/r. Setiap bit tambahan mengurangkan LSB separuh dan menambah kira-kira 6 dB pada nisbah isyarat-ke-hingar-pengkuantuman unggul:

SQNR = 6.02·N + 1.76 dB
Semakan kendiri ADC 10-bit mempunyai julat 0 hingga 5.12 V. Apakah 1 LSB?
  1. 10 mV
  2. 2.5 mV
  3. 5 mV
  4. 512 mV

Jawapan: 5 mV. 210 = 1024, jadi 1 LSB = 5.12/1024 = 0.005 V = 5 mV. Membahagi dengan N = 10 memberikan 512 mV, menggunakan 2⁹ memberikan 10 mV, dan 2.5 mV ialah ralat terbesar ADC pembundaran, setengah LSB.

4Kadar data dan pautan bersiri

Setiap saluran menyampaikan fs sampel sesaat bagi N bit. Kadar data mentah ialah saluran × fs × N. Dalam ingatan, satu sampel mengambil bait penuh, jadi sampel 12-bit menggunakan 2 bait.

UART menghantar setiap bait sebagai bingkai: satu bit mula, 8 bit data, satu bit pariti pilihan dan satu atau dua bit henti. Dalam format 8N1 yang biasa itu ialah 10 bit setiap bait. Kadar baud mengira bit sesaat, jadi satu bit berlangsung 1/baud.

bait sesaat = baud/(bit setiap bingkai)

Pemultipleks membolehkan satu ADC melayan beberapa saluran secara bergilir. Jika satu penukaran (dengan pemenapan) mengambil t, setiap n saluran disampel pada 1/(n·t).

5Contoh terselesai

Gunakan tertib ini untuk kebanyakan soalan:

  1. Semak kadar pensampelan terhadap frekuensi isyarat tertinggi.
  2. Cari saiz langkah daripada julat dan bilangan bit.
  3. Kira data: saluran, sampel sesaat, bait setiap sampel.
  4. Bandingkan dengan apa yang boleh ditampung oleh pautan atau ingatan, dengan mengira bit mula, pariti dan henti.
Contoh terselesai

Pencatat data mengukur 4 saluran suhu dengan ADC 12-bit pada julat 0 hingga 4.096 V. Isyarat mengandungi frekuensi sehingga 20 Hz, dan setiap saluran disampel pada 100 Hz. Setiap sampel dihantar sebagai 2 bait melalui UART pada 9600 baud, 8N1. Adakah kadar pensampelan cukup tinggi, berapakah 1 LSB, dan dapatkah pautan itu menampungnya?

1

Semakan Nyquist

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

Kadar pensampelan cukup tinggi.

2

Saiz langkah

1 LSB = 4.096/212 = 4.096/4096 = 0.001 V = 1 mV
3

Data untuk dihantar

4 saluran · 100 sampel/s · 2 bait = 800 bait/s
4

Kapasiti pautan

8N1 menghantar 10 bit setiap bait.

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

Semak jawapan

Pada talian itu ialah 800·10 = 8000 bit/s, di bawah 9600 baud. Pautan itu sibuk 83 %.

Jawapan

Ya: 100 Hz lebih daripada dua kali ganda 20 Hz, 1 LSB = 1 mV, dan pautan memerlukan 800 daripada 960 bait/s.

6Kesilapan lazim

  • Menyangka frekuensi di atas fs/2 sekadar hilang: ia muncul sebagai alias di dalam jalur.
  • Membahagi julat dengan N dan bukannya 2ᴺ.
  • Membundarkan bilangan bit ke bawah: 2ᴺ mestilah sekurang-kurangnya span/resolusi.
  • Mengira 8 bit setiap bait pada UART: 8N1 memerlukan 10.
  • Terlupa bahawa sampel 10-bit atau 12-bit disimpan dalam 2 bait penuh.
Semakan kendiri Berapa banyak bait sesaat yang boleh dihantar UART 9600 baud dalam format 8N1?
  1. 1067
  2. 1200
  3. 9600
  4. 960

Jawapan: 960. Setiap bait memerlukan 10 bit (mula, 8 data, henti): 9600/10 = 960. Membahagi dengan 8 melupakan bit mula dan henti, dan membahagi dengan 9 melupakan salah satunya.

7Rupa soalan peperiksaan

  • Mudah: Nyquist, LSB dan kadar data. Anda mencari kadar pensampelan minimum, frekuensi Nyquist, saiz LSB atau ralat pengkuantuman, masa bit UART atau kadar data mentah.
  • Sederhana: alias, bit dan bingkai UART. Anda mencari frekuensi alias, bilangan bit untuk resolusi, kod output untuk voltan, ingatan untuk rakaman, kadar bait format UART atau SQNR unggul.
  • Sukar: harmonik, SQNR dan reka bentuk sistem. Anda mencari di mana harmonik beralias, bit untuk SQNR yang diperlukan, frekuensi tertinggi yang dapat ditangkap ADC yang disiarkan melalui UART, kadar ADC termultipleks, ralat kadar baud bagi pembahagi atau resolusi suhu rantaian penderia.

Belajar langkah demi langkah dalam aplikasiBelajar langkah demi langkah dalam aplikasi

Contoh penyelesaian

Contoh 1Mudah
SD0​D1​D2​D3​D4​D5​D6​D7​Tb​ = ?2400 Bd

Pautan UART beroperasi pada 2400 baud. Cari tempoh Tb satu bit, dalam µs.

baud = 2400 Bd

Cari nilai Tb (µs)

Tunjukkan petunjuk
  1. Kadar baud ialah bilangan bit yang dihantar sesaat.
  2. Tb = 1/baud.
  3. 1 s = 10⁶ µs.
Tunjukkan jawapan dan penyelesaian langkah demi langkah

UART: pautan bersiri tak segerak menghantar setiap bait sebagai bingkai: satu bit mula (rendah), bit data, satu bit pariti pilihan dan satu atau dua bit henti (tinggi). Kadar baud ialah bilangan bit sesaat, jadi satu bit berlangsung Tb = 1/baud dan bingkai n bit berlangsung n/baud. Format 8N1 yang biasa mempunyai 10 bit setiap bait. Penjana baud membahagikan jam: baud = fclk/(16·D) dengan nombor bulat D, jadi kadar baud sebenar berbeza sedikit daripada sasaran; ralat di bawah kira-kira 2 % biasanya boleh diterima.

Masa bit

Tb = 1/2400 s = 416.7 µs

Jawapan

Tb = 416.7 µs
Contoh 2Sederhana
Vin​N = 85 V2ᴺ − 101 LSB2.125 V?

ADC 8-bit dengan julat input 0 hingga 5 V memangkas: kod outputnya ialah ⌊Vin/LSB⌋ dengan 1 LSB = VFSR/2ᴺ. Cari kod output perpuluhan D untuk input 2.125 V.

N = 8VFSR = 5 VVin = 2.125 V

Cari nilai D

Tunjukkan petunjuk
  1. Cari saiz satu LSB dahulu.
  2. 1 LSB = 5/256 = 19.53 mV.
  3. Bahagikan input dengan LSB dan kekalkan bahagian nombor bulat.
Tunjukkan jawapan dan penyelesaian langkah demi langkah

Resolusi ADC: penukar N-bit membahagikan julat skala penuh VFSR kepada 2ᴺ kod, dari 0 hingga 2ᴺ − 1. Satu langkah ialah 1 LSB = VFSR/2ᴺ: perubahan terkecil yang dapat ditunjukkan oleh penukar. ADC pemangkasan memberikan kod ⌊Vin/LSB⌋; ADC pembundaran tidak pernah lebih daripada ½ LSB daripada nilai sebenar, iaitu ralat pengkuantumannya. Setiap bit tambahan mengurangkan LSB separuh dan menambah kira-kira 6 dB pada nisbah isyarat-ke-hingar-pengkuantuman unggul SQNR = 6.02·N + 1.76 dB untuk sinus skala penuh. Untuk mencapai resolusi r pada suatu julat, pilih N terkecil dengan 2ᴺ ≥ span/r.

Saiz langkah

1 LSB = 5/28 = 19.53 mV

Kod

Vin/LSB = 2125/19.53 = 108.8
kod = ⌊108.8⌋ = 108

Jawapan

D = 108

Dalam perduaan itu ialah 01101100.

Contoh 3Sukar
f0fs​/2fs​1.92 kHz7f₁?

Gelombang segi empat 1.92 kHz disampel pada 8 kHz tanpa penapis anti-alias. Gelombang segi empat mengandungi harmonik ganjil 3f₁, 5f₁, 7f₁, … Pada frekuensi fa yang manakah harmonik 7f₁ muncul dalam data tersampel? Berikan dalam Hz.

f₁ = 1.92 kHzfs = 8 kHzharmonik: 7f₁

Cari nilai fa (Hz)

Tunjukkan petunjuk
  1. Harmonik berada pada 7·1.92 kHz = 13.44 kHz, di atas fs/2 = 4 kHz.
  2. Ia muncul pada fa = |f − k·fs| dengan gandaan fs yang terdekat.
  3. 13440/8000 = 1.68.
Tunjukkan jawapan dan penyelesaian langkah demi langkah

Pensampelan: ADC mengukur isyarat fs kali sesaat. Menurut teorem Nyquist–Shannon, frekuensi f ditangkap dengan betul hanya selagi f < fs/2, frekuensi Nyquist (lipatan), jadi kadar pensampelan mesti melebihi dua kali ganda frekuensi isyarat tertinggi. Frekuensi yang lebih tinggi tidak hilang: ia muncul sebagai alias pada fa = |f − k·fs|, dengan nombor bulat k yang membawa hasilnya antara 0 dan fs/2. Sampel tidak dapat membezakan kedua-duanya, jadi penapis anti-alias analog mesti membuang semua yang di atas fs/2 sebelum ADC.

Frekuensi harmonik

7f₁ = 7·1.92 kHz = 13.44 kHz

Gandaan kadar pensampelan yang terdekat

m = round(1.68) = 2

Frekuensi alias

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

Jawapan

fa = 2560 Hz

Alias mendarat di dalam jalur isyarat, di mana tiada penapis digital boleh membuangnya. Hanya penapis analog sebelum ADC yang membantu.

Soalan dan jawapan

Apakah Perolehan data & pensampelan?

Komputer tidak dapat membaca voltan secara langsung. Sistem perolehan data menukarkan kuantiti fizikal kepada nombor: penderia menghasilkan voltan kecil, penguat menskalakannya, dan penukar analog-ke-digital (ADC) mengukurnya pada saat-saat tetap dan mengeluarkan nombor perduaan.

Dua pilihan menentukan betapa baiknya nombor itu. Kadar pensampelan fs menyatakan kekerapan ADC mengukur, dan bilangan bit N menyatakan betapa halusnya ia membahagikan julat voltannya. Bersama-sama, keduanya juga menentukan berapa banyak data yang perlu anda simpan atau hantar.

Bagaimanakah saya menyelesaikan soalan Perolehan data & pensampelan langkah demi langkah?
  1. Tuliskan apa yang diberi: kadar pensampelan, frekuensi isyarat, bilangan bit, julat input, kadar baud.
  2. Untuk soalan pensampelan, bandingkan setiap frekuensi dengan fs/2; frekuensi yang lebih tinggi muncul pada fa = |f − k·fs| dengan gandaan fs yang terdekat.
  3. Untuk soalan resolusi, cari 1 LSB = VFSR/2ᴺ, atau N terkecil dengan 2ᴺ ≥ span/resolusi.
  4. Untuk kadar data dan pautan UART, kira semua yang dihantar: saluran, sampel sesaat, bit atau bait penuh setiap sampel, serta bit mula, pariti dan henti bagi setiap bingkai.
Apakah kesilapan lazim dalam Perolehan data & pensampelan?
  • Menyangka frekuensi di atas fs/2 hilang: ia muncul sebagai alias di dalam jalur.
  • Membahagi julat dengan N dan bukannya dengan 2ᴺ.
  • Membundarkan bilangan bit ke bawah dan bukannya ke atas.
  • Terlupa bit mula dan henti: 8N1 menghantar 10 bit bagi setiap bait.
Apakah yang diliputi oleh latihan Perolehan data & pensampelan?
  • Mudah: Nyquist, LSB dan kadar data
  • Sederhana: alias, bit dan bingkai UART
  • Sukar: harmonik, SQNR dan reka bentuk sistem

Setiap soalan mempunyai nilai baharu, jadi anda mempelajari kaedah dan bukannya jawapan. Buntu? Buka petunjuk kecil dahulu, dan penerangan penuh hanya apabila anda memerlukannya.

Cara latihan berfungsi

  • Setiap soalan mempunyai nilai baharu, jadi anda mempelajari kaedah dan bukannya jawapan.
  • Buntu? Buka petunjuk kecil dahulu, dan penerangan penuh hanya apabila anda memerlukannya.
  • Kemajuan, kesilapan dan soalan tersimpan anda dikekalkan, jadi anda boleh menyemak sebelum peperiksaan.

Topik sebelum dan selepas topik ini

Pelajari dahulu

Kursus dengan topik ini

Lebih banyak topik dalam Elektrik

Lembaran kerja boleh cetak