Static (정적) / DC: 신호가 시간에 따라 아주 빠르게 변하는 동적 상태(AC 포퍼먼스, 예: SNR, THD 등)를 배제하고, 입력 신호가 완전히 안정되었을 때(Steady-state)의 입출력 관계를 뜻합니다.
Static Transfer Function: 정적 전달 함수 (주파수나 타이밍 성분을 배제하고, 입력 대 출력의 정밀한 매핑 관계를 나타낸 기본 스펙 그래프).

데이터 컨버터의 분해능은 최하위 비트(LSB)의 가중치, 풀스케일 대비 백만분율(ppm FS), 밀리볼트(mV) 등 여러 가지 서로 다른 방식으로 표현될 수 있습니다.
- ppm FS (Parts Per Million Full-Scale): 풀스케일 전압 대비 백만분의 1 크기를 나타내는 정밀도 단위. (1 ppm = 0.0001)
- dB FS (Decibels Relative to Full Scale): 풀스케일 최대 진폭을 0 dB로 잡고, 양자화 계단이나 노이즈의 크기를 로그 스케일로 상대 비교한 단위.
- Johnson Noise (존슨 노이즈 / 열잡음): 도체 내부의 전자들이 열적 요동에 의해 불규칙하게 움직이면서 발생하는 아날로그 회로의 근원적인 백색 잡음.
데이터 컨버터에 사용되는 오차(Error)들 다루겠습니다.

DAC에서는 입력과 출력 모두 양자화되어 있으며, 그래프는 8개의 점으로 구성됩니다. 비록 이 점들을 관통하는 선(직선)을 논하는 것이 합리적일지라도, 실제 전달 특성은 선이 아니라 여러 개의 이산적인(불연속적인) 점들이라는 사실을 기억하는 것이 매우 중요합니다.
DAC와 ADC 모두에서, 디지털 풀스케일(모든 비트가 '1'인 상태)은 아날로그 풀스케일(FS)보다 1 LSB 낮은 값에 대응합니다.
(이상적인) ADC의 코드 전이(Transition)는 영점(0)보다 1/2 LSB 높은 지점에서 처음 발생하며, 그 이후로는 매1 LSB마다 발생하여 아날로그 풀스케일보다 1.5 LSB 낮은 지점까지 이어집니다.
- 첫 번째 전이 (000 -> 001): 0V에서 시작해 딱 절반인 0.5 LSB를 넘어서는 순간 코드가 바뀝니다.
- 이후 전이들: 매 1 LSB 간격으로 일정하게 뜁니다. 즉, 1.5 LSB, 2.5 LSB, 3.5 LSB 지점에서 문턱값이 작동합니다.
- 마지막 전이 (110 -> 111): 3비트 기준으로 마지막 전이는 6.5 LSB 지점에서 일어납니다. 아날로그 풀스케일이 총 8 LSB 분량이므로, 8 - 6.5 = 1.5가 되어 정확히 FS - 1.5 LSB 지점이 마지막 문턱값이 됩니다.
ADC로 들어오는 아날로그 입력은 어떤 값도 가질 수 있지만 디지털 출력은 양자화되어 있기 때문에, 실제 아날로그 입력과 디지털 출력이 나타내는 정확한 값 사이에는 최대 0.5 LSB의 차이가 발생할 수 있습니다. 이를 그림 2.15에 나타난 것처럼 "양자화 오차(Quantization error)" 또는 "양자화 불확실성(Quantization uncertainty)"이라고 부릅니다.
AC(샘플링) 응용 분야에서 이러한 양자화 오차는 "양자화 잡음(Quantization noise)"을 유발합니다.

