Jumlah bit efektif dari ADC 14-bit

18

Saya memiliki 14-bit ADC . Namun, melihat lembar data (lihat tabel 2 di halaman 5), jumlah efektif bit (ENOB) selalu kurang dari 12 bit.

Mengapa DAC saya mengklaim sebagai 14-bit ADC padahal hanya memiliki akurasi 12-bit? Apa gunanya memiliki dua bit tambahan jika tidak ada artinya?

Randomblue
sumber
1
Sementara mereka mungkin tidak banyak digunakan dalam satu-shot wideband sampler seperti ruang lingkup, mereka yang bermakna dalam aplikasi yang mengintegrasikan dari waktu ke waktu seperti radio software. Dengan salah satu implementasi berbasis FPGA, akan mudah untuk menambahkan bit mode untuk mematikannya dan melihat perbedaan dalam output filter berikutnya dengan dan tanpa bit 'palsu' sebagai input.
Chris Stratton
1
Begitulah chip dirancang. Bahkan jika Anda mendapatkan data 14 bit, Anda dapat melihat nilai terakhir dari data akan berfluktuasi dan itu karena bit-bit noise. Saya telah menggunakan 24 bit ADC - AD7190 dan hanya memberikan 18 bit bebas noise.
PsychedGuy

Jawaban:

17

Anda telah diperas bambu!

14-bit adalah pemasaran berbicara, dan perangkat keras juga memberi Anda itu, jadi mereka akan mengatakan Anda tidak perlu mengeluh. Tepat di atas ENOB dalam lembar data itu memberikan angka SINAD (Signal to Noise and Distortion). Itu 72 dB, dan 1 bit sesuai dengan tingkat 6 dB, sehingga 72 dB memang 12 bit. 2 bit terendah adalah noise.

Dimungkinkan untuk mengambil data yang lebih rendah dari lantai kebisingan, tetapi membutuhkan korelasi yang sangat baik, yang berarti harus sangat dapat diprediksi.

