지난번 글 ([초급] ADC의 SNR 에 대하여) 에 이어서 이번에는 ADC 의 SNDR (Signal-to-Noise Distortion Ratio)과 ENOB (Effective Number Of Bit)에 대하여 살펴보겠습니다. 먼저 정성적으로 살펴보겠습니다. 지난번 글에서 살펴본 것처럼, 이상적인 ADC의 Noise 는 Quantization Noise (혹은 Error) 만 존재하기 때문에 SNR 은 다음과 같이 계산된다고 했습니다. (꼭 외워두세요.)
SNR (dB) = 6.02*N + 1.76
자, 그렇다면 Quantization Noise 외에 다른 Noise (혹은 Error) 가 존재할 경우 ADC의 SNR 은 어떻게 될까요? 정확한 값은 모른다고 해도, 직관적으로 알 수 있는 것은 다른 Noise 가 추가되면 분명 SNR 은 작아진다는 거죠. 왜냐면 SNR 정의 자체가 입력신호 Power 를 Noise Power 로 나눈 값이기 때문에 다른 Noise 가 추가되면 SNR 식의 분모가 커지니까 SNR 은 작아집니다. 따라서, 여기서 직관적으로 또 하나 알 수 있는 것은, 위의 식 (SNR (dB) = 6.02*N + 1.76) 은 분명히 ADC가 가질 수 있는 최대 SNR 값이 된 다는 겁니다. 예를 들어서 10-bit ADC 가 가질 수 있는 최대 SNR 은 6.02*10 + 1.76 = 61.96 dB 입니다. 물리적으로 10-bit ADC 의 SNR은 61.96dB을 넘을 수 없습니다.
이제 ADC 에 다른 Noise 성분들을 추가하게 될 경우 어떻게 정량적으로 SNR 을 계산해야 할까요? 좀 복잡하기는 하지만 계산 할 수 있습니다. 자세한 계산 방법은 다음 글에서 설명을 하기로 하고, 이번 글에서는 SNDR 과 ENOB 에 초점을 두고 설명하겠습니다. ADC 내부 및 외부에 존재하는 Noise 들은 상당히 많습니다. 예를들면, Thermal noise, 부정합, Clock Jitter, 비선형성 등등 입니다. 이러한 Noise 들이 직접, 간접적으로 입력 아날로그 및 출력 디지탈 신호에 영향을 주게 되면서 신호에 왜곡 (Distortion) 이 일어나게 됩니다. 그리고 이 왜곡으로 ADC의 SNR 값이 줄어들게 되며 이때부터는 SNR 이라는 용어가 아닌, SNDR (Signal-Noise Distortion Ratio) 라는 용어를 사용합니다. 결국, SNDR 이 ADC 의 진정한 성능을 나타낸다고 할 수 있는 거죠. 그리고 SNDR 을 기준으로 ADC 의 실제 유효 비트 (ENOB)를 다시 구하게 됩니다. 위의 식, SNR = 6.02*N + 1.76을 역으로 이용하는 거죠. 즉, 위의 식을 아래와 같이 변경합니다. (SNR 을 SNDR 으로, N 을 ENOB 으로 변경합니다.)
SNDR (dB) = 6.02*ENOB + 1.76;
ENOB (bit) = (SNDR – 1.76) / 6.02
ENOB 식을 가만히 살펴보면, Noise 를 고려한 ADC 의 실제 해상도는 ADC 자체가 가지고 있는 해상도보다 작다는 겁니다. 당연한 거죠. SNDR 값이 SNR 값보다 항상 작으니까요.
예를 들어볼까요? 위에서 계산한 것처럼, Quantization Noise 만 고려했을 경우, 10-bit ADC의 SNR은 61.96 dB 였습니다. 그리고 이 값은 10-bit ADC가 가질 수 있는 최대 SNR 값이라고 했습니다. 이제, 여러 Noise 성분이 추가된 실제 10-bit ADC칩을 실험실에서 측정해 보았더니 SNDR이 40 dB 가 나왔다고 해 봅시다. 이렇게 되면 이 10-bit ADC의 ENOB은 (40-1.76)/6.02 = 6.35 (bit) 가 됩니다. 무슨 소리이고 하면, 10-bit 해상도로 ADC를 설계했지만 Noise 를 최소화 하지 못해서 ADC 의 실제 유효 해상도 (ENOB) 가 6.35 bit 밖에 나오지 않는다는 뜻 입니다. 한마디로 설계를 잘 하지 못한 겁니다.
결국, ADC 의 해상도를 이야기할 때, ADC 해상도 자체를 이야기 하는 것은 의미가 없습니다. 신호대비 모든 Noise 의 비율인 SNDR 값을 구해서 그것으로부터 계산되는 ENOB 이 진정한 ADC 의 해상도가 됩니다. ADC 관련 논문이나 사양서를 보면 SNDR 혹은 ENOB을 언급하는 이유 입니다.
그렇다면, 당연히 이런 질문이 나오겠죠? ‘설계할 때 SNDR 은 어떻게 구해야 하나요?’
SNDR을 구하는 방법은 3가지가 있습니다.
- 손으로 계산를 할 수 도 있고,
- 시뮬레이션을 이용하여 할 수 도 있으며,
- 실제 칩이 있다면 실험실에서 측정 할 수도 있습니다.
설계 초기 단계에서는 손으로 계산해서 Noise 에 대한 각 Noise 성분들의 할당량을 잡고 (이것을 보통 Noise Budgeting 이라고 합니다) 이렇게 Noise Budgeting이 끝나면 시뮬레이션을 통해서 회로를 튜팅하며 Noise Budget을 조정 합니다. 그리고 최종적으로 칩이 구워져 나오면 실험실에서 측정을 통해서 SNDR 을 구할 수 있습니다. 진정한 ADC 설계 엔지니어라면 위의 3가지 방법을 모두 할 수 있어야 하고, Noise Budget을 잘 잡을 수 있어야 합니다. 각 방법에 대한 설명은 다음 글에서 설명 하도록 하겠습니다.
글을 정리하겠습니다. SNDR 과 ENOB 은 진정한 의미의 ADC 의 성능지표 입니다. 왜냐면 ADC 의 Quantization Noise 뿐 만아니라 다른 Noise 성분을 고려한 양이기 때문입니다. 이들의 관계를 이해하고 위에서 유도한 ENOB 식이 어떻게 나왔는지를 이해해야 합니다. 그리고 식,
SNDR (dB) = 6.02 * ENOB + 1.76
은 꼭 외우세요.