Memahami Resolusi dan Saiz Langkah ADC
Kalkulator Resolusi ADC ialah alat dalam talian yang mengira saiz langkah, ralat pengkuantuman, dan nisbah isyarat-kepada-hingar (SNR) ideal bagi sebuah Penukar Analog-ke-Digital (ADC) berdasarkan resolusi bit dan voltan rujukan yang diberikan. Alat ini membolehkan penilaian julat input unipolar mahupun bipolar, melakukan penukaran antara voltan input dan kod digital, serta menentukan resolusi bit minimum yang diperlukan untuk mengesan perubahan voltan sasaran tertentu. Setiap pengiraan dipaparkan bersama penggantian nilai matematik yang lengkap untuk memudahkan pengesahan formula dan pemahaman had teori penukar anda.
Setiap nombor yang anda masukkan kekal dalam penyemak imbas ini — tiada apa yang dimuat naik. Semua pengiraan dilakukan secara tempatan pada peranti pengguna.
Parameter Input dan Tetapan Alat
Untuk memulakan pengiraan, anda boleh memasukkan parameter berikut ke dalam antaramuka alat:
- Resolusi N (bit): Nombor bulat dari 1 hingga 32 — lebar bit nominal penukar.
- Voltan rujukan: Nilai positif bagi voltan rujukan yang digunakan oleh ADC.
- Unit rujukan: Unit ukuran untuk voltan rujukan (seperti V, mV, atau µV).
- Julat input: Pilihan antara "Unipolar · 0 hingga Vref" dan "Bipolar · −Vref hingga +Vref".
- Perpuluhan dipaparkan: Bilangan tempat perpuluhan untuk paparan keputusan.
- Tukar (pilihan): Pilihan mod penukaran sama ada "Voltan → kod" atau "Kod → voltan".
- Voltan input (pilihan): Nilai voltan yang ingin ditukarkan kepada kod digital.
- Kod (bilangan) (pilihan): Nombor bulat dari 0 hingga kod teratas untuk ditukarkan kepada voltan.
- Unit voltan: Unit ukuran bagi voltan input atau voltan kod.
- Perubahan terkecil untuk diselesaikan (pilihan): Sasaran langkah voltan minimum untuk menentukan resolusi bit yang diperlukan.
- Unit langkah: Unit ukuran bagi perubahan terkecil yang ingin diselesaikan.
Butang "Muat contoh" dan "Kosongkan" disediakan untuk mengisi nilai contoh secara pantas atau mengosongkan semula semua medan input.
Hasil Pengiraan dan Output Alat
Alat ini memaparkan keputusan pengiraan di bawah label antaramuka yang khusus:
Saiz langkah dan hingar
- Saiz langkah LSB: Saiz langkah Bit Terkecil (LSB) yang dikira, bersama sub-label yang menunjukkan langkah tersebut sebagai peratusan daripada skala penuh dan dalam ppm.
- Tahap pengkuantuman: Jumlah keseluruhan tahap diskret yang tersedia (2^N).
- Kod teratas: Kod output digital maksimum (2^N - 1).
- Julat skala penuh: Keseluruhan rentang voltan yang boleh diukur oleh penukar.
- Ralat pengkuantuman maks (±½ LSB): Ralat pengkuantuman teori maksimum.
- Hingar pengkuantuman (rms): Voltan hingar pengkuantuman punca-purata-kuasa-dua (rms).
- SNR ideal (sinus skala penuh): Siling nisbah isyarat-kepada-hingar teori dalam unit desibel (dB).
- Julat dinamik: Julat dinamik teori dalam unit desibel (dB).
Pada titik pengukuran
- Kod output: Kod digital yang terhasil daripada penukaran voltan-ke-kod.
- Binari: Perwakilan binari bagi kod output.
- Heksadesimal: Perwakilan heksadesimal bagi kod output.
- Voltan kod: Nilai voltan tepat yang sepadan dengan kod digital tertentu.
- Ralat pengkuantuman: Perbezaan antara voltan input sebenar dengan voltan yang diwakili oleh kod digital yang terhasil.
- Tingkap input untuk kod ini: Julat voltan input yang dipetakan kepada kod digital yang sama.
Status Saiz
Apabila nilai sasaran dimasukkan pada "Perubahan terkecil untuk diselesaikan", alat akan memaparkan status sama ada resolusi bit semasa mencukupi atau tidak:
- Jika mencukupi: "Menyelesaikan
‹step›memerlukan sekurang-kurangnya‹bits›bit — penukar‹current›-bit ini merangkuminya." - Jika tidak mencukupi: "Menyelesaikan
‹step›memerlukan sekurang-kurangnya‹bits›bit — penukar‹current›-bit ini hanya menyelesaikan‹lsb›."
Formula Matematik dan Penggantian Nilai
Alat ini memaparkan formula simbolik dan penggantian nilai input anda secara langsung:
- Saiz langkah LSB: LSB = FSR ÷ 2^N
- Ralat pengkuantuman maks: ±LSB ÷ 2
- Hingar pengkuantuman (rms): LSB ÷ √12
- SNR ideal (sinus skala penuh): SNR = 6.02 × N + 1.76 dB
- Julat dinamik: 6.02 × N dB
- Kod unipolar: kod = round(Vin ÷ LSB)
- Kod bipolar: kod = round((Vin + Vref) ÷ LSB)
- Voltan unipolar: V = kod × LSB
- Voltan bipolar: V = kod × LSB − Vref
- Ralat pengkuantuman pada titik pengukuran: voltan kod − voltan input
- Penentuan saiz resolusi: N ≥ log₂(FSR ÷ langkah), dibundarkan ke atas kepada nombor bulat bit terhampir.
Contoh Pengiraan (Nilai "Muat contoh")
Jika anda memuatkan nilai contoh: Resolusi 12 bit, voltan rujukan 3.3 V, dan julat unipolar:
- Tahap pengkuantuman: 2¹² = 4,096 tahap.
- Kod teratas: 4,095.
- Saiz langkah LSB: 3.3 V ÷ 4,096 ≈ 805.6641 µV.
- Ralat pengkuantuman maks (±½ LSB): ±402.832 µV.
- Hingar pengkuantuman (rms): ≈ 232.5752 µV rms.
- SNR ideal (sinus skala penuh): ≈ 74.01 dB.
- Julat dinamik: ≈ 72.25 dB.
- Input voltan sebanyak 1.65 V berada tepat pada skala pertengahan dan dipetakan kepada kod 2,048 (binari 1000 0000 0000, heksadesimal 0x800) dengan ralat pengkuantuman sifar.
Peraturan Pemodelan dan Had Teori
Alat ini menggunakan model pengkuantum ideal di mana peralihan kod pertama berlaku pada separuh langkah (1 / 2 LSB), dengan takrifan LSB sebagai FSR ÷ 2^N.
Setiap angka yang dihasilkan menerangkan penukar ideal. Penukar sebenar akan menambah ralat ofset, gandaan, INL/DNL, serta ralat voltan rujukan. Oleh itu, SNR ideal, julat dinamik, dan had ±½ LSB merupakan siling teori dan bukannya prestasi ukuran sebenar. Resolusi bit ADC adalah spesifikasi yang berbeza daripada kejituan keseluruhannya.
Julat Input dan Pengepitan (Clipping)
- Julat Unipolar: Julat skala penuh (FSR) adalah bersamaan dengan Vᵣef. Rentang input adalah dari 0 hingga Vᵣef.
- Julat Bipolar: Julat skala penuh (FSR) adalah bersamaan dengan 2 × Vᵣef. Rentang input adalah dari -Vᵣef hingga +Vᵣef. Kod 0 mewakili -Vᵣef, kod skala pertengahan 2^(N-1) mewakili 0 V, dan kod teratas berada satu langkah di bawah +Vᵣef.
- Input Melebihi Rel Tinggi: Jika voltan input berada di atas rel tinggi, output akan mengepit pada kod teratas (2^N - 1). Alat akan memaparkan amaran: "Input berada di atas rel tinggi: output tepu pada kod teratas, dan ralat yang ditunjukkan ialah baki sebenar — had ±½ LSB tidak lagi terpakai."
- Input Di Bawah Rel Rendah: Jika voltan input berada di bawah rel rendah, output mengepit pada kod 0. Alat akan memaparkan amaran: "Input berada di bawah rel rendah: output tepu pada kod 0, dan ralat yang ditunjukkan ialah baki sebenar — had ±½ LSB tidak lagi terpakai."
- Input Skala Pertengahan: Jika input berada tepat pada skala pertengahan, alat akan menyatakan: "Tepat pada skala pertengahan: separuh daripada rentang dipetakan ke kod
‹code›dengan ralat pengkuantuman sifar."
Mesej Ralat Antaramuka
Alat ini akan memaparkan mesej ralat yang spesifik sekiranya input tidak sah dimasukkan:
- Input bukan nombor:
"‹field›: “‹token›” bukan nombor." - Resolusi di luar julat:
"Resolusi mestilah nombor bulat bit antara 1 dan 32." - Voltan rujukan tidak sah:
"Voltan rujukan mestilah lebih besar daripada sifar." - Kod bukan integer:
"Kod mestilah nombor bulat bilangan." - Kod di luar julat:
"Kod mestilah antara 0 dan ‹max› untuk penukar ‹bits›-bit." - Langkah sasaran tidak sah:
"Perubahan terkecil untuk diselesaikan mestilah lebih besar daripada sifar." - Limpahan nilai:
"Nilai atau keputusan perantara melebihi julat nombor yang disokong."
Soalan Lazim (FAQ)
Adakah resolusi 12-bit bermakna kejituan 12-bit?
Tidak. Resolusi hanyalah lebar kod — bagaimana julat dibahagikan dengan halus. Kejituan dihadkan oleh INL dan ralat ofset/gandaan penukar, toleransi dan hingar rujukan, serta litar di sekelilingnya. Itulah sebabnya helaian data memetik ENOB: SAR 12-bit biasanya memberikan 10–11 bit berkesan. SNR ideal 74 dB yang ditunjukkan di sini ialah siling yang tidak dapat dicapai oleh mana-mana penukar 12-bit sebenar.
Bagaimanakah input ±Vref mengubah pengiraan?
Rentang berganda menjadi 2 × Vref, jadi penukar yang sama menyelesaikan langkah yang dua kali lebih lebar: LSB = 2 × Vref ÷ 2^N. Kod bermula dari rel negatif ke rel positif — kod 0 ialah −Vref, kod pertengahan 2^(N−1) ialah 0 V, dan kod teratas berada satu langkah di bawah +Vref. Pilih julat bipolar di atas dan sifar volt akan mendarat tepat pada kod pertengahan.
Mengapakah sesetengah sumber membahagi dengan 2^N dan yang lain dengan 2^N − 1?
Kedua-duanya adalah dua model berbeza untuk penukar yang sama. Helaian data dan teori pengkuantuman klasik mentakrifkan LSB = FSR ÷ 2^N, dengan peralihan kod pertama pada separuh langkah — itulah model yang digunakan oleh halaman ini. Bentuk Vref ÷ (2^N − 1) datang daripada memetakan kod teratas tepat pada Vref, yang biasa dalam tutorial mikropengawal. Pada 12 bit, kedua-duanya berbeza kira-kira 0.02%, jauh di bawah toleransi mana-mana rujukan sebenar; cuma jangan campurkan kedua-duanya apabila menyemak nombor daripada pelbagai sumber.
Apakah yang boleh saya lakukan apabila saiz langkah terlalu kasar?
Pensampelan lampau dan pemurataan meningkatkan resolusi apabila isyarat membawa sedikit hingar: memuratakan 4× lebih banyak sampel memperoleh kira-kira satu bit berkesan, manakala 16× memperoleh dua bit, dengan syarat hingar tersebut adalah putih dan tidak berkorelasi — isyarat yang sangat bersih dan tidak bergerak hanya akan mengulang kod yang sama. Selain itu, beralihlah kepada penukar dengan lebih banyak bit atau tambah peringkat gandaan boleh diprogramkan supaya isyarat memenuhi lebih banyak julat.