DAC와 ADC – 디지털화에 대한 이해

Posted on

현실 세계에서 존재하는 물리량들은 아날로그적입니다. 아날로그라 함은 다시 말해 날 것 그대로의 자연적인 현상이라는 것입니다. 예를 들면 바람의 추운 정도, 열로 나타낼 수 있는 온도, 소리를 내는 음파와 같은 것입니다. 이 아날로그적인 자연 현상을 전자기기에서 의미있게 다루려면 전기적인 신호로 바꾸어야 합니다. 이 과정을 디지털화한다라고 설명합니다.

보통 센서라고 부르는 장비를 써서 아날로그적인 자연 현상을 전자기기에서 다룰 수 있는 데이터로 바꾸어야 하는데요. 여기에 DAC나 ADC가 관여합니다. DAC는 디지털에서 아날로그로 바꾸는 작업이고, ADC는 아날로그에서 디지털로 바꾸는 작업입니다.

흔히 말하는 이산 처리 과정인데요. 자연 현상을 측정한 데이터는 그래프로 보이면 연속적입니다. 주욱 이어지는 데이터의 흐름이죠. 그러나 전자기기는 처리할 수 있는 한도가 있기에 이를 변환하면 수치마다 딱딱 떨어져 있는 형태가 됩니다. 1부터 100까지로 나타난 아날로그 현상을 그래프로 그리면 특정 구간에서 보여지는 값들은 무한히 많은데요. 1부터 2까지에 1.00001, 1.00002, 1.00003, .. 1.000010, … 등으로 매우 촘촘합니다. 그러나 전자기기 내부 작동의 한도에서 이를 최대한 근사치로 변환해서 처리하는데 이를 가리켜 디지털화한다(digit-ization)이라고 하죠. 보통 정수형으로 변환한다고 설명합니다. 근사치지만, 고교시절 그래프를 그리듯이 대략적인 형태는 지속되기에 자연 상태의 데이터를 전자기기에서 다룰 수 있다고 간주하고 처리하는 것입니다.

전자기기의 작동은 기저에서 보면 두가지 작동으로 환원된다고 합니다. 전류가 인가되었음, 전류가 차단됨 이 두가지 상태입니다. 이를 0과 1 또는 1과 0 등으로 규정해서 데이터를 다루죠. 이 체제 내에서 정수도 표현하고 부동 소수도 표현합니다. 이 과정은 MCU의 비트수나 DAC, ADC의 샘플링 정확도에 의해 품질이 결정되는데요. MP3와 같이 44.1kHz, 128kbps 처럼 표시되는 것이 샘플링 정확도로, 소리를 그래프로 나타냈을때 근사치인 숫자로 변환시 얼마나 정밀한지 보는 척도입니다. 위에 말한 1부터 2까지 사이의 값들이 얼마나 촘촘한지를 의미합니다. 44.1kHz 128kbps보다 48kHz 128kbps가 음질이 더 좋다는 것도, 특정 구간의 그래프를 구성하는 숫자 샘플이 더 정밀하다는 것이구요. MCU 비트수와 DAC, ADC 회로의 성능도 결정 조건이 됩니다. 소프트웨어적인 API의 성능도 관건이구요.

이로부터 전자기기가 재현하는 온도 측정의 정확도, 소리 재생의 음질 등이 기술적으로 결정됩니다.

응용 분야는 영상 신호 처리, 음성 신호 처리, 온도 측정 등등으로 심화되죠.

최대한 전자기기가 알아볼 수 있는 근사치로 나타내면서도 원본 아날로그 값과 오차가 적게 하는 것이 디지털화 기술의 성패입니다. 이를 처리하는 것은 회로의 고도화와 처리 알고리즘의 고도화에 의지합니다.

알고 있는 사실을 요약적으로 해설해서 저보다 초보이신 분들께도 이해가 즉시되는 해설은 아니지만 ^^;; 일단 이해는 되실 것입니다. 위에 샘플된 각 수치들이 그래프로 그려져서 그래프 성분들의 복잡도가 단순화되는 것을 시각적으로 보이면 더 와닿는 해설이 되는데 그림판 열기가 싫어서 생략합니다.

라즈베리파이 피코로 구성하는 MP3 재생기도 DAC로 만듭니다. 이진화된 (디지털화된) MP3 음악파일을 읽어들여서 아날로그인 스피커 소리로 내보내는데 중요한 장치입니다.

일단 이정도로 생각난 것을 정리해두겠습니다. 요즘 생계지속용 공부하느라 공학공부는 재껴두었는데 그래도 틈틈히 라즈베리파이 피코 배우는 중입니다. 교재보다가 전에 배운 것이 생각나서 글로 썼는데 아주 대단한 글은 아니지만 일단은 개념 정리는 되었네요. 저를 위해 게시판도 따로 만들어주셔서 회원님들을 존경하고 있습니다. 열심히 하겠습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다