컴퓨터는 0과 1 같은 이산적인 자료들로 구성된다. 그러나 실세계에서는 0과 1사이에도 무한히 많은 수가 존재한다. 샘플링은 연속적인 시간에 대해 생성되는 데이터를 이산적인 시간에 대한 데이터로 변환하는 과정이다.
[그림 1] 아날로그 데이터에 대한 샘플링
컴퓨터에서는 연속적인 시간에 대한 데이터에 포함되어 있는 무한히 많은 정보를 모두 저장할 수 없기 때문에 위의 [그림 1]과 같이 0, 1, 2, ... 와 같은 일정 시간 간격으로 데이터를 읽는 샘플링을 수행한다.
샘플링은 연속적인 시간에 대해 생성되는 데이터를 이산적인 시간에 대한 데이터로 변환하는 과정이다. 실세계의 아날로그 데이터는 시간뿐만 아니라, 데이터가 표현하는 값에 대해서도 연속적인 성질을 갖는다.
[그림 2] 아날로그 데이터에 대한 양자화
위의 [그림 2]는 연속적인 값을 갖는 아날로그 데이터를 양자화하여 이산적인 분포를 갖는 값들로 데이터를 재구성하는 양자화 과정을 보여준다. [그림 2]의 양자화 과정에서는 연속적인 값을 갖는 아날로그 데이터를 { -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 5 }으로 구성되는 이산적인 값으로 변환한다. 총 11개의 값을 표현하기 위해서 컴퓨터는 각각의 값에 4비트를 할당해야 한다.
신호 처리에서 비트율이라는 것은 어떠한 아날로그 데이터에 대해 샘플링 및 양자화를 수행할 때 생성되는 단위 시간당 비트를 의미한다. 비트율은 아래의 [식 1]과 같이 계산된다.
예를 들어, 0.2초마다 아날로그 데이터의 값을 읽고, 읽은 값마다 4비트를 할당하여 값을 표현한다면, 비트율은 20bit/s가 된다.
부호화는 샘플링 및 양자화된 데이터를 특정 비트 스트림으로 변환하는 과정이다.
[그림 3] 부호화의 한 예시
예를 들어, 위의 [그림 3]과 같은 부호화를 통해 4비트로 표현되는 0001이라는 값은 00으로 표현되며, 0100은 10으로 표현된다. 즉, 위의 예시에서는 부호화를 통해 4비트로 양자화된 데이터를 2비트로 줄이는 것이 가능하다.
'IT' 카테고리의 다른 글
CORD-19: 인공지능 기반의 COVID-19 연구 (0) | 2020.06.08 |
---|---|
머신 러닝 기반의 Scientific Application을 위한 파이썬 라이브러리 (0) | 2020.05.21 |
정보이론과 엔트로피 (0) | 2016.10.20 |
Java에서 문자열을 XML 파일로 변환하기 (0) | 2016.02.19 |
공공데이터를 이용한 어플리케이션 개발 (0) | 2016.02.17 |