자연계의 소리(오디오), 안테나가 수신하는 무선 주파수(RF), 센서의 차동 신호 등 우리가 다루어야 하는 대부분의 실질적인 아날로그 신호는 기준 전위(공통 모드 전압, V_CM)를 중심으로 위아래(+와 -)로 출렁이는 쌍극성 특성을 가집니다. 따라서 이를 온전히 처리하려면 쌍극성 컨버터가 필수적입니다.
쌍극성 신호를 다룰 때는 복잡하고 글리치에 취약한 부호-크기 구조 대신, 기존 단극성 코어에 1 MSB 만큼의 음의 오프셋을 주어 0V 지점을 100...0 코딩에 안착시키는 '오프셋 바이너리 쌍극성 컨버터' 구조를 스위칭 가변형으로 설계하여 칩의 범용성과 면적 효율을 극대화합니다.
*4대 DC 오차 요약
- Offset error: 오프셋 오차 (전달 함수 전체가 평행 이동한 에러. 주로 최하단 첫 전이점에서 측정).
- Gain error: 이득 오차 (전달 함수의 기울기가 이상적인 값과 달라져 발생하는 오차).
- Zero error: 제로 오차 (아날로그 입력 전압이 정확히 0V일 때 발생하는 출력의 편차 오차).
- Linearity error: 선형성 오차 (전체적인 틀 외에 계단 모양 자체가 불규칙하게 찌그러지는 오차. DNL과 INL이 있음).
DAC와 ADC 모두의 전달 특성은 D = K + GA로 주어지는 직선으로 표현될 수 있으며, 여기서 D는 디지털 코드, A는 아날로그 신호, 그리고 K(y절편, 오프셋 성분)와 G(기울기, 이득 성분)는 상수입니다.
단극성(Unipolar) 컨버터에서 K의 이상적인 값은 0이며, 오프셋 쌍극성(Offset bipolar) 컨버터에서는 -1 MSB입니다.
단극성 (K_ideal = 0)
오프셋 쌍극성 (K_ideal = -1 MSB) : 쌍극성 신호를 처리하기 위해 "단극성 코어에 1 MSB만큼의 음의 오프셋을 강제로 주입한다" 수식적으로 시스템 축을 마이너스 방향으로 반 칸-1 MSB 뚝 떨어뜨려 놓았기 때문에

오프셋 오차(Offset error)는 K의 실제 값이 이상적인 값으로부터 벗어난(차이가 나는) 양입니다.
Offset Error = K_actual - K_ideal
즉, 기울기(G)나 계단의 선형성이 아무리 완벽하더라도, 출발선 패밀리 축(K) 자체가 위나 아래로 삐딱하게 평행 이동해 버렸다면 그 전압 편차 폭이 전부 오프셋 오차가 됩니다.
이득 오차(Gain error)는 실제 기울기 G가 이상적인 값으로부터 벗어난 양을 말하며, 일반적으로 두 값 사이의 백분율(%) 편차로 표현됩니다.
이러한 오차들은 일반적으로 데이터 컨버터 사용자가 조정(Trim, 보정)할 수 있습니다.

