จำนวนบิตที่มีประสิทธิภาพของ ADC 14 บิต


18

ฉันมี 14 บิตADC อย่างไรก็ตามการดูแผ่นข้อมูล (ดูตารางที่ 2 ในหน้า 5) จำนวนบิตที่มีประสิทธิภาพ (ENOB) จะน้อยกว่า 12 บิตเสมอ

ทำไม DAC ของฉันที่อ้างว่าเป็น ADC แบบ 14 บิตเมื่อมันมีความแม่นยำ 12 บิตเท่านั้น อะไรคือจุดที่มีสองบิตพิเศษหากไม่มีความหมาย?


1
ขณะที่พวกเขาอาจจะไม่ได้ใช้มากใน-shot หนึ่ง wideband ตัวอย่างเช่นขอบเขตที่พวกเขามีความหมายในการใช้งานที่บูรณาการในช่วงเวลาเช่นวิทยุซอฟแวร์ ด้วยหนึ่งในการนำไปใช้ของ FPGA การเพิ่มบิตของโหมดเพื่อสลับการปิดบังและดูความแตกต่างในผลลัพธ์ของตัวกรองที่ตามมาด้วยและไม่มีบิต 'ปลอม' เป็นอินพุต
Chris Stratton

1
นั่นคือวิธีการออกแบบชิป แม้ว่าคุณจะได้รับข้อมูล 14 บิตคุณสามารถสังเกตเห็นว่าค่าสุดท้ายของข้อมูลจะผันผวนและนั่นเป็นเพราะบิตเสียง ฉันใช้ 24 บิต ADC - AD7190 และให้เพียง 18 บิตปราศจากสัญญาณรบกวน
PsychedGuy

คำตอบ:


17

คุณไผ่แล้ว!

14-bit เป็นการพูดทางการตลาดและฮาร์ดแวร์ก็ให้สิ่งนั้นกับคุณดังนั้นพวกเขาจะบอกว่าคุณไม่มีอะไรจะบ่น เหนือ ENOB ในแผ่นข้อมูลจะให้หมายเลข SINAD (สัญญาณเสียงรบกวนและความผิดเพี้ยน) นั่นคือ 72 เดซิเบลและ 1 บิตสอดคล้องกับระดับ 6 เดซิเบลดังนั้น 72 เดซิเบลคือ 12 บิต บิตต่ำสุดที่ 2 คือสัญญาณรบกวน

เป็นไปได้ที่จะดึงข้อมูลที่ต่ำกว่าพื้นเสียงรบกวน แต่ต้องการความสัมพันธ์ที่ดีมากซึ่งหมายความว่าจะต้องสามารถคาดเดาได้มาก


8
ตกลงผู้ลงคะแนนเสียงเพียงบอกฉันว่ามีอะไรผิดปกติที่นี่
stevenvh

3
บางทีผู้ลงคะแนนคือผู้ออกแบบ IC :-)
stevenvh

3
@Simpl: ไม่จำเป็น คุณต้องอ่านแผ่นข้อมูลของ A / D ใด ๆ ที่คุณวางแผนที่จะใช้ มีการแลกเปลี่ยนจำนวนมากในการออกแบบ A / D ดังนั้นสิ่งที่คุณจะได้รับจะแตกต่างกันอย่างกว้างขวาง A / Ds จำนวนมากดีถึง + -1 / 2 นับ แต่เป็นตัวอย่างนี้แสดงให้เห็นว่าบางคนไม่ เช่นเคยอ่าน DATASHEET
Olin Lathrop

