Bagaimana saya dapat meningkatkan resolusi ADC prosesor saya?

8

Saya memiliki Atmel SAM4S MCU dengan ADC internal 12-bit. Saya ingin mencapai resolusi 16-bit pada tingkat sampel 500 Hz. Input ke ADC adalah frekuensi yang cukup rendah (sekitar 20 Hz konten frekuensi maks), dan noise rendah (kurang dari satu RMS lsb 12-bit).

Bagaimana saya bisa mencapai resolusi 16-bit dengan ADC prosesor ini?

Patrick
sumber

Jawaban:

6

Anda dapat meningkatkan resolusi efektif dengan sengaja melampau sinyal input. Berikut ringkasan ide dari catatan aplikasi tentang topik yang disediakan oleh Atmel:

Teori di balik 'Oversampling and decimation' agak rumit, tetapi menggunakan metode ini cukup mudah. Teknik ini membutuhkan jumlah sampel yang lebih tinggi. Sampel tambahan ini dapat dicapai dengan oversampling sinyal. Untuk setiap bit tambahan resolusi, n, sinyal harus di-oversampled empat kali. Frekuensi sampel sinyal input yang diberikan, diberikan oleh Persamaan 3-1. Untuk mendapatkan representasi terbaik dari sinyal input analog, penting untuk melakukan oversample sinyal sebanyak ini, karena jumlah sampel yang lebih besar akan memberikan representasi yang lebih baik dari sinyal input, ketika dirata-ratakan.

Catatan aplikasi lengkap dapat diperoleh di sini: http://www.atmel.com/images/doc8003.pdf .

Dalam kasus spesifik Anda, Anda perlu sampel sekitar 8KHz untuk mendapatkan setara dengan 16 bit resolusi dari 12-bit ADC Anda.

Inilah cara saya sampai di nomor ini:

f_oversample_rate = f_current_sample_rate * (4 * (desired_bits - current_bits))
f_oversample_rate = 500Hz * (4 * (16 - 12))
f_oversample_rate = 500Hz * (4 * 4)
f_oversample_rate = 500Hz * 16
f_oversample_rate = 8KHz
skrrgwasme
sumber
Apakah ini membutuhkan suara untuk bekerja? Kami telah diberi nilai maksimal untuk kebisingan, yang akan cukup, tetapi tidak minimum.
2
@SimonJenkins Ya. Bagian 3.2 dari catatan aplikasi mencakup kebisingan, dan menetapkan bahwa tingkat kebisingan harus minimal 1 LSB, tetapi lebih dari 0,5LSB adalah minimum keras karena itu akan cukup untuk mengaktifkan LSB. Jika sistem Anda tidak memenuhi spesifikasi itu, Anda dapat menambahkan noise buatan dengan dithering .
skrrgwasme