컨버터의 적분 비선형성 오차(INL) 역시 증폭기의 선형성 오차와 유사하며, 컨버터의 실제 전달 특성이 '기준 직선(Straight line)'으로부터 벗어난 최대 편차(Maximum deviation)로 정의됩니다. 일반적으로 풀스케일의 백분율(% FS)로 표현되지만, LSB 단위로 주어지기도 합니다.
앞서 다룬 오프셋과 게인 에러가 직선의 위치나 기울기 자체를 보정하는 것이었다면, INL은 보정을 다 끝내고 난 뒤에도 전달 함수 곡선 자체가 활처럼 휘어버리는 '거시적 왜곡(Curvature)'을 뜻합니다. 컨버터 내부의 저항 배열이나 커패시터 매칭이 칩 중심부와 외곽부의 온도·공정 차이로 인해 서서히 틀어질 때 주로 발생합니다.
ADC는 본질상 계단(Staircase) 형태의 파형을 가집니다. 따라서 선형성을 비교할 '기준 직선'을 어디에 얹을지 약속해야 하는데, 이상적인 계단 발판들의 정중앙(Center)을 징검다리처럼 밟고 지나가는 직선을 가상의 참값(Ideal Reference)으로 잡는 것이 업계 표준 규격입니다.
그림 2.18에 나와 있는 것처럼 기준 직선을 선택하는 데는 종단점(End point) 방식과 최적 직선(Best straight line) 방식이라는 두 가지 일반적인 방법이 있습니다.
① 종단점 방식 (End Point Method - 왼쪽 그래프)
- 정의: 전달 함수의 맨 첫 번째 코드 정중앙과 맨 마지막 코드 정중앙을 자로 대고 일직선으로 곧게 연결한 선을 기준선으로 삼습니다.
- 특징: 양 끝단이 기준선에 완벽히 묶여있기 때문에, 곡선의 배가 불러오르는 중간 지점으로 갈수록 이상적인 선과의 거리가 멀어집니다. 그림에 표시된 것처럼 최대 오차가 X로 다소 크게 측정됩니다.
- 설계 및 실무적 의미: 시스템 관점에서 가장 정직하고 엄격한 지표입니다. 오프셋 캘리브레이션과 게인 캘리브레이션(2점 보정)을 수행하면 물리적으로 구현되는 선이 바로 이 종단점 기준선이기 때문에, 실무 엔지니어들은 이 스펙을 신뢰합니다.
② 최적 직선 방식 (Best Straight Line Method - 오른쪽 그래프)
- 정의: 수학적인 최적화 기법(주로 최소제곱법, Least Squares Method)을 사용하여, 곡선 전체 오차의 절댓값 총합이 최소가 되도록 기준 직선을 공중에 띄워 위아래로 살짝 조정한 선입니다.
- 특징: 기준선을 가운데로 적절히 뭉개 넣었기 때문에, 보시는 것처럼 상단과 하단에 오차가 분산되면서 최악의 편차 지점 값이 정확히 절반 수준인 = X/2로 뚝 떨어집니다.
- 설계 및 실무적 의미: 칩 제조사 마케팅 부서가 가장 좋아하는 방식입니다. 사양서에 "우리 칩은 INL 성능이 0.5 LSB 수준으로 뛰어납니다!"라고 홍보할 수 있기 때문입니다. 하지만 실제 시스템에서 이 최적 직선을 기준으로 캘리브레이션하려면 전 구간 데이터 가중치를 연산해야 하므로 보정 알고리즘 회로가 무거워집니다. 따라서 데이터시트를 볼 때 INL이 어떤 방식으로 측정되었는지 기재된 주석을 반드시 확인해야 합니다.
컨버터 비선형성의 또 다른 유형은 미분 비선형성(DNL)입니다. 이는 컨버터의 코드 전이(Transition)의 선형성과 관련이 있습니다.
이상적인 경우, 디지털 코드가 1 LSB 변할 때 아날로그 신호 역시 정확히 1 LSB만큼 변해야 합니다.
- DAC의 DNL: Y축(출력 전압 레벨)의 간격을 잽니다. 디지털 코드를 한 칸 올렸을 때 튀어나오는 아날로그 전압의 '계단 높이'가 정확히 1 LSB인지를 검사합니다.
- ADC의 DNL: X축(입력 전압 전이 문턱값)의 폭을 잽니다. 디지털 코드가 다음 칸으로 탁 체인지될 때까지 필요한 아날로그 입력 전압의 '발판 가로 폭'이 정확히 1 LSB 인지를 잽니다.
미분 비선형성 오차(DNL error)는 전체 전달 함수에서 임의의 퀀텀(Quantum, 계단 한 칸의 크기 또는 LSB 변화량)이 이상적인 크기인 1 LSB로부터 벗어난 최대 편차로 정의됩니다.

