본문 바로가기

Hacked Brain/embeddedland.net

고분해능 ADC성능을 높이는 노하우

출처 :
Texas Instrument Korea
고분해능 ADC 성능을 높이는 노하우
 
로버트 슈레이버(Robert Schreiber)
 
텍사스인스트루먼트
 
 

ADC(아날로그 디지털 컨버터)에서 최대한 성능을 끌어낼 수 있는 방법이 있을까? 디자인과 보드 레이아웃을 잘하는 것 이외에도 성능을 향상시킬 수 있는 기술이 있다. 이런 기술을 위해서는 ADC 오차의 원인 및 타입을 이해할 필요가 있다. 몇 가지 기술을 이용해 ADC의 성능을 스펙 이상으로 끌어올릴 수 있다.

 

이 기사를 통해 ADC의 일반적인 오차 원인을 설명하고 이런 오류를 보정하기 위한 방법을 찾아보자. 어떤 오차 보정 방법은 이해하기도, 구현하기도 쉽지만 그렇지 않은 것도 있다. 이를 적절히 활용한다면 전체 시스템 성능을 향상시킬 수 있다.

 

이상적인 ADC를 가정할 때 이상적인 특성을 얻는데 어떤 오차 타입이 제한이 되는지 살펴보자. 아주 단순화시키면 이상적인 ADC는 ‘실제로 이상적인(virtually ideal)’ 데이터를 제공할 것이다. ‘실제로 이상적’이란 표현은 이상적인 ADC일지라도 양자화 오차가 있기 때문이다. 우선 ADC 성능을 향상시키기 위해 시중의 최고 분해능 ADC인 24비트 ADC를 살펴보자.

 

이상적인 24비트 ADC는 24비트의 사용가능한 데이터를 제공할 것이다. 이 ADC는 주어진 입력에 대해 양자화(quantization) 한계치 내에서 반복해 동일한 코드나 변환 결과를 낼 것이다. 예를 들어 5.0V 입력 범위 내에서 2.5V의 고정 아날로그 신호를 이상적인 24비트 ADC에 적용시키면 ADC에서 얻을 수 있는 유일한 코드는 8,388,608(half-scale)이다. 만약 이상적이지 못한 컨버터에 같은 전압을 가한다면 출력 코드는 하프 스케일에서 고정되지 않을 것이며 이는 불안정할 수도 있는 출력을 제공할 것이다. 이는 컨버터가 이상적이지 못한 결과다. ADC의 비이상성에는 양자화 오차, 옵셋, 이득 오차 및 비선형성 등의 특징을 포함한다. 여기에 잡음과 드리프트도 측정 오차에 영향을 미친다.

 

양자화 오차는 이상적인 ADC에도 발생한다. 양자화 오차는 아날로그 입력 신호의 디지털화와 관련된 오차이다. 예를 들어 5V 입력 범위를 지닌 모든 코드는 298nV(5V/2^24)의 분해능을 낸다. 만약 0V의 입력 전압에서 단계적으로 전압을 상승시키면 코드는 149nV 또는 1/2LSB에서 첫번째 코드 변환이 될 때까지 0이 될 것이다. 따라서 이상적인 ADC라도 +/-½LSB의 양자화 오차가 있다. 이는 0V와 149nV사이의 아날로그 입력 신호는 무한대이지만 디지털 코드는 유한값(0이 이상적)을 지닐 수 있기 때문이다.

 

옵셋 오차과 이득 오차는 종종 함께 나타난다. 옵셋 오차는 0V 차동 입력 전압이 ADC에 가해질 때 이상적인 코드와 실제 코드의 편차이다. 이득 오차는 음(-)의 풀스케일 입력에서 양(+)의 풀스케일 입력까지의 이상적인 기울기와 실제 기울기 사이의 편차이다. 옵셋과 이득 오차는 ADC의 가장 중요한 오차원(source of error)이다.

 

