ADC 분해능 및 LSB 계산기 활용 가이드
아날로그-디지털 컨버터(ADC) 설계 및 신호 체인 분석에서 분해능과 기준 전압은 시스템의 물리적 한계를 결정하는 핵심 요소입니다. ADC 분해능 계산기는 입력된 비트 수와 기준 전압을 바탕으로 LSB 단계 크기, 양자화 오차, 이상적인 신호 대 잡음비(SNR)를 정밀하게 계산합니다. 단극성(Unipolar) 및 양극성(Bipolar) 입력 범위를 모두 지원하며, 특정 전압과 디지털 코드 간의 상호 변환 및 목표 전압 변화량을 해상하기 위해 필요한 최소 비트 수 계산 기능을 제공합니다.
이 도구는 이상적인 양자화기 모델을 기준으로 동작합니다. 입력된 모든 데이터는 사용자의 웹 브라우저 내부에서만 처리되며 외부 서버로 업로드되지 않습니다. 모든 계산은 로컬 장치에서 즉시 수행됩니다.
주요 입력 항목 및 설정
계산기를 사용하기 위해 입력하는 매개변수와 설정 항목은 다음과 같습니다.
- 분해능 N (비트): 1에서 32 사이의 정수 값으로, 컨버터의 공칭 비트 폭을 정의합니다.
- 기준 전압 및 단위: 컨버터의 기준 전압 값과 단위를 설정합니다. 기준 전압은 반드시 0보다 커야 합니다.
- 입력 범위: "단극성 (Unipolar) · 0 ~ Vref" 또는 "양극성 (Bipolar) · −Vref ~ +Vref" 중 하나를 선택합니다.
- 표시할 소수점 자리수: 결과에 출력할 소수점 아래 자리수를 지정합니다.
- 변환 방향 (선택 사항): "전압 → 코드" 또는 "코드 → 전압" 모드를 선택하여 특정 측정 지점의 값을 변환할 수 있습니다.
- 입력 전압 / 코드 (카운트): 선택한 변환 방향에 따라 변환할 전압 값 또는 디지털 코드(0에서 최상위 코드 사이의 정수)를 입력합니다.
- 해상해야 할 최소 변화량 (선택 사항): 감지하고자 하는 최소 전압 변화량을 입력하여 시스템에 필요한 최소 비트 분해능을 역산합니다.
주요 출력 지표 및 해석
계산 결과는 다음과 같은 구체적인 지표로 세분화되어 출력됩니다.
단계 크기 및 잡음
- LSB 단계 크기: 최소 유효 비트(LSB)에 해당하는 전압 크기입니다. 하단에 풀스케일 대비 백분율(%) 및 ppm 단위의 비율이 함께 표시됩니다.
- 양자화 레벨 수: 컨버터가 표현할 수 있는 총 이산 레벨 수(2^N)입니다.
- 최상위 코드: 컨버터가 출력할 수 있는 최대 디지털 코드 값(2^N - 1)입니다.
- 풀스케일 범위 (FSR): 컨버터가 수용할 수 있는 전체 전압 스팬(FSR)입니다.
- 최대 양자화 오차 (±½ LSB): 이상적인 양자화 과정에서 발생하는 최대 이론적 양자화 오차입니다.
- 양자화 잡음 (rms): 제곱평균제곱근(rms) 값으로 표현된 양자화 잡음 전압입니다.
- 이상적인 SNR (풀스케일 정현파): 풀스케일 정현파 입력을 가정했을 때의 이론적 신호 대 잡음비 한계치(dB)입니다.
- 동적 범위: 컨버터의 이론적인 동적 범위(dB)입니다.
측정 지점 결과
- 출력 코드 / 2진수 / 16진수: 입력 전압에 대응하는 디지털 코드와 이를 변환한 2진수 및 16진수 값입니다.
- 코드 전압: 특정 디지털 코드가 나타내는 정확한 물리적 전압 값입니다.
- 양자화 오차: 실제 입력 전압과 디지털 코드가 나타내는 전압 간의 차이입니다.
- 이 코드의 입력 전압 범위: 해당 디지털 코드로 매핑되는 입력 전압의 상하한 구간입니다.
수학적 공식 및 대입 예시
계산기는 입력된 수치를 바탕으로 아래의 공식에 값을 대입하여 상세한 계산 과정을 보여줍니다.
- LSB 단계 크기: LSB = FSR ÷ 2^N
- 최대 양자화 오차: ±LSB ÷ 2
- 양자화 잡음 (rms): LSB ÷ √12
- 이상적인 SNR (풀스케일 정현파): SNR = 6.02 × N + 1.76 dB
- 동적 범위: 6.02 × N dB
- 단극성 코드 변환: code = round(Vin ÷ LSB)
- 양극성 코드 변환: code = round((Vin + Vref) ÷ LSB)
- 단극성 코드 전압: V = code × LSB
- 양극성 코드 전압: V = code × LSB − Vref
- 측정 지점 양자화 오차: 코드 전압 − 입력 전압
- 필요 분해능 역산: N ≥ log₂(FSR ÷ step) (소수점 올림하여 정수 비트로 변환)
12비트 단극성 시스템 예시 (기준 전압 3.3 V)
- 양자화 레벨 수: 2¹² = 4,096 레벨 (최상위 코드: 4,095)
- LSB 단계 크기: 3.3 V ÷ 4,096 ≈ 805.6641 µV
- 최대 양자화 오차: ±402.832 µV
- 양자화 잡음 (rms): 805.6641 µV ÷ √12 ≈ 232.5752 µV rms
- 이상적인 SNR: 6.02 × 12 + 1.76 ≈ 74.01 dB
- 동적 범위: 6.02 × 12 ≈ 72.25 dB
- 측정 지점 변환 (입력 전압 1.65 V): 정확히 중간 스케일에 위치하므로 출력 코드는 2,048이 되며, 2진수로는 1000 0000 0000, 16진수로는 0x800으로 변환됩니다. 이때의 양자화 오차는 0 V입니다.
예외 처리 및 한계 조건
계산기는 입력값의 유효성을 검증하고 한계 상황에서 다음과 같은 규칙과 경고를 적용합니다.
- 입력값 오류: 숫자가 아닌 값이 입력되면
"‹field›: “‹token›”은(는) 숫자가 아닙니다."오류를 출력합니다. - 범위 초과: 비트 수가 범위를 벗어나면
"분해능은 1에서 32 사이의 비트 단위 정수여야 합니다."메시지가 표시되며, 기준 전압이 0 이하일 경우"기준 전압은 0보다 커야 합니다."오류가 발생합니다. 코드가 정수가 아니거나 범위를 벗어나면 각각"코드는 정수값이어야 합니다."또는"코드는 ‹bits›비트 컨버터 기준 0에서 ‹max› 사이여야 합니다."경고를 출력합니다. - 상한 레일 초과 (High Rail Clipping): 입력 전압이 허용 범위를 초과하여 높을 경우, 출력은 최상위 코드로 제한되며 다음 경고가 표시됩니다:
"입력값이 상한 레일을 초과했습니다: 출력이 최상위 코드로 포화되며, 표시된 오차는 실제 잔여 오차입니다. 이 경우 ±½ LSB 한계는 더 이상 적용되지 않습니다." - 하한 레일 미만 (Low Rail Clipping): 입력 전압이 허용 범위보다 낮을 경우, 출력은 코드 0으로 제한되며 다음 경고가 표시됩니다:
"입력값이 하한 레일 미만입니다: 출력이 코드 0으로 포화되며, 표시된 오차는 실제 잔여 오차입니다. 이 경우 ±½ LSB 한계는 더 이상 적용되지 않습니다."
자주 묻는 질문 (FAQ)
Q: 12비트 분해능이 12비트 정확도를 의미하나요?
A: 아닙니다. 분해능은 단지 코드가 가질 수 있는 폭, 즉 전체 범위를 얼마나 미세하게 나누는지만을 나타냅니다. 실제 정확도는 컨버터의 INL, 오프셋/이득 오차, 기준 전압의 허용 오차 및 잡음, 그리고 주변 회로에 의해 제한됩니다. 데이터시트에서 ENOB를 명시하는 이유가 바로 이 때문입니다. 예를 들어 12비트 SAR은 일반적으로 10–11비트의 유효 비트를 제공합니다. 여기서 계산되는 74 dB의 이상적인 SNR은 실제 12비트 컨버터가 도달할 수 없는 이론적인 한계치입니다.
Q: ±Vref 입력은 계산에 어떤 영향을 주나요?
A: 입력 범위가 2 × Vref로 두 배 늘어나므로, 동일한 컨버터가 해상하는 단계의 크기도 두 배로 커집니다: LSB = 2 × Vref ÷ 2^N. 코드는 음의 레일에서 양의 레일까지 매핑됩니다. 즉, 코드 0은 −Vref, 중간 코드인 2^(N−1)은 0 V, 최상위 코드는 +Vref보다 1단계 아래에 위치하게 됩니다. 위의 입력 범위에서 양극성(bipolar)을 선택하면 0 V가 정확히 중간 코드에 매핑됩니다.
Q: 왜 어떤 자료는 2^N으로 나누고 다른 자료는 2^N − 1로 나누나요?
A: 이는 동일한 컨버터를 바라보는 두 가지 서로 다른 모델입니다. 데이터시트와 고전적인 양자화 이론에서는 LSB = FSR ÷ 2^N으로 정의하며, 첫 번째 코드 전환은 반 단계(½ LSB)에서 일어납니다. 이 페이지가 사용하는 모델이 바로 이것입니다. 반면 Vref ÷ (2^N − 1) 형태는 최상위 코드를 Vref에 정확히 일치시키는 방식에서 유래한 것으로, 마이크로컨트롤러 튜토리얼에서 흔히 쓰입니다. 12비트 기준 두 방식의 차이는 약 0.02%로 실제 기준 전압의 허용 오차보다 훨씬 작지만, 여러 자료의 수치를 비교할 때는 두 모델을 혼용하지 않도록 주의해야 합니다.
Q: 단계 크기가 너무 조밀하지 못하고 거칠 때는 어떻게 해야 하나요?
A: 신호에 약간의 잡음이 섞여 있는 경우, 오버샘플링과 평균화를 통해 분해능을 높일 수 있습니다. 잡음이 백색 잡음이고 서로 상관관계가 없다면, 샘플 수를 4× 평균화할 때 약 1비트의 유효 비트를 얻고, 16× 평균화할 때 2비트를 얻을 수 있습니다. 단, 잡음이 전혀 없고 완전히 고정된 신호라면 동일한 코드만 반복될 뿐입니다. 그 이상의 분해능이 필요하다면 더 높은 비트의 컨버터로 변경하거나 가변 이득 증폭 단계를 추가하여 신호가 입력 범위를 더 많이 채우도록 해야 합니다.