Team Mission 1week : 컴퓨터는 아날로그 신호인 소리를 어떻게 디지털로 저장할까? - GeorgeGo27/CS50-Boostcourse GitHub Wiki

소리는 진동이다. /정확히는 '공기를 통한 에너지의 전달' 이라고 할 수 있다./

즉, 일정한 시간에 몇 번에 떨렸는 지에 따라 소리의 크기가 결정된다.

소리는 우리가 일상에서 보고 느끼는 자연에서 발생한 아날로그 신호이다.

그렇다면, 0과 1의 디지털 신호 밖에 이해하지 못하는 컴퓨터는 어떻게 아날로그 신호를 이해하게 되었을까?

아니, 어떻게 인간들은 컴퓨터에게 아날로그 신호를 이해 시켰을까?! 가 맞겠다.

지금부터, 아날로그 신호를 디지털 신호로 변환해 컴퓨터에게 이해시키는(!) 과정을 살펴보도록 하겠다.

변환과정은 크게 3가지로 나눌 수 있다.

ㄱ. 표본화

ㄴ. 양자화

ㄷ. 부호화

ㄱ. 표본화: Sampling

말 그대로 아날로그 신호의 표본을 추출하는 과정이다.

아날로그 신호는 ‘연속성’을 갖고 있는데, 이 연속적인 신호를 모두 추출하는 것은 불가능하다!! (인간 승??) 하지만, 인간이 인지하지 못할 정도로 촘촘하게 추출하는 것이 현대의 기술로 가능해졌다…

표본화는 아날로그 형태에서 '연속적'인 신호를 컴퓨터가 이해하도록 하기 위해서 특정 시간을 측정 주기로 정해 해당 주기마다 전압을 측정해 샘플을 만드는 과정을 의미하는데, 이 때 전압을 측정하는 주기를 샘플 레이트라고 한다.

샘플 레이트가 높으면 높을수록 촘촘하게 측정한다는 뜻이므로; 음질,즉 소리의 해상도가 좋아진다.

ㄴ. 양자화: Quantization

표본화에서 말한 샘플 레이트에 따라 측정한 전압값 역시 연속적인 물리량이다. 따라서, 컴퓨터는 이번에도 이해하지 못한다.. 그래서 이번에도 컴퓨터가 이해할 수 있게 가장 근사(近似)한 값으로 변환시켜준다.

이 과정을 양자화라고 한다. 어벤져스에서 나오는 그 양자역학의 그 양자가 맞다.. 이로써 우리는 토니 스타크와 조금 더 가까워 졌다. ( I love you 3000……)

양자화는 표현 비트에 따라 그 값이 달라질 수있는데, 8 bit로 양자화를 하면 값을 256단계(0255)로 처리할 수 있으며, 16비트로 양자화를 진행하면 65,536(065,535)단계로 값을 보다 세밀하게 처리할 수 있습니다. 이 때의 표현 비트를 비트레이트라고 한다.

ㄷ. 부호화

마지막은 간단하다.

표본화와 양자화를 거친 값을 이진수로 변환하는 과정이다.

/* 추가 공부 자료 */

1.1

<사람이 소리 를 듣는 과정과 아날로그 신호가 디지털 신호로 변환되는 과정의 비교를 통한 분석 >

사람이 소리를 인식할때 다음과 같은 과정을 거친다.

  1. 소리발생
  2. 매질진동(공기/물)
  3. 고막진동
  4. 달팽이관에서 전기신호로 변환

기본적으로 음성신호는 아날로그, 즉, 연속신호이기 때문에 디지털 신호로 변환하는 과정이 필요하다. 이때 전기신호로 변환되기까지 사람과 유사한 과정을 거친다

  1. 소리발생
  2. 매질진동(공기/물)
  3. 마이크내 진동판 진동
  4. 마이크의 진동을 자석과 코일의 전자기유도를 이용해 전기신호로 변환

이때 만들어진 전기신호는 아직 연속신호이기 때문에 디지털 신호로 저장하기 위해서 별도의 과정이 필요하다. 총 3가지 과정을 거치게 되는데, 각각 다음과 같다.

  1. 표본화(sampling)
  2. 양자화(Quantization)
  3. 부호화(Encoding)

표본화는 이산신호로 변환하기 위해 "특정 주기"마다 전압을 측정하게되는데 이때 "특정주기"를 샘플레이트(sample rate)라고 하며, 샘플레이트가 높을 수록 자주 측정하기 때문에 음질이 더 좋아진다. 통상적으로 CD의 경우 44.1KHz, TV나 라디오 방송이 48KHz의 샘플레이트를 가진다.

양자화는 표본화된 신호를 디지털로 변환하기 위해 기준을 가지고 값을 일종의 칸(bin)으로 나누게되는데, 이때 나누는 기준값을 양자화 레벨(Quantization level)이라고하며, 이로인한 정보 손실을 양자화 에러(Quantization error)라고 한다. 이때 전체 해상도를 몇 비트로 하느냐에 따라 해상도가 결정되며, 이를 비트레이트(Bit Rate)라고 한다.

부호화는 양자화로 나누어진 값을 마지막으로 컴퓨터에 저장하기 위해 이진수의 값으로 매핑하는 것이다.

1.2

<목소리가 마이크를 통해 전기신호로 변환되는 과정>

마이크 내에 진동판이 목소리 진동에 따라 움직이고 자석을 감싼 코일이 자극을 받으며, 소리의 진동수와 같은 전기 신호를 생산하는 원리라고 한다.

전기신호는 단순 전기신호일뿐이며, 디지털화를 거쳐야 한다. 그래서 표본화(샘플링)과 양자화 그리고 부호화의 단계가 필요한 것이다.

결론은 아날로그 소리는 마이크와 같은 입력 기기를 통해 전기신호로 변환되고, 다시 표본화 - 양자화 - 부호화의 단계를 거쳐 디지털 신호로 저장하게 된다고 정리할 수 있겠다.

1.3

<스크래치를 통한 샘플링 게임>

https://scratch.mit.edu/projects/472783859