ฉันจะเพิ่มความละเอียด ADC ของโปรเซสเซอร์ได้อย่างไร


8

ฉันมี Atmel SAM4S MCU พร้อม ADC ภายใน 12 บิต ฉันต้องการความละเอียด 16 บิตที่อัตราตัวอย่าง 500 Hz อินพุตไปยัง ADC นั้นค่อนข้างมีความถี่ต่ำ (ประมาณ 20 Hz สูงสุดเนื้อหาความถี่) และสัญญาณรบกวนต่ำ (น้อยกว่า 12 บิต lsb RMS)

ฉันจะบรรลุความละเอียด 16 บิตด้วย ADC ของโปรเซสเซอร์นี้ได้อย่างไร

คำตอบ:


6

คุณสามารถเพิ่มความละเอียดที่มีประสิทธิภาพได้โดยการสุ่มสัญญาณอินพุทอย่างตั้งใจ นี่คือบทสรุปโดยย่อของแนวคิดจากบันทึกย่อแอปพลิเคชันในหัวข้อที่จัดทำโดย Atmel:

ทฤษฎีที่อยู่เบื้องหลัง 'Oversampling and Decimation' นั้นค่อนข้างซับซ้อน แต่การใช้วิธีนี้ค่อนข้างง่าย เทคนิคต้องใช้ตัวอย่างจำนวนมากขึ้น ตัวอย่างพิเศษเหล่านี้สามารถทำได้โดยการสุ่มสัญญาณ สำหรับความละเอียดบิตเพิ่มเติมแต่ละสัญญาณ n ต้องมีสัญญาณเกินขนาดสี่ครั้ง ความถี่ที่จะสุ่มสัญญาณอินพุทด้วยสมการ 3-1 เพื่อให้ได้การแสดงสัญญาณอินพุทที่ดีที่สุดเท่าที่เป็นไปได้มีความจำเป็นที่จะต้องใช้สัญญาณมากเกินไปเพราะตัวอย่างที่มีขนาดใหญ่กว่าจะให้การแสดงที่ดีกว่าของสัญญาณอินพุทเมื่อเฉลี่ย

หมายเหตุโปรแกรมเต็มสามารถรับได้ที่นี่: http://www.atmel.com/images/doc8003.pdf

ในกรณีเฉพาะของคุณคุณจะต้องสุ่มตัวอย่างที่ประมาณ 8KHz เพื่อรับความละเอียดเทียบเท่า 16 บิตจาก ADC 12 บิตของคุณ

นี่คือวิธีที่ฉันมาถึงที่หมายเลขนี้:

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

สิ่งนี้ต้องใช้เสียงรบกวนในการทำงานหรือไม่? เราได้รับค่าสูงสุดสำหรับเสียงรบกวนซึ่งน่าจะเพียงพอ แต่ไม่มีขั้นต่ำ

2
@SimonJenkins ใช่แล้ว ส่วนที่ 3.2 ของบันทึกย่อของแอปพลิเคชันครอบคลุมเสียงรบกวนและระบุว่าระดับเสียงควรมีอย่างน้อย 1 LSB แต่เพียงแค่ 0.5LSB นั้นน้อยที่สุดอย่างหนักเนื่องจากจะเพียงพอที่จะสลับ LSB หากระบบของคุณไม่ตรงตามสเปคที่คุณสามารถเพิ่มเสียงเทียมกับdithering
skrrgwasme
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.