เครื่องคำนวณความละเอียด ADC

ป้อนจำนวนบิตและแรงดันไฟฟ้าอ้างอิงของ ADC เพื่อหาขนาดขั้นสัญญาณ ค่าความคลาดเคลื่อนจากการควอนไทซ์ และ SNR ในอุดมคติ แปลงค่าระหว่างโวลต์กับรหัส พร้อมแสดงการแทนค่าในทุกขั้นตอน

ตัวแปลงสัญญาณและช่วงอินพุต

จำนวนเต็มตั้งแต่ 1 ถึง 32 — ความกว้างบิตปกติของตัวแปลงสัญญาณ
ช่วงอินพุต

จุดวัดค่า (ไม่บังคับ)

เว้นว่างไว้เพื่อข้ามการวัดค่า

คุณต้องใช้ความละเอียดกี่บิต? (ไม่บังคับ)

ขนาดขั้นสัญญาณและสัญญาณรบกวน

ขนาดขั้นสัญญาณ LSB

สูตรและการแทนค่า

LSB = FSR ÷ 2ᴺ · ค่าความคลาดเคลื่อนสูงสุด = ½ LSB · SNR = 6.02N + 1.76 dB

    ทุกตัวเลขที่คุณป้อนจะอยู่ภายในเบราว์เซอร์นี้เท่านั้น โดยไม่มีการอัปโหลดใดๆ ทั้งสิ้น

    คำถามที่พบบ่อย

    ทำไมบางแหล่งข้อมูลจึงหารด้วย 2^N แต่บางแหล่งหารด้วย 2^N − 1?

    ทั้งสองเป็นแบบจำลองที่แตกต่างกันสองแบบของตัวแปลงสัญญาณเดียวกัน โดยเอกสารข้อมูลและทฤษฎีการควอนไทซ์แบบคลาสสิกจะกำหนดให้ LSB = FSR ÷ 2^N โดยมีการเปลี่ยนรหัสครั้งแรกที่ครึ่งขั้น ซึ่งเป็นแบบจำลองที่หน้านี้เลือกใช้ ส่วนรูปแบบ Vref ÷ (2^N − 1) เกิดจากการจับคู่รหัสสูงสุดให้ตรงกับ Vref พอดี ซึ่งมักพบในบทเรียนเกี่ยวกับไมโครคอนโทรลเลอร์ ที่ความละเอียด 12 บิต ทั้งสองแบบจะต่างกันประมาณ 0.02% ซึ่งต่ำกว่าค่าความคลาดเคลื่อนของแรงดันอ้างอิงจริงมาก เพียงแต่ไม่ควรนำทั้งสองแบบมาผสมกันเมื่อตรวจสอบตัวเลขจากแหล่งข้อมูลที่ต่างกัน

    ความละเอียด 12 บิต หมายถึงความแม่นยำ 12 บิตด้วยหรือไม่?

    ไม่ใช่ ความละเอียดเป็นเพียงความกว้างของรหัส หรือความละเอียดในการแบ่งช่วงสัญญาณเท่านั้น ส่วนความแม่นยำจะถูกจำกัดโดยค่า INL และความคลาดเคลื่อนของออฟเซต/อัตราขยายของตัวแปลงสัญญาณ รวมถึงค่าความคลาดเคลื่อนและสัญญาณรบกวนของแรงดันอ้างอิง ตลอดจนวงจรรอบข้าง ด้วยเหตุนี้ในเอกสารข้อมูล (datasheet) จึงระบุค่า ENOB เช่น SAR ขนาด 12 บิต โดยทั่วไปจะให้บิตใช้งานจริงอยู่ที่ 10–11 บิต ส่วนค่า SNR ในอุดมคติที่ 74 dB ที่แสดงที่นี่คือขีดจำกัดสูงสุดทางทฤษฎีที่ไม่มีตัวแปลงสัญญาณ 12 บิตจริงตัวใดไปถึง

    อินพุตแบบ ±Vref ส่งผลต่อการคำนวณอย่างไร?

    ช่วงสัญญาณจะเพิ่มขึ้นเป็นสองเท่าคือ 2 × Vref ดังนั้นตัวแปลงสัญญาณตัวเดิมจะแยกแยะขั้นสัญญาณที่กว้างขึ้นเป็นสองเท่า: LSB = 2 × Vref ÷ 2^N โดยรหัสจะวิ่งจากแรงดันฝั่งลบไปจนถึงฝั่งบวก โดยรหัส 0 คือ −Vref รหัสกึ่งกลาง 2^(N−1) คือ 0 V และรหัสสูงสุดจะอยู่ต่ำกว่า +Vref อยู่หนึ่งขั้น หากคุณเลือกช่วงสัญญาณแบบ bipolar ด้านบน แรงดันศูนย์โวลต์จะตรงกับรหัสกึ่งกลางพอดี

    ควรทำอย่างไรเมื่อขนาดขั้นสัญญาณหยาบเกินไป?

    การสุ่มสัญญาณเกินพิกัด (Oversampling) และการหาค่าเฉลี่ยจะช่วยเพิ่มความละเอียดได้เมื่อสัญญาณมีสัญญาณรบกวนเล็กน้อย โดยการหาค่าเฉลี่ยของตัวอย่างที่มากกว่าเดิม 4× จะช่วยเพิ่มบิตใช้งานจริงได้ประมาณหนึ่งบิต และ 16× จะได้เพิ่มสองบิต ทั้งนี้มีเงื่อนไขว่าสัญญาณรบกวนต้องเป็นแบบ White Noise และไม่มีความสัมพันธ์กัน เนื่องจากสัญญาณที่สะอาดและนิ่งสนิทอย่างสมบูรณ์จะให้รหัสเดิมซ้ำๆ เท่านั้น นอกเหนือจากวิธีนี้ คุณจำเป็นต้องเปลี่ยนไปใช้ตัวแปลงสัญญาณที่มีจำนวนบิตมากขึ้น หรือเพิ่มวงจรขยายสัญญาณที่ปรับอัตราขยายได้ (programmable-gain stage) เพื่อให้สัญญาณครอบคลุมช่วงได้มากขึ้น

    การคำนวณขนาดขั้นสัญญาณ LSB และสัญญาณรบกวนของ ADC

    เครื่องคำนวณความละเอียด ADC ช่วยให้ผู้ใช้งานสามารถประเมินประสิทธิภาพทางทฤษฎีของตัวแปลงสัญญาณอนาล็อกเป็นดิจิทัล (Analog-to-Digital Converter) ได้อย่างแม่นยำ โดยคำนวณค่าขนาดขั้นสัญญาณ LSB (Least Significant Bit) ระดับการควอนไทซ์ ค่าความคลาดเคลื่อน และอัตราส่วนสัญญาณต่อสัญญาณรบกวนในอุดมคติ

    การทำงานของเครื่องมือนี้อ้างอิงตามแบบจำลองตัวควอนไทซ์ในอุดมคติ ซึ่งกำหนดให้การเปลี่ยนรหัสครั้งแรกเกิดขึ้นที่ครึ่งขั้นสัญญาณ (½ LSB) และคำนวณขนาดขั้นสัญญาณจากสูตร LSB = FSR ÷ 2^N ค่าที่ได้ทั้งหมดเป็นขีดจำกัดสูงสุดทางทฤษฎี เนื่องจากในระบบจริงจะมีค่าความคลาดเคลื่อนจากค่า INL/DNL ความคลาดเคลื่อนของออฟเซต อัตราขยาย การเลื่อนลอย และสัญญาณรบกวนจากแรงดันอ้างอิงรวมอยู่ด้วย

    ในการใช้งานจริง ตัวแปลงสัญญาณจะมีช่วงอินพุตสองรูปแบบหลัก ซึ่งส่งผลต่อช่วงสเกลเต็ม (ช่วงสเกลเต็ม หรือ FSR) ดังนี้:

    • Unipolar · 0 ถึง Vref: ช่วงแรงดันอินพุตจะวิ่งตั้งแต่ 0 ถึง Vref โดยมีช่วงสเกลเต็มเท่ากับแรงดันอ้างอิง (FSR = Vref)
    • Bipolar · −Vref ถึง +Vref: ช่วงแรงดันอินพุตจะกว้างเป็นสองเท่า ตั้งแต่ −Vref ถึง +Vref ทำให้ช่วงสเกลเต็มเท่ากับสองเท่าของแรงดันอ้างอิง (FSR = 2 × Vref) โดยรหัส 0 จะตรงกับ −Vref รหัสกึ่งกลางจะตรงกับ 0 V และรหัสสูงสุดจะอยู่ต่ำกว่า +Vref อยู่หนึ่งขั้นสัญญาณ

    สูตรและการแทนค่าคำนวณ

    เครื่องมือจะแสดงขั้นตอนการคำนวณอย่างละเอียดโดยใช้ตัวเลขจริงที่ผู้ใช้ป้อนเข้าไปแทนที่ในตัวแปรของสูตรทางคณิตศาสตร์:

    • ระดับสัญญาณ: ระดับสัญญาณ = 2^N
    • ช่วงสเกลเต็ม (FSR): สำหรับ Unipolar จะใช้สูตร FSR = Vref ส่วน Bipolar จะใช้สูตร FSR = 2 × Vref
    • ขนาดขั้นสัญญาณ LSB: LSB = FSR ÷ 2^N
    • ค่าความคลาดเคลื่อนจากการควอนไทซ์สูงสุด: ±LSB ÷ 2
    • สัญญาณรบกวนจากการควอนไทซ์ (rms): LSB ÷ √12
    • SNR ในอุดมคติ (คลื่นไซน์แบบเต็มสเกล): SNR = 6.02 × N + 1.76 dB
    • ช่วงไดนามิก: ช่วงไดนามิก = 6.02 × N dB

    ตัวอย่างการคำนวณเมื่อโหลดค่าตัวอย่าง (12 บิต, แรงดันอ้างอิง 3.3 V, ช่วง Unipolar):

    • ระดับการควอนไทซ์ = 2¹² = 4,096 ระดับ
    • รหัสสูงสุด = 4,095
    • LSB = 3.3 V ÷ 4,096 ≈ 805.6641 µV
    • ค่าความคลาดเคลื่อนจากการควอนไทซ์สูงสุด = ±402.832 µV
    • สัญญาณรบกวนจากการควอนไทซ์ ≈ 232.5752 µV rms
    • SNR ในอุดมคติ ≈ 74.01 dB
    • ช่วงไดนามิก ≈ 72.25 dB

    การแปลงค่า ณ จุดวัดค่าและข้อจำกัดของแรงดันอินพุต

    เครื่องมือรองรับการแปลงค่ากลับไปมาระหว่างแรงดันไฟฟ้าและรหัสเอาต์พุตดิจิทัล ณ จุดวัดค่าที่กำหนด:

    • แรงดันไฟฟ้า → รหัส: สำหรับ Unipolar จะใช้สูตร code = round(Vin ÷ LSB) และสำหรับ Bipolar จะใช้สูตร code = round((Vin + Vref) ÷ LSB)
    • รหัส → แรงดันไฟฟ้า: สำหรับ Unipolar จะใช้สูตร V = code × LSB และสำหรับ Bipolar จะใช้สูตร V = code × LSB − Vref
    • ค่าความคลาดเคลื่อนจากการควอนไทซ์ ณ จุดวัด: คำนวณจาก แรงดันไฟฟ้าของรหัส − แรงดันไฟฟ้าอินพุต

    ในกรณีที่แรงดันอินพุตอยู่นอกช่วงการทำงานของตัวแปลงสัญญาณ ระบบจะแสดงข้อความแจ้งเตือนการจำกัดค่า (Clipping) ดังนี้:

    • อินพุตอยู่สูงกว่าขีดจำกัดแรงดันฝั่งสูง: ระบบจะแสดงคำเตือน "อินพุตอยู่สูงกว่าขีดจำกัดแรงดันฝั่งสูง: เอาต์พุตอิ่มตัวที่รหัสสูงสุด และค่าความคลาดเคลื่อนที่แสดงคือค่าส่วนต่างที่แท้จริง — ขอบเขต ±½ LSB จะไม่สามารถใช้ได้อีกต่อไป"
    • อินพุตอยู่ต่ำกว่าขีดจำกัดแรงดันฝั่งต่ำ: ระบบจะแสดงคำเตือน "อินพุตอยู่ต่ำกว่าขีดจำกัดแรงดันฝั่งต่ำ: เอาต์พุตอิ่มตัวที่รหัส 0 และค่าความคลาดเคลื่อนที่แสดงคือค่าส่วนต่างที่แท้จริง — ขอบเขต ±½ LSB จะไม่สามารถใช้ได้อีกต่อไป"
    • อินพุตอยู่กึ่งกลางสเกลพอดี: ระบบจะแสดงข้อความว่าอินพุตอยู่กึ่งกลางสเกลพอดี โดยครึ่งหนึ่งของช่วงสัญญาณจะจับคู่กับรหัสนั้นโดยไม่มีค่าความคลาดเคลื่อนจากการควอนไทซ์

    การประเมินขนาดความละเอียดบิตที่ต้องการ

    เมื่อผู้ใช้ระบุค่าแรงดันไฟฟ้าที่เล็กที่สุดที่ต้องการแยกแยะ เครื่องคำนวณจะประเมินขนาดบิตที่จำเป็นจากสูตร N ≥ log₂(FSR ÷ step) แล้วปัดเศษขึ้นเป็นจำนวนเต็ม

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

    ความเป็นส่วนตัวและการประมวลผลข้อมูล

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


    คำถามที่พบบ่อย (FAQ)

    ความละเอียด 12 บิต หมายถึงความแม่นยำ 12 บิตด้วยหรือไม่? ไม่ใช่ ความละเอียดเป็นเพียงความกว้างของรหัส หรือความละเอียดในการแบ่งช่วงสัญญาณเท่านั้น ส่วนความแม่นยำจะถูกจำกัดโดยค่า INL และความคลาดเคลื่อนของออฟเซต/อัตราขยายของตัวแปลงสัญญาณ รวมถึงค่าความคลาดเคลื่อนและสัญญาณรบกวนของแรงดันอ้างอิง ตลอดจนวงจรรอบข้าง ด้วยเหตุนี้ในเอกสารข้อมูล (datasheet) จึงระบุค่า ENOB เช่น SAR ขนาด 12 บิต โดยทั่วไปจะให้บิตใช้งานจริงอยู่ที่ 10–11 บิต ส่วนค่า SNR ในอุดมคติที่ 74 dB ที่แสดงที่นี่คือขีดจำกัดสูงสุดทางทฤษฎีที่ไม่มีตัวแปลงสัญญาณ 12 บิตจริงตัวใดไปถึง

    อินพุตแบบ ±Vref ส่งผลต่อการคำนวณอย่างไร? ช่วงสัญญาณจะเพิ่มขึ้นเป็นสองเท่าคือ 2 × Vref ดังนั้นตัวแปลงสัญญาณตัวเดิมจะแยกแยะขั้นสัญญาณที่กว้างขึ้นเป็นสองเท่า: LSB = 2 × Vref ÷ 2^N โดยรหัสจะวิ่งจากแรงดันฝั่งลบไปจนถึงฝั่งบวก โดยรหัส 0 คือ −Vref รหัสกึ่งกลาง 2^(N−1) คือ 0 V และรหัสสูงสุดจะอยู่ต่ำกว่า +Vref อยู่หนึ่งขั้น หากคุณเลือกช่วงสัญญาณแบบ bipolar ด้านบน แรงดันศูนย์โวลต์จะตรงกับรหัสกึ่งกลางพอดี

    ทำไมบางแหล่งข้อมูลจึงหารด้วย 2^N แต่บางแหล่งหารด้วย 2^N − 1? ทั้งสองเป็นแบบจำลองที่แตกต่างกันสองแบบของตัวแปลงสัญญาณเดียวกัน โดยเอกสารข้อมูลและทฤษฎีการควอนไทซ์แบบคลาสสิกจะกำหนดให้ LSB = FSR ÷ 2^N โดยมีการเปลี่ยนรหัสครั้งแรกที่ครึ่งขั้น ซึ่งเป็นแบบจำลองที่หน้านี้เลือกใช้ ส่วนรูปแบบ Vref ÷ (2^N − 1) เกิดจากการจับคู่รหัสสูงสุดให้ตรงกับ Vref พอดี ซึ่งมักพบในบทเรียนเกี่ยวกับไมโครคอนโทรลเลอร์ ที่ความละเอียด 12 บิต ทั้งสองแบบจะต่างกันประมาณ 0.02% ซึ่งต่ำกว่าค่าความคลาดเคลื่อนของแรงดันอ้างอิงจริงมาก เพียงแต่ไม่ควรนำทั้งสองแบบมาผสมกันเมื่อตรวจสอบตัวเลขจากแหล่งข้อมูลที่ต่างกัน

    ควรทำอย่างไรเมื่อขนาดขั้นสัญญาณหยาบเกินไป? การสุ่มสัญญาณเกินพิกัด (Oversampling) และการหาค่าเฉลี่ยจะช่วยเพิ่มความละเอียดได้เมื่อสัญญาณมีสัญญาณรบกวนเล็กน้อย โดยการหาค่าเฉลี่ยของตัวอย่างที่มากกว่าเดิม 4× จะช่วยเพิ่มบิตใช้งานจริงได้ประมาณหนึ่งบิต และ 16× จะได้เพิ่มสองบิต ทั้งนี้มีเงื่อนไขว่าสัญญาณรบกวนต้องเป็นแบบ White Noise และไม่มีความสัมพันธ์กัน เนื่องจากสัญญาณที่สะอาดและนิ่งสนิทอย่างสมบูรณ์จะให้รหัสเดิมซ้ำๆ เท่านั้น นอกเหนือจากวิธีนี้ คุณจำเป็นต้องเปลี่ยนไปใช้ตัวแปลงสัญญาณที่มีจำนวนบิตมากขึ้น หรือเพิ่มวงจรขยายสัญญาณที่ปรับอัตราขยายได้ (programmable-gain stage) เพื่อให้สัญญาณครอบคลุมช่วงได้มากขึ้น