4
นี่ไม่ใช่ "การพูดทางการตลาด" ในความเป็นจริงนี้เป็นเรื่องธรรมดาสำหรับตัวแปลงประสิทธิภาพสูงที่ใช้ในซอฟต์แวร์วิทยุเป็นต้นสำหรับแอปพลิเคชั่นจำนวนมากในบางจุดของการประมวลผลสัญญาณคุณจะกรองและลดตัวอย่างเช่นคุณสามารถตรวจจับสัญญาณ narrowband ด้วยระดับพลังงานได้ไกล ห่างไกลจากชั้นสัญญาณรบกวนบรอดแบนด์ (แต่คุณทำในซอฟต์แวร์เพื่อให้คุณสามารถวางจำนวนตัวแปรของตัวกรองดังกล่าวได้ทุกที่ในแบนด์วิดท์ที่คุณต้องการในระดับที่คุณจะได้รับนั้นถ้าคุณเพิ่งปิดบัง "ไม่น่าเชื่อถือ" บิต แต่คุณทำได้ดีกว่ากับพวกเขาโดยไม่มีพวกเขา
Chris Stratton

2
สัญญาณใด ๆ ของแบนด์วิดธ์ที่แคบกว่า adc มีความสัมพันธ์ที่ดีขึ้น คุณกำลังยกเลิกบางสิ่งบางอย่างของยูทิลิตี้ประจำวันเป็นกรณีพิเศษ
Chris Stratton

14

สมมติว่ามีความประสงค์ที่จะวัดแรงดันไฟฟ้าคงที่ให้แม่นยำที่สุดโดยใช้ ADC ที่จะคืนค่า 8 บิตสำหรับการวัดแต่ละครั้ง สมมติเพิ่มเติมว่ามีการระบุ ADC เพื่อให้มีการส่งคืนรหัสของ N สำหรับแรงดันไฟฟ้าระหว่าง (N-0.5) / 100 และ (N + 0.5) / 100 โวลต์ (เช่นเช่นรหัส 47 จะเป็นตัวแทนบางอย่างระหว่าง 0.465 และ 0.475 โวลต์) สิ่งใดที่เราต้องการให้มีเอาต์พุต ADC หากป้อนแรงดันไฟฟ้าคงที่ที่ 0.47183 โวลต์อย่างแม่นยำ

หาก ADC ส่งออกค่าที่แสดงถึงช่วงที่กำหนดไว้ข้างต้นซึ่งอินพุตตก (47 ในกรณีนี้) เสมอดังนั้นไม่ว่าจะใช้การอ่านจำนวนเท่าใดค่าจะปรากฏเป็น 47 การแก้ไขสิ่งที่ดีกว่านั้น เป็นไปไม่ได้

สมมติว่า ADC ถูกสร้างขึ้นเพื่อให้มีการเพิ่มค่า "dither" แบบกระจายตรงจาก -0.5 ถึง +0.5 ในการอ่านแต่ละครั้งก่อนที่จะแปลงเป็นจำนวนเต็ม? ภายใต้สถานการณ์นั้นแรงดันไฟฟ้า 47.183 โวลต์จะส่งกลับค่าการอ่าน 48, ประมาณ 18.3% ของเวลาและค่า 47 อีก 81.7% ของเวลา หากมีใครคำนวณค่าเฉลี่ยของการอ่าน 10,000 คนเราควรคาดหวังว่ามันจะประมาณ 47.183 เนื่องจากการสุ่มนั้นอาจสูงกว่าหรือต่ำกว่าเล็กน้อย แต่ควรอยู่ใกล้มาก โปรดทราบว่าหากใช้เวลาในการอ่านมากพออาจมีความแม่นยำในระดับที่คาดหวังแม้ว่าแต่ละบิตเพิ่มเติมจะต้องการจำนวนการอ่านมากกว่าสองเท่า

การเพิ่ม dithering ที่กระจายแบบเชิงเส้นหนึ่ง LSB อย่างแม่นยำจะเป็นพฤติกรรมที่ดีมากสำหรับ ADC น่าเสียดายที่การใช้พฤติกรรมดังกล่าวนั้นไม่ใช่เรื่องง่าย ถ้า dithering ไม่กระจายเชิงเส้นหรือถ้าขนาดไม่แม่นยำ LSB จำนวนจริงที่ได้จากการหาค่าเฉลี่ยจะถูก จำกัด อย่างรุนแรงไม่ว่าจะใช้ตัวอย่างจำนวนเท่าใด หากแทนที่จะเพิ่มการสุ่มเชิงเส้นตรงกระจาย LSB หนึ่งรายการหนึ่งจะเพิ่มมูลค่าของ LSB หลายรายการการบรรลุระดับความแม่นยำที่กำหนดจะต้องใช้การอ่านมากกว่าที่จะต้องใช้การสุ่มในอุดมคติหนึ่ง LSB แต่การ จำกัด ขั้นสูงสุดสำหรับความแม่นยำที่สามารถทำได้ โดยการอ่านจำนวนโดยพลการจะมีความไวน้อยกว่าความไม่สมบูรณ์ในแหล่งที่มา dithering

โปรดทราบว่าในบางแอปพลิเคชันจะเป็นการดีที่สุดที่จะใช้ ADC ซึ่งไม่ทำให้เกิดผลลัพธ์ โดยเฉพาะอย่างยิ่งในสถานการณ์ที่มีใครสนใจสังเกตการเปลี่ยนแปลงของค่า ADC มากกว่าค่าที่แม่นยำ หากการแก้ไขความแตกต่างอย่างรวดเร็วระหว่าง +3 หน่วย / ตัวอย่างและอัตราการเพิ่มขึ้น +5 หน่วย / ตัวอย่างมีความสำคัญมากกว่าการรู้ว่าแรงดันไฟฟ้าคงที่เป็นแม่นยำ 13.2 หรือ 13.4 หน่วย ADC ที่ไม่เบี่ยงเบนอาจจะดีกว่า ซ่องหนึ่ง ในทางกลับกันการใช้ ADC แบบ dithering อาจมีประโยชน์หากใครต้องการวัดสิ่งต่าง ๆ ได้แม่นยำกว่าการอ่านเพียงครั้งเดียว


2

บทเรียนโบนัส: จริงๆคุณจะได้รับ 14 บิตของความแม่นยำแต่เพียง 12 บิตของความถูกต้อง


1
ไม่ควรที่จะเป็น "ความละเอียด" แทนที่จะเป็น "ความแม่นยำ" ความแม่นยำหมายถึงข้อผิดพลาดแพร่กระจายไปทั่วการแปลงที่แตกต่างกันและด้วยเสียงแบบเกาส์เซียนที่ LSB สองตัวที่จะเป็น 12 บิตเช่นกัน
stevenvh

ฉันไปอ่านคำจำกัดความและฉันเชื่อว่าคุณพูดถูก ฉันมักจะอายห่างจาก "การแก้ไข" ในยุควิดีโอนี้ แต่ก็ยังเป็นคำที่ดีที่สุด ฉันคิดว่าบางทีในโรงเรียนมัธยมพวกเขาไม่ได้อธิบายความแม่นยำอย่างถูกต้อง
gbarry

1

ข้อแม้เพิ่มเติม ... บางครั้งคุณจริงต้องการสุ่ม

ตัวอย่างเช่น:

ในแอปพลิเคชันเข้ารหัส (ความปลอดภัย / ความถูกต้อง) จำเป็นต้องใช้การสุ่มแบบ "ไม่สามารถคาดเดาได้" ได้อย่างแท้จริง การใช้ LSB ของตัวแปลงสัญญาณ (ด้านล่างเสียงรบกวน) เป็นวิธีที่รวดเร็วในการสร้างตัวเลขสุ่มอย่างหมดจด

เมื่อฮาร์ดแวร์ ADC พร้อมใช้งานสำหรับวัตถุประสงค์อื่น (เซ็นเซอร์และอื่น ๆ ) มันเป็นวิธีที่รวดเร็วและง่ายดายในการเริ่มต้นการสื่อสารที่ปลอดภัย คุณสามารถปรับปรุงเอฟเฟกต์ได้โดยการเพิ่มกำไรจากแอมพลิฟายเออร์อินพุตให้สูงสุด (ข้อเสนอของ MCU หลายตัวเช่นคุณสมบัติ) และการป้อนข้อมูลแบบลอย

ADC Randomness ส่วนใหญ่นั้นมาจากหลักการทางกายภาพสองประการ: เสียงเชิงปริมาณและเสียงความร้อน

ผลกระทบเหล่านี้มีเกณฑ์ในระดับมหภาค ตัวอย่างเช่นตัวเลขที่อยู่ห่างจากขอบเขตบิตไม่จำเป็นต้องถูกปัดเศษดังนั้นจึงไม่มีข้อผิดพลาดในการหาปริมาณหรือการสุ่ม เสียงรบกวนจากความร้อนไม่ส่งผลกระทบต่อบิตที่สำคัญยิ่งกว่าในการแปลงในสถานการณ์ส่วนใหญ่

ตามส่วนขยายคุณจะเห็นว่าการเปลี่ยนแปลงพารามิเตอร์การแปลง (เวลาการสุ่มตัวอย่างความลึกอัตราการอ้างอิงแรงดันไฟฟ้า) จะมีผลต่อการเปลี่ยนแปลงในการสุ่มของผลลัพธ์โดยการย้ายเกณฑ์การสุ่ม (ทั้งการเพิ่มหรือลดโดยการลดเพดาน ) ผลที่คล้ายกันสามารถทำได้โดยการเปลี่ยนแปลงพารามิเตอร์ด้านสิ่งแวดล้อม / ระบบ (อุณหภูมิแหล่งจ่ายไฟ ฯลฯ )

ที่กล่าวว่าเครื่องกำเนิดจำนวนสุ่มฮาร์ดแวร์ที่ประสบความสำเร็จจำนวนมากใช้เทคนิคนี้เพราะผลกระทบภายนอกลดการสุ่ม - พวกมันไม่ได้กำจัดมัน (เป็นไปไม่ได้ทางร่างกาย)

คุณสามารถชดเชยการลดลงของการสุ่มโดยทำการแปลงมากขึ้นและผนวกผลลัพธ์ กระบวนการของการขยายบิต (การต่อเชื่อมบิตต่ำแบบต่อเนื่อง) ใช้ใน STM32 Nucleo Dongles, FST-01 (รวมถึง NeuG 1.0), อุปกรณ์ Grang ตระกูล LE Tech และอื่น ๆ อีกมากมาย

อุปกรณ์ Grang สร้างบิตโดยการแปลงที่มากกว่า 400 ล้านแปลงต่อวินาที (1 บิตต่อการแปลง) หากคุณทำ Conversion มากพอคุณสามารถรับประกันการสุ่มสูงถึงแม้จะเผชิญกับสภาพแวดล้อม


2
เป็นความคิดที่ดีมากที่จะสันนิษฐานว่าเสียง ADC เป็นแหล่งกำเนิดเสียงแบบสุ่มที่ดี เป็นไปได้อย่างสิ้นเชิงว่ามันมีความสัมพันธ์กับสิ่งอื่น ๆ ที่เกิดขึ้นในวงจรอุณหภูมิ IC และสิ่งอื่น ๆ อีกมากมาย หากคุณต้องการแบบสุ่มของแท้ให้แน่ใจว่าคุณทดสอบแหล่งที่มาของคุณ!
Connor Wolf

"การทดสอบแหล่งที่มาของคุณ" เป็นข้อกำหนดที่ชัดเจนในทุกรูปแบบ อย่างไรก็ตามมันไม่ได้หมายความว่า "เป็นความคิดที่แย่มาก" ... แม้ว่าจะมีความสัมพันธ์กับอุณหภูมิ ที่ลดการสุ่มเท่านั้นไม่กำจัด คุณสามารถชดเชยได้ด้วยการขยายบิต (การต่อเชื่อมบิตต่ำที่ต่อเนื่องกัน)
DrFriedParts

ฉันบอกว่ามันเป็นความคิดที่ดีที่จะสมมติไม่ใช่ความคิดที่ไม่ดีโดยทั่วไป หากคุณทำการทดสอบแบบสุ่มของแหล่งกำเนิดเสียงของ ADC และตรวจสอบจากนั้นฉันก็จะไม่มีปัญหา
Connor Wolf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.