이상적인 계단 폭(또는 높이)인 정확히 1 LSB 스케일에서 조금이라도 좁아지거나(< 1 LSB) 넓어지면(> 1 LSB) 그 핀포인트 지점에 DNL 오차가 고이게 됩니다.
DNL 오차가 누적되다가 임계점인 -1 LSB를 돌파하는 순간, 시스템에는 그림 2.19와 같은 치명적인 하드웨어 왜곡이 발생합니다.
① DAC의 비단조성 (Non-Monotonicity - 왼쪽 그래프)
- 현상: 디지털 입력을 011에서 100으로 분명히 한 칸 늘렸는데, 아날로그 출력 전압은 위로 올라가기는커녕 아래로 툭 떨어지는 역전 현상이 발생합니다.
- 원인: 011에서 100으로 바뀔 때 상위 비트 스위치가 켜지고 하위 비트 스위치들이 꺼집니다. 이때 소자 간의 극심한 미스매치로 인해 새로 켜진 상위 비트의 전류(또는 전압) 가중치가 꺼진 하위 비트들의 합보다 작아지면, 특정 구간의 DNL이 -1 LSB보다 더 밑으로 떨어지게 됩니다.
- 시스템적 치명상: 전압이 우상향하지 않고 춤을 추기 때문에, 이 DAC를 제어 루프(Feedback Loop)에 넣으면 네거티브 피드백이 순간적으로 포지티브 피드백으로 뒤집히면서 시스템이 발진(Oscillation)하거나 락업(Lock-up)되는 대참사가 날 수 있습니다.
② ADC의 코드 누락 (Missing Code - 오른쪽 그래프)
- 현상: 아날로그 입력 전압을 아무리 정밀하게 쓸어내려도, 디지털 출력단에서 100이라는 코드는 영원히 출력되지 않고 건너뜁니다 (011에서 다음 전압을 넘어서는 순간 곧바로 101로 점프).
- 원인: 그림을 보시면 011 코드에 해당하는 계단 발판의 가로 폭이 이상치보다 훨씬 넓게 펼쳐져 있습니다. 즉, 내부 비교기(Comparator)의 문턱 전압이 미스매치로 인해 밀려나면서, 100이라는 코드가 차지해야 할 아날로그 전압 영역을 양옆의 계단이 침범해 완전히 먹어버린 상태입니다. 수학적으로 해당 지점의 DNL이 < -1 LSB가 되어 계단의 가로 폭이 0이 되며 증발한 현상입니다.
- 시스템적 치명상: 알고리즘 연산 장치(DSP나 CIM 어레이) 입장에서는 특정 데이터 구간이 통째로 유실되는 꼴이므로 신호 대 잡음비(SNR)가 급격히 악화됩니다.

만약 임의의 전이 구간에서 DAC의 DNL이 -1 LSB 미만이면(DNL < -1 LSB), 그 DAC는 비단조적(Non-monotonic)입니다.
그림 2.20의 011 -> 100 구간을 보면, 최상위 비트(MSB)가 켜지는 메이저 캐리 전이(Major Carry Transition) 구간입니다.
- 이상적인 전압 변화: 코드가 한 칸 올랐으니 당연히 위로 +1 LSB만큼 올라가야 합니다.
- 실제 회로의 전압 변화: 소자 미스매치 때문에 전압이 위로 가기는커녕 아래로 -1 LSB만큼 툭 떨어졌습니다.
- DNL 계산 공식: {실제 변화량} - {이상적인 변화량} = (-1 LSB) - (+1 LSB) = -2 LSB
- 결론: 계산 결과인 -2 LSB는 -1 LSB보다 더 작습니다. 그래프를 보면 아래로 볼록하게 꺼진 국소적 극솟값(Local Minimum)이 형성된 것을 볼 수 있으며, 이 전이점을 기점으로 우상향 라인이 깨지며 비단조성이 발현됩니다.
DNL이 +1 LSB보다 큰 상태는 비단조성을 유발하지는 않지만, 여전히 바람직하지 않습니다.
그림 2.20의 001 -> 010 구간을 보면, 전압 계단이 혼자서 2 LSB 폭으로 껑충 뛰어오릅니다.
- 이 지점의 DNL은 2 LSB - 1 LSB = +1 LSB가 됩니다.
- 코드가 올라갈 때 전압도 일단 위로 올라갔으니 '단조성(우상향)'은 유지됩니다. 하지만 계단 혼자서 너무 크게 점프했기 때문에, 후단 아날로그 신호에 찌그러짐(Distortion)과 큰 노이즈를 유발하므로 이 역시 설계자가 지양해야 하는 오차입니다.