stevenvh
sumber
8
Oke, downvoter, katakan saja apa yang salah di sini.
stevenvh
3
Mungkin downvoter adalah perancang IC :-)
stevenvh
3
@ Simpl: Tidak harus. Anda harus membaca lembar data dari A / D yang Anda rencanakan untuk digunakan. Ada banyak pengorbanan yang harus dibuat dalam desain A / D, sehingga apa yang bisa Anda dapatkan akan sangat bervariasi. Banyak A / D baik untuk + -1 / 2, tetapi seperti yang ditunjukkan contoh ini, beberapa tidak. Seperti biasa, BACA DATASHEET.
Olin Lathrop
4
Ini bukan "bicara pemasaran". Sebenarnya ini cukup umum pada konverter berkinerja tinggi seperti yang digunakan dalam radio perangkat lunak, dll. Untuk banyak aplikasi seperti itu, di beberapa titik dalam pemrosesan sinyal Anda akan memfilter dan menurunkan sampel, sehingga Anda dapat mendeteksi sinyal pita sempit dengan level daya jauh, jauh, di bawah lantai kebisingan broadband (tetapi Anda melakukannya dalam perangkat lunak, sehingga Anda dapat menempatkan sejumlah variabel filter semacam itu di mana saja dalam bandwidth yang Anda inginkan. Sampai batas tertentu Anda akan mendapatkannya juga jika Anda hanya menutupi "tidak dapat diandalkan" bit, tetapi Anda melakukannya lebih baik daripada tanpa mereka
Chris Stratton
2
Sinyal bandwidth yang lebih sempit dari ADC berkorelasi lebih baik. Anda mengabaikan sesuatu utilitas sehari-hari sebagai kasus khusus.
Chris Stratton
14

Misalkan seseorang ingin mengukur tegangan tetap seakurat mungkin, menggunakan ADC yang akan mengembalikan nilai 8-bit untuk setiap pengukuran. Misalkan lebih lanjut bahwa ADC ditentukan sehingga kode N akan secara nominal dikembalikan untuk tegangan antara (N-0,5) / 100 dan (N + 0,5) / 100 volt (jadi misalnya kode 47 secara nominal akan mewakili sesuatu antara 0,465 dan 0,475 volt). Apa yang seharusnya orang ingin memiliki output ADC jika diberi tegangan steady-state tepatnya 0,47183 volt?

Jika ADC selalu menampilkan nilai yang mewakili kisaran yang ditentukan di atas di mana input jatuh (47 dalam kasus ini), maka tidak peduli berapa banyak pembacaan yang dilakukan, nilainya akan menjadi 47. Menyelesaikan sesuatu yang lebih baik daripada yang seharusnya mustahil.

Anggaplah sebaliknya bahwa ADC dibangun sehingga nilai acak "dither" didistribusikan secara linear dari -0,5 ke +0,5 ditambahkan ke setiap bacaan sebelum mengubahnya menjadi bilangan bulat? Di bawah skenario itu, tegangan 47,183 volt akan mengembalikan pembacaan 48, sekitar 18,3% dari waktu, dan nilai 47 yang lain 81,7% dari waktu. Jika seseorang menghitung rata-rata 10.000 bacaan, ia harus memperkirakan sekitar 47.183. Karena keacakannya, mungkin sedikit lebih tinggi atau lebih rendah, tetapi harus cukup dekat. Perhatikan bahwa jika seseorang mengambil bacaan yang cukup, seseorang dapat mencapai tingkat presisi yang diharapkan sewenang-wenang, meskipun setiap bit tambahan akan membutuhkan lebih dari dua kali lipat jumlah bacaan.

Menambahkan tepat satu LSB dari dithering yang didistribusikan secara linear akan menjadi perilaku yang sangat baik untuk ADC. Sayangnya, menerapkan perilaku seperti itu tidak mudah. Jika dithering tidak didistribusikan secara linier, atau jika besarnya tidak tepat satu LSB, jumlah presisi nyata yang dapat diperoleh dari rata-rata akan sangat terbatas, tidak peduli berapa banyak sampel yang digunakan. Jika alih-alih menambahkan satu LSB dari keacakan terdistribusi linier, satu menambahkan nilai LSB multipel, mencapai tingkat presisi tertentu akan membutuhkan lebih banyak bacaan daripada yang diperlukan dengan menggunakan keacakan satu LSB yang ideal, tetapi batas akhir untuk akurasi yang dapat dicapai dengan mengambil jumlah bacaan yang sewenang-wenang akan jauh kurang sensitif terhadap ketidaksempurnaan dalam sumber dithering.

Perhatikan bahwa dalam beberapa aplikasi, yang terbaik adalah menggunakan ADC yang tidak merusak hasilnya. Ini terutama benar dalam situasi di mana seseorang lebih tertarik untuk mengamati perubahan nilai ADC daripada nilai-nilai yang tepat itu sendiri. Jika dengan cepat menyelesaikan perbedaan antara +3 unit / sampel dan +5 unit / sampel peningkatan laju lebih penting daripada mengetahui apakah tegangan kondisi-mantap tepat 13,2 atau 13,4 unit, ADC yang tidak ragu-ragu mungkin lebih baik daripada dithering satu. Di sisi lain, penggunaan ADC dithering dapat membantu jika seseorang ingin mengukur hal-hal yang lebih tepat daripada yang dibacakan oleh satu bacaan.

supercat
sumber
2

Pelajaran bonus: Anda benar-benar mendapatkan 14 bit presisi , tetapi akurasi hanya 12 bit .

Gbarry
sumber
1
Bukankah itu seharusnya "resolusi", bukannya "presisi"? Presisi mengacu pada kesalahan yang tersebar di konversi yang berbeda, dan dengan noise Gaussian di dua LSB yang akan menjadi 12 bit juga.
stevenvh
Saya pergi dan membaca beberapa definisi, dan saya yakin Anda benar. Saya cenderung menghindar dari "resolusi" di zaman video ini, tetapi itu masih istilah terbaik. Saya pikir mungkin di sekolah menengah, mereka tidak menjelaskan ketepatan dengan benar.
Gbarry
1

Peringatan tambahan ... kadang-kadang Anda benar - benar menginginkan keacakan .

Sebagai contoh:

Dalam aplikasi kriptografi (keamanan / keaslian), keacakan "murni yang tidak dapat dilewati" diperlukan. Menggunakan LSB konverter (yang di bawah lantai kebisingan) adalah cara cepat untuk menghasilkan angka acak murni.

Ketika perangkat keras ADC tersedia untuk tujuan lain (sensor dan sejenisnya), ini adalah cara cepat dan mudah untuk menyemai komunikasi yang aman. Anda dapat meningkatkan efek dengan memaksimalkan gain pada penguat input jika tersedia (banyak MCU menawarkan fitur seperti itu) dan mengambang input.

Keacakan ADC terutama berasal dari dua prinsip fisik: kuantisasi-noise dan noise termal.

Efek ini memiliki ambang batas pada tingkat makroskopik. Sebagai contoh, angka-angka yang cukup jauh dari batas bit tidak perlu dibulatkan dan karena itu tidak mengalami kesalahan kuantisasi atau keacakan. Kebisingan termal tidak memengaruhi bit yang lebih signifikan dalam konversi di sebagian besar skenario.

Dengan ekstensi, Anda dapat melihat bahwa memvariasikan parameter konversi (waktu pengambilan sampel, kedalaman, laju, tegangan referensi) akan mempengaruhi perubahan keacakan hasil dengan memindahkan ambang keacakan (baik meningkatkannya dengan menaikkan atau menurunkannya dengan menurunkan ambang) ). Efek serupa dicapai dengan memvariasikan parameter lingkungan / sistem (suhu, catu daya, dll).

