반응형
ADC 관련 기본 : Missing Code 과 ENOB
ADC(Analog to Digital Converter) 설계와 테스트에서 중요한 용어인 "Missing Code" 와 "ENOB(Effective Number of Bits)" 에 대해서 내용을 정리했습니다. 이 2가지는 실제 설계나 테스트할 때 정확도와 품질을 평가하는 핵심 포인트 입니다.
⚠️ Missing Code (미싱 코드)
✅ 개념 정의
Missing Code란, 이론적으로 존재해야 할 디지털 코드 값 중 일부가 실제 ADC 출력에서 아예 나타나지 않는 현상을 의미합니다.
예를 들어 8비트 ADC는 0 ~ 255 (총 256개) 코드 값을 갖지만,
테스트 중 특정 코드(예: 127번)가 절대 출력되지 않는다면, 그것이 Missing Code 입니다.
❗ 원인
- DNL 오류가 –1 LSB 미만일 경우 발생
- 내부 Comparator 오차, 클럭 지터, 비선형성 등
- 레이아웃 불균형이나 캘리브레이션 실패
📌 문제점
- ADC의 해상도 저하
- 데이터 왜곡
- 제어 시스템에서 신뢰성 저하
🔍 예시
아날로그 입력 | 디지털 출력 |
1.23V | 126 |
1.24V | 126 |
1.25V | 128 |
→ 127번 코드가 전혀 나타나지 않음 → Missing Code 발생
🔢 ENOB (Effective Number of Bits)
✅ 개념 정의
ENOB는 실제 ADC가 가진 "유효한 비트 수"를 나타내는 지표로,
이상적인 ADC 대비 노이즈, 왜곡 등을 고려한 실제 정밀도를 평가합니다.
📐 공식
ENOB는 SNR(Signal-to-Noise Ratio)을 기반으로 아래와 같이 계산:

- 단위: bit
- SNR: 신호 대 잡음비 (dB)
❗ 왜 중요한가?
- ADC의 명시된 해상도(예: 12bit)가 실제로 12bit처럼 작동하지 않을 수 있음
- 시스템의 정확도 한계를 결정함
- 고정밀 측정, 오디오 처리, 센서 신호 등에 매우 중요
반응형
📊 예시
- 이론상 12bit ADC → 최대 SNR =

하지만 측정된 SNR이 66.0 dB라면?

→ 실질적으로는 약 10.6bit 정도의 정밀도만 가지고 있다는 뜻
🐍 파이썬 예제 코드
def calc_enob(snr_db):
return (snr_db - 1.76) / 6.02
snr = 66.0
enob = calc_enob(snr)
print(f"ENOB: {enob:.2f} bits")
📌 INL / DNL / Missing Code / ENOB 관계 정리
항목 | 의미 | 영향 |
DNL | 코드 간 step 불균형 | Missing Code 발생 가능성 |
INL | 전체 선형성 왜곡 | 시스템 오차, 정밀도 저하 |
Missing Code | 누락된 디지털 코드 | 측정 누락, 해상도 저하 |
ENOB | 실제 유효 비트 수 | 전체 ADC 성능의 종합 척도 |
📦 실무 팁
- DNL < –1 LSB → Missing Code 체크 필수
- ENOB가 낮다 → 노이즈 필터링, 전원 안정화 필요
- 성능 평가 시 FFT로 SNR → ENOB 계산 자주 활용
반응형
'코딩취미 > 프로그램 지식' 카테고리의 다른 글
아날로그-디지털 변환기의 INL과 DNL 완전 정복 (0) | 2025.03.28 |
---|---|
JIRA 필터 만들기: 초급자, 중급자, 숙련자 단계별 가이드 (0) | 2025.03.13 |
[JIRA 필터] JIRA Query Language (JQL) 완벽 가이드: 문법, 구조, 활용법 (0) | 2025.03.13 |
CSV 파일 크기 문제 해결 방법: 초급, 중급, 고급 단계별 가이드 (0) | 2025.03.13 |
대용량 CSV 데이터를 다루는 방법 총정리 (0) | 2025.03.12 |