비선형성은 INL(Integral Non-Linearity)과 DNL(Differential Non-Linearity)을 포함한다. INL은 출력 코드가 이상적인 출력과 얼마나 다른지를 나타내며 옵셋과 이득 오차를 보정시킨다. INL은 실제 끝점과 이상적인 선과의 최대 오차로써 측정된다. DNL은 하나의 디지털 코드로 변환되는 아날로그 입력범위가 일정하지 않아서 생기는 오차이다. 아날로그 입력 전압 증가에 대해서 코드는 증가하며 변화하거나 감소하지는 않을 것이다. 아날로그 입력의 증가에 따라 코드는 같거나 증가한다. 이런 경우라면 ADC는 모노토닉(monotonic)이다. ADC가 출력 코드값을 넘으면 손실 코드(missing code)로, 코드 출력값이 감소하면 비모노토닉(non-monotonic)으로 정의된다. 히스토그램을 보면 손실 코드가 있는지 그리고 상대적 코드폭은 얼마인지를 알 수 있다. 손실 코드가 없는 정규 분포라면 이는 균일한 코드 폭임을 의미한다.

 

잡음은 옵셋, 이득 및 선형 오차와 독립적으로 출력 코드를 시간에 따라 변화시키는 것을 말한다. ADC에서 다른 모든 오차원에 대해 완벽히 보정한다고 해도 잡음이 출력 코드를 변화시킨다는 것을 알게 될 것이다.

 

드리프트는 주어진 입력에 대한 시간이나 온도에 대한 출력 코드의 이동(shift)을 의미한다. 만약 고정 아날로그 전압과 열을 가하거나 없앤다면 출력 코드는 온도에 따라 이동할 것이다. 칩의 특성에 따라 드리프트는 샘플 모집단과 유사한 방향으로 진행하거나 무작위로 나타날 것이다.

 

오차원 모두를 시각화하기는 어렵지만 칩레벨 또는 데이터 처리 기법을 통해 보정될 수 있다. 이들 오차원을 어떻게 보정하는지 기술하기 전에 ADC 구조를 먼저 보자. 델타시그마 구조는 16비트 이상의 분해능용으로 광범위하게 사용되며 고분해능 디지털 출력을 얻기 위해 오버샘플링 기법을 이용한다. 델타시그마방식 ADC의 블록도가 그림 1에 표시되어 있다. 이 ADC의 주요 부품은 변조기와 필터이다. 변조기는 차동 오차를 0으로 수렴시키는 피드백 루프로서 작용한다. 이는 피드백 DAC의 신호에 대한 아날로그 입력 신호의 차를 측정함으로써 수행된다. 이는 델타시그마에서 델타항이다. 이 차이나 신호 오차는 다음단에 통합되거나 합해진다. 이는 델타시그마에서 시그마항이다. 합해진 오차항은 레퍼런스 신호와 비교되고 비교기의 출력은 세트된다. 만약 오차항이 양수면 피드백 DAC출력은 오차항을 줄이기 위해 하이(high)로 구동된다. 오차항이 음수면 피드백 DAC 출력은 로우(low)로 구동되어 오차항을 줄인다. 비교기의 0들과 1들의 밀도는 아날로그 입력 전압 전압에 비례한다.

 
 

이 구조는 고분해능 애플리케이션에 유용하다. 오차원들이 이 구조에서 어떻게 나타나는지 살펴보자.

 

양자화 오차는 잡음 성형(noise-shaping) 기법을 사용함으로써 델타시그마 구조에서 최소화될 수 있다. 잡음 성형 기법은 양자화 잡음을 줄이거나 제거할 수는 없지만 관심 있는 주파수(저주파수)에서 보다 높은 주파수로 잡음을 밀어냄으로써 억제시킬 뿐이다. 따라서 양자화 잡음에 관한 한 델타시그마 구조는 양자화 잡음의 영향을 최소화시킬 수 있도록 고안되어 있다.

 