Yang mengatakan, banyak generator nomor komersial perangkat keras yang sukses bergantung pada teknik ini karena efek luar, hanya mengurangi keacakan - mereka sama sekali tidak menghilangkannya (secara fisik tidak mungkin).

Anda dapat mengkompensasi pengurangan keacakan dengan melakukan lebih banyak konversi dan menambahkan hasilnya. Proses ekstensi bit ini (rangkaian bit konversi rendah berturut-turut) digunakan di STM32 Nucleo Dongles, FST-01 (termasuk NeuG 1.0), keluarga perangkat Grang LE Tech, dan banyak lainnya.

Perangkat Grang menghasilkan bit dengan mengkonversi lebih dari 400 juta konversi per detik (1 bit per konversi). Jika Anda melakukan konversi yang cukup, Anda dapat menjamin keacakan yang tinggi bahkan dalam menghadapi kondisi lingkungan.

DrFriedParts
sumber
2
Gagasan yang sangat buruk untuk mengasumsikan bahwa noise ADC adalah sumber noise acak yang bagus. Sangat mungkin bahwa itu berkorelasi dengan hal-hal lain yang terjadi di sirkuit, suhu IC, dan banyak hal lainnya. Jika Anda membutuhkan keacakan asli, pastikan Anda menguji sumber Anda!
Connor Wolf
"Menguji sumber Anda" adalah persyaratan yang jelas dalam skema apa pun . Namun, itu sama sekali tidak berarti "ide yang sangat buruk" ... bahkan jika berkorelasi dengan suhu. Itu hanya mengurangi keacakan, bukan menghilangkannya. Anda dapat mengkompensasi dengan bit-extension (gabungan dari bit-bit konversi berturut-turut).
DrFriedParts
Saya katakan itu ide yang buruk untuk diasumsikan , bukan ide yang buruk secara umum. Jika Anda benar-benar menguji keacakan sumber kebisingan ADC Anda dan memeriksa, maka saya tidak akan memiliki masalah dengannya.
Connor Wolf