ADC도 비단조적(Non-monotonic)일 수 있지만, ADC에서 과도한 DNL로 인해 발생하는 더 흔한(일반적인) 결과는 코드 누락(Missing codes)입니다.
ADC에서의 코드 누락은 DAC에서의 비단조성만큼이나 치명적인 결함입니다. 이 역시 DNL이 -1 LSB 미만일 때(DNL < -1 LSB) 발생합니다.
그림 2.21 그래프에 적힌 숫자들을 왼쪽부터 순서대로 매칭해 보면, ADC DNL의 계산 원리가 직관적으로 이해됩니다. ADC에서 이상적인 계단 발판의 가로 폭은 정확히 1 LSB여야 합니다.
- 첫 번째 계단: 가로 폭이 정확히 1 LSB이므로, DNL = 0 (완벽함)
- 두 번째 계단: 가로 폭이 0.5 LSB로 정상보다 반 토막 났습니다.
- 계산: {실제 폭}(0.5) - {이상적 폭}(1.0) = {-0.5 LSB}
- 세 번째 계단: 가로 폭이 1.5 LSB로 뚱뚱해졌습니다.
- 계산: {실제 폭}(1.5) - {이상적 폭}(1.0) = {+0.5 LSB}
- 네 번째 계단 (★MISSING CODE):
- 그래프 상단의 점선 구간을 보면, 내부 비교기(Comparator)의 문턱 전압이 공정 오차로 인해 심하게 밀려나 버렸습니다. 그 결과 해당 코드가 누려야 할 아날로그 입력 전압의 가로 발판 폭이 정확히 0이 되어 수직 벽으로 증발해 버렸습니다.
- 계산: {실제 폭}(0) - {이상적 폭}(1.0) = {-1 LSB}
- 문책에 적힌 대로 DNL이 -1 LSB 이하(< -1LSB)가 되는 순간, 그 코드는 아날로그 전압이 아무리 변해도 디지털 세상에 태어날 수 없는 코드 누락(Missing Code) 상태가 됩니다.
- 다섯 번째 계단: 가로 폭이 0.25 LSB로 극도로 좁아졌습니다.
- 계산: {실제 폭}(0.25) - {이상적 폭}(1.0) = {-0.75 LSB} (겨우 실종을 면한 아슬아슬한 상태)
"ADC = 코드 누락", "DAC = 비단조성" 같이 깔끔한 이분법은 아니다!!
ADC는 코드 누락(Missing codes)이 발생할 수 있을 뿐만 아니라, 그림 2.22에 나와 있는 것처럼 비단조적(Non-monotonic)일 수도 있습니다.
DAC에서는 코드 누락(Missing codes)이 발생할 수 없습니다. 왜냐하면 각각의 디지털 입력 워드(Word)는 그에 대응하는 아날로그 출력을 어떻게든 만들어내기 때문입니다.
그러나 앞서 논의한 바와 같이, DAC는 비단조적일 수는 있습니다.

내부에 비단조성 DAC를 포함하고 있는 축차 비교형(SAR) ADC는 일반적으로 코드 누락을 발생시키지만, ADC 자체는 단조성을 유지합니다. 그러나 변환 아키텍처의 특성에 따라 ADC 자체가 비단조적이 되는 것도 가능합니다. 그림 2.22는 비단조적이면서 동시에 코드 누락까지 있는 ADC의 전달 함수를 보여줍니다.
'회로설계 > ADC' 카테고리의 다른 글
| ADC - 샘플링 이론(2) Sample & Hold Amplifier (0) | 2026.06.18 |
|---|---|
| ADC - 샘플링 이론(1) ADC구조 (0) | 2026.06.17 |
| ADC - Bipolar Codes (0) | 2026.06.16 |
| ADC - Gray Code (0) | 2026.06.14 |
| ADC - Unipolar Codes (0) | 2026.06.14 |