옵셋과 이득 오차는 다른 데이터 컨버터와 마찬가지로 델타시그마 구조에서도 나타난다. 또한 다른 데이터 컨버터와 마찬가지로 이들은 단순 보정에 의해 최소화될 수 있다. 옵셋 과 이득 보정은 매우 단순하다. 옵셋 계산을 하기 위해서는 0V 또는 소신호를 적용시켜 출력 코드를 읽는다. 만약 이 값이 양이라면 컨버터는 양의 옵셋 오차를 지니며, 옵셋 값은 이 값에서 빼진다. 만약 이 값이 음이라면, 컨버터는 음의 옵셋 오차를 지니며, 옵셋 값은 이 값에 더해진다.

 

이득 보정은 ADC에 풀스케일 또는 풀스케일 근방의 신호를 가하면 된다. 옵셋 보정은 이득 보정 전에 행해진다. 만약 ADC의 모든 출력 코드를 플롯(plot)한다면 이득 오차는 이상적인 출력 코드와 기울기의 편차임을 분명하게 보여준다. 이득 보정은 단순히 기울기를 이동(시프트)시키는 것이다.

 

INL은 다른 데이터 컨버터와 마찬가지로 델타시그마 구조에서 나타난다. 그렇지만 델타 시그마 구조는 데이터를 후위 처리(post-processing)함으로써 보상될 수 있다. 이론상 INL은 코드별로 완벽하게 보정될 수 있지만 이는 비실용적이기 때문에 INL에 대한 보정을 위해 몇 개의 데이터 포인트만 선택하게 된다. 이는 선형화 테이블을 통해 수행된다.

 

DNL은 보통 델타시그마 구조에서 문제가 되지 않는다. 본래 피드백 루프에서 1비트 DAC출력은 선형이며 이 구조는 가공(trimming) 없이도 탁월한 DNL 성능을 제공한다.

 

잡음은 어떤 전기적 칩에서 발생되며 제거할 수는 없지만 오차원을 실제로 줄일 수 있는 기법을 다룰 수 있다.

 

온도 드리프트는 어떤 전기적 칩에서 발생되며 제거할 수는 없지만 드리프트가 평가 가능하다면 선형화 테이블을 통해 보정이 가능하다. 이는 온도 감시를 통해 수행될 수 있다. 게다가 드리프트가 시스템의 성능을 얼마나 제한하는지를 꽤 정확히 결정할 수 있다.

 

이를 요약하면 양자화 오차는 델타시그마 구조에서 잡음 성형 기술을 통해 관리될 수 있으며, 옵셋 및 이득 오차는 보정을 통해 최소화될 수 있고, INL은 선형화를 통해 개선될 수 있다. 또한 DNL은 거의 존재하지 않아 잡음은 최소화될 수 있으며, 드리프트는 그 영향에 대해 보정되거나 평가될 수 있다.

 

잡음 감축은 옵셋 및 이득 보정보다 덜 복잡하다. 전기 회로에는 많은 잡음원들, 즉 열, 1/f(flicker: 깜빡임), 버스트(burst) 등이 있다. 잡음 감축의 견지에서 잡음의 타입은 매우 중요하다. 열 잡음은 본질상 가우시안(gaussian) 타입이기 때문에 특정 기법을 이용해 그 영향을 최소화시킬 수 있다. 1/f과 버스트 잡음은 본질상 가우시안 타입이 아니어서 잡음원으로 영향을 줄일 수는 없을 것이다.

 

잡음을 어떻게 예측하는지를 살펴보기 전에 잡음이 분해능과 어떤 관계가 있는지 알아보자. 잡음과 분해능은 함께 움직이기 때문에 하나는 다른 하나를 규정짓는다. 잡음은 예상 코드와 출력 코드의 랜덤 오차로 정의된다. 일반적으로 잡음은 전압, 코드, 카운트(계수), 또는 PPM으로 정의되며 분해능은 비트 또는 dB로 정의된다. 이를 설명하기 위해 이상적인 24비트 ADC의 아날로그 입력 범위가 5V라고 하자. 분명히 분해능은 이상적이기 때문에 24비트일 것이다. dB로 이를 표현하면 6.02*N dB(여기서 N은 비트수) 또는 144.5dB이다. 이 정의는 보통 신호대잡음비로 불린다. 이 잡음을 코드로 표현하면 1코드가 되고, 카운트로 표현하면 16,777,216개가 되며, 전압으로 표현하면 298((1/16,777,216) * 5V)nV가 되고, PPM으로 표현하면 0.06(1/16,777,216) PPM이 된다.

 

여기서 분해능은 비이상 컨버터에서 정의될 수 있는지에 대한 의문이 든다. 유효 비트수(ENOB)나 유효 분해능은 칩의 잡음 한계를 고려한 ADC의 가용 분해능으로 정의되는데 사용된다. 분해능과 ENOB의 차이점을 이해하기 위해서 이상적인 12비트 ADC를 살펴보자. 이상적인 12비트 ADC는 4,096개의 코드를 지닐 것이다. 이를 분해능으로 환산하면 244 PPM이다. 만약 아날로그를 디지털 값으로 변환할 때 임의로 또다른 12비트를 컨버터에 추가하면 이 ADC는 24비트 분해능이라고 말할 수 있다. 실제로는 12비트만이 유용할 것이다. 이 예제는 생각처럼 극단적이지 않을 것이다. 예를 들어 시중에 24비트 ADC로 판매되는 ADC가 있다고 할 때, 약 25Hz의 데이터출력 속도를 지닌 이 ADC의 잡음은 약 0.4PPM으로 그 자체로는 상당한 성능이다. 그렇지만 0.4PPM의 잡음은 약 21.3비트의 유효 분해능으로 환산된다. 24비트 분해능은 무엇인가? 더욱이 샘플링 레이트를 증가시키면 잡음은 600PPM이상이 되고 이는 12비트 ADC만도 못할 정도이다!

 

정말 24비트 성능을 얻는 것이 가능할까? 답은 ‘가능하다’지만 먼저 해야할 작업이 있다. 다행히도 ADC의 잡음을 줄이는 몇 가지 기법이 있다. 여기에 시스템에 간섭현상이 있어도 이와 유사한 기술로 줄이거나 제거할 수 있다. 본질적으로 ADC의 실제 분해능 중 여분의 비트를 얻을 수 있어 전체 시스템 성능을 보다 향상시킬 수 있다. 이는 시너지 효과를 발생시킬 것이다.

 

성능을 끌어올리기 위해서는 ADC 성능이 어떤지 알아야 한다. ADC의 성능이 어떤지 결정하는데 사용되는 기술이 히스토그램 분석법이다. 히스토그램 분석법은 ADC의 DNL, DC옵셋과 잡음 성능이 어떤지를 명확히 알려준다. 이 히스토그램은 출력 코드의 빈도(occurrence)에 대한 출력 코드를 플롯한다. 히스토그램으로부터 코드 폭에 대한 정보 또는 빈(bin) 크기가 평가(DNL)될 수 있다. 입력을 그라운드와 묶음으로써 DC 옵셋의 정보가 평가될 수 있다. 히스토그램의 분포를 봄으로써 잡음에 대한 정보를 평가할 수 있다. 만약 ADC가 좋은 DNL 특성을 지니고 있으며 백색 잡음이라면 히스토그램은 가우시안 또는 정규 분포와 유사할 것이다. 만약 코드폭이 좁다면 코드의 빈도가 낮게 되고 만약 코드폭이 넓다면 그 반대가 될 것이다. 코드 빈도가 전혀 없다면 손실 코드를 나타낸다. 히스토그램 분석법은 매우 강력한 툴이다. 이를 통해 DNL 성능과 잡음 특성을 바로 분별할 수 있을 것이다.

 

만약 히스토그램이 좋은 DNL 성능과 정규 분포를 보인다면 그 잡음은 백색이라고 추정할 수 있다. 여기서는 델타시그마 ADC를 다루고 있기 때문에 DNL은 정의에 따라 적절하다. ADS1252 델타시그마 ADC의 데이터로 얻어진 32,768개의 샘플 히스토그램을 보면 DNL 성능은 거의 이상적이며 출력 코드의 분포는 거의 정규 분포와 흡사하다는 것을 알 수 있다. 따라서 이 ADC의 잡음을 백색이라고 추정할 수 있다. 이는 잡음을 예측하는데 통계적인 방법을 사용할 수 있다는 사실을 의미한다.

 

전술했듯이 ADC로 얻은 데이터가 일반적인 행동 유형을 지니고 있다면 이 데이터를 일반 패턴과 일치시킬 수 있다. 이 일반 패턴은 보통 확률 분포로 불린다. 데이터가 백색 잡음 행동을 보여 이 잡음을 가우시안 확률 밀도 함수(PDF)로 예측할 수 있다. PDF는 아래 식처럼 신호가 특정 값을 초과하는지에 대한 확률을 보여준다.

 
 

이 식에서 x가 평균에서 이동함에 따라 입력 신호가 주어진 값을 초과할 때 확률은 감소한다. 이 식을 이용해 신호가 주어진 시간 동안 어떤 범위 내로 떨어질 지에 대한 확률을 실제로 계산할 수 있다.

 

그러므로 데이터에 대한 모델로써 가우시안 확률밀도함수를 이용할 수 있다. 그 다음 의문은 이 모델이 얼마나 좋은가이다. 이 질문은 2가지 통계 이론을 통해 답할 수 있다. 첫번째는 대수의 법칙으로써 만약 모집단이 실제 평균(u)이고 x가 n명의 모집단의 랜덤 샘플 평균이라고 할 때 n이 증가할수록 샘플 평균(x)는 실제 평균에 점점 가까워진다. 여기서는 백색 잡음을 다루기 때문에 샘플 평균은 샘플 크기가 충분히 크다면 실제 평균과 거의 일치해야 한다. 따라서 실제 평균(u)과 연관해 계산된 샘플 평균을 확인할 수 있다.

 

표준 편차 계산이 얼마나 정확한지 어떻게 알 수 있을까? 이 질문에 답하기 위해 극한 이론을 도입할 수 있다. 이 이론은 만약 모집단이 실제 평균(u)와 표준 편차(s)를 지니고 있다면 모집단의 n 중 가능한 샘플 평균의 확률분포는 n이 증가함에 따라 평균(u)과 표준 편차(s/root n)를 지닌 정규 분포에 접근한다는 것이다. 본질적으로 샘플을 더 많이 추출할수록 표준 편차를 줄일 수 있다.

 

어떤 극한 이론에 의존한다면 보다 많은 샘플을 추출해서 표준편차를 무한정 작게 할 수 있다. 현실적으로 표준 편차를 향상시키기 위한 샘플 수는 한계가 있다. 이 숫자 이상의 샘플을 취해도 별 이득이 없으며 표준 편차는 실제로 증가시킬 수도 있다. 샘플 크기 내에서 극한 이론은 분산에 기반을 둔다. 분산 이론은 일반적으로 신호원의 주파수 안정도를 예측하는데 사용되지만 샘플 시스템에도 적용된다. 즉 샘플링은 표준 편차를 줄이면서 시스템은 안정화시킨다. 안정도는 랜덤 사건 또는 시스템 내의 드리프트 등에 영향을 받는다.

 

백색 잡음이 주도하는 시스템에서 평균의 변화량(variance)은 표준 편차로 측정된다. 이런 타입의 시스템에서 분산은 표준편차를 예측하는데 사용될 수 있다. 분산을 이용해 샘플링이 시스템에 어떤 영향을 미치는지 예측할 수 있다. 본질적으로 분산 분석이 작용하는 방식은 매우 큰 샘플수를 모으고 샘플수를 증가시킴에 따라 분산이 어떻게 되는지 분석하는 것이다. 분산이 최소일 때 샘플의 수는 이 시스템을 위한 최적의 샘플수이다. 이는 매우 귀중한 툴이다. 이 툴은 샘플링 기법을 신속하고 쉽게 최적화시킴으로써 최대 시스템 성능을 얻을 수 있게 해준다.

 

이 이론을 실제 24비트 ADC에 적용해보자. 이전에 언급했던 24비트 ADC는 25Hz의 샘플링 속도에서 0.4PPM의 잡음을 지니고 있었다. PPM을 비트로 환산하여 희망하는 성능을 얻기 위해 얼마나 ADC 샘플이 필요한지 예측할 수 있다. PPM과 비트 상호간 변환식은 다음과 같다.

 
 

24비트 분해능을 얻기 위해 이 식을 이용하면 잡음을 0.06PPM으로 줄일 수 있다. 이는 잡음을 거의 7의 계수까지 감소시켜야 함을 의미한다. 중심극한정리에 따라 약 49개의 샘플을 취하면 이 정도 잡음 성능을 얻을 수 있다. 불행히도 이는 샘플링 속도를 약 0.4Hz로 감소시키고, 신호 대역폭(-3dB 주파수)를 약 0.1Hz로 줄인다. 이 샘플링 속도는 대부분의 애플리케이션에서 너무 느리며 이 신호대역폭은 성능에 악영향을 미치는데 그 이유는 입력 신호의 약간의 변화에서도 큰 정정시간을 낼 수 있기 때문이다. 24비트 ADC를 보다 빠른 샘플링 속도로 동작시킬 수 있지만 유효 분해능은 샘플링 이득보다 더 빨리 감소한다. 따라서 이는 좋은 방법이 아니다.

 

다행히도 이 문제를 해결하는 방법이 있다. ADS1252는 24비트 델타시그마 방식 ADC로 40kHz의 샘플링 속도를 낸다. 유효 분해능이 40kHz에서 충분히 크다면 충분한 분해능을 확보해서 데이터를 추출할 수 있다. ADS1252에 대한 규격을 살펴보면 41,667의 데이터 속도에서 2.5PPM의 잡음을 지니고 있다. 중심극한정리에 따라 0.06PPM 잡음을 얻기 위해 약 1,736개의 샘플을 취해야 한다. 이 때에도 24Hz의 데이터 속도를 낸다. 마치 솔루션을 보유하고 있는 것처럼 보일 수 있다. 게다가 ADC 샘플링 속도를 늘려 샘플을 평균하기 때문에 전체 필터 롤오프(roll off) 속도는 느려진다. 이는 더 큰 신호 대역폭을 얻을 수 있다는 것을 의미한다. 예를 들어 이전에 다루었던 sinc3 필터를 탑재한 25Hz 24비트 ADC의 출력은 약 6Hz의 대역폭을 갖추고 있다. 평균 데이터를 이용한 ADS1252의 신호 대역폭은 약 10Hz이기 때문에 실제로 신호 대역폭을 증가시켰다.

 

이 솔루션이 제대로 동작하는지 알기 위해 수만개의 샘플을 수집하고 평균 및 분산 기술을 이용해 정말 이점이 있는지를 알아보자. 표 1, 2는 여러 이론들의 잡음과 분해능 값을 비교하고 있다.

 
 
 

이 표로부터 얻어진 데이터는 흥미로운 결과를 보여준다. 분산 분석은 실험 데이터와 연관되어 있지만 실험 데이터와 중심극한정리의 결과치는 약간의 차이가 있다. 이는 시스템의 간섭 때문일 것이다. 분산 분석은 12,000개의 샘플 이상을 취하면 거의 이점이 없다는 것을 보여준다. 12,000개 이상에서의 평균은 드리프트가 일으키는 시스템 안정도 문제 때문에 잡음 성능이 떨어진다. 이런 기법을 활용함으로써 시스템의 성능을 최적화시킬 수 있다.