Skip to content

디지털 오디오 개념

Songwonseok edited this page Dec 13, 2020 · 3 revisions

디지털 오디오 개념

사운드의 개념

  • 사운드는 음원에서 물체가 진동하여 공기라는 매체의 압력을 변화시킴으로써 생성되고 , 이 변화는 파형(waveform)의 형태로 우리 귀에 전달
  • 사운드를 처리하는 것은 이러한 파형을 가공, 편집하는 것을 의미

사운드를 구성하는 3요소

  • 주파수(Frequency) : 음의 높낮이

    • 소리의 높낮이를 결정
      • 주파수가 높으면 고음, 낮으면 저음
    • 사람이 낼 수 있는 주파수대는 약 100Hz ~ 6kHz
    • 사람의 가청 주파수는 약 20Hz ~ 20kHz
    • 사람의 청각은 1kHz ~ 6kHz에 가장 민감
    • 사람의 가청 주파수대를 오디오(Audio)라고 구분하여, 사운드를 처리하는 것이 오디오를 처리하는 것과 같다고 보는 생각도 있음.
  • 진폭(Amplitude) : 음의 크기

    • 파형의 기준선에서 최고점까지의 거리를 의미하며 소리의 크기와 관련
      • 진폭의 크기와 소리는 비례
      • 소리의 크기는 음압 변화의 비율로 표현
    • 사람의 귀는 소리의 크기의 변화보다 변화의 비율(Logarithm)에 영향을 받음
    • 소리의 크기를 표현 할 때에는 소리의 크기에 로그 값을 취한 Decibel(dB)로 표현하고, 사용 시에는 Decibel값을 10배한 Decibel을 사용
      • 기준 음압을 P0 음압을 P라고 하면 음압 레벨(dB) = 10 * 2 log (P/P0)
    • 인간이 가장 편하게 들을 수 있는 소리의 범위는 0dB ~ 90dB
  • 음색(Tone color) : 음의 특성

    • 음의 높이와 크기가 같아도 악기마다 고유한 특징이 있는데 이를 음색이라고 함

디지털 사운드로의 변환

  • 파동(wave)은 원래 아날로그 형태인데 컴퓨터에서 처리하기 위해서는 디지털 형태로 변환되어야 함
  • 디지털 변환 과정은 표본화(Sampling), 양자화(Quantizing), 부호화(Coding) 과정을 거치게 됨
  • 어떤 값들을 사용하냐에 따라서 디지털로 변경된 소리의 해상도, 즉 음질이 결정된다. 이때 나오는 단어가 바로 **샘플 레이트(Sample Rate)비트 레이트(Bit Rate)**이다.
  • 소리는 가로 축은 시간(Time), 세로 축은 진폭(Amplitude)으로 정의된 공간에 그려진 2차원의 진동 주파수 데이터이다. 이때 샘플 레이트는 가로 축의 해상도, 비트 레이트는 세로 축의 해상도를 의미하는 것이다. 이 값들은 아날로그를 디지털로 변경하는 첫번째 단계인 표본화(Sampling)에서 활용된다.

표본화(Sampling)

  • 아날로그 파형을 디지털 형태로 변화하기 위해 표본을 취하는 것을 의미

  • 표본화율(Sampling Rate) : 1초 동안에 취한 표본화수(디지털화 하는 횟수)를 말하며, 단위는 주파수와 같은 Hz를 사용

  • 표본화율이 높을 수록 원음에 가깝게 디지털화 되지만 데이터양이 증가

  • 주파수에서의 Hz는 1초에 주기가 몇 번 있는 가를 의미하고, 표본화에서의 Hz는 1초에 몇 번 표본화 되는가를 의미

  • 당연히 샘플 레이트가 높을 수록 소리의 해상도, 즉 음질이 더 좋을 수 밖에 없다. 특히 높은 주파수를 가진 소리, 즉 고음의 해상도가 확연하게 좋아진다.

  • 보통 CD의 음질이 44.1kHz, TV나 라디오 방송이 48kHz의 샘플 레이트를 가지는데, 이는 약 1초에 44,100번, 48,000번 샘플을 측정한다는 것이다. 저 샘플 레이트는 어떤 기준으로 정하는 걸까?

    high low sampling

나이퀴스트 이론(Nyquist theorem)

  • 표본화 시 원음을 그대로 반영하기 위해서는 원음이 가지는 최고 주파수의 2배 이상으로 표본화해야 한다.
  • 음악 CD인 경우 표본화 율이 44.1kHz이고 여기서 재생할 수 있는 최고 주파수는 22.05KHz임(사람의 귀는 20KHz 이상의 사운드는 감지할 수 없음)
  • 오디오 신호의 한 사이클을 제대로 측정하려면 + 방향의 맨 위의 꼭지점 하나- 방향의 맨 밑의 꼭지점 하나를 모두 측정해야하기 때문에 최소 2번은 측정을 해야한다. 그래서 인간이 들을 수 있는 가장 높은 소리인 초당 20,000번의 떨림20kHz을 제대로 측정하려면 컴퓨터는 최소한 1초에 20,000 * 2 = 40,000번 측정을 해야 하는 것이다.

나이퀴스트 이론의 함정

  • 나이퀴스트 이론에 따르면 인간의 가청주파수는 20,000hz니까 딱 40,000번만 측정하면 인간이 들을 수 있는 소리는 다 녹음할 수 있는데 왜 44,100번이나 48,000번까지 측정하는 걸까?

  • 자연에는 우리가 듣지 못하는 훨씬 높은 소리들도 존재한다. 단지 우리가 20kHz까지밖에 못 들을 뿐이다. 뭐 박쥐나 돌고래 같은 친구들은 훨씬 고음역대의 소리를 내지 않는가?

  • 근데 이 소리가 40kHz의 샘플 레이트를 준비한 그릇에 들어오면 어떻게 될까? 컴퓨터는 1초에 20,000번의 사이클을 도는 소리를 제대로 측정하려고 1초에 40,000번 전압을 측정하려고 했는데 만약 1초에 30,000번의 사이클을 도는 훨씬 더 높은 주파수의 소리가 들어와버린다면?

    nyquist error

    • 점을 이상한데다가 찍는다.
    • 이 현상을 고스트 주파수(Ghost Frequency)라고 부른다.
  • 샘플 레이트를 팍팍 올리면 되잖아! 높은 소리도 제대로 녹음되면 문제 해결 아닌가?

    • 하지만 이 디지털 오디오 기술이 처음 사용되기 시작한게 1970년대이기 때문에 무작정 샘플 레이트를 올리기에는 하드웨어 용량이 못 따라갔었다.

LPF(Low Pass Filter)

  • 1970년대 당시 하드웨어의 한계 문제를 해결하기 위해 사용한 방법이 바로 LPF(Low Pass Filter)이다.

    • LPF를 사용해서 인간의 가청주파수보다 높은 소리는 다 잘라버리고 인간의 가청주파수 영역의 소리만 통과시키면 방금 얘기한 고스트 주파수가 생길 일도 없기 때문이다.

    cut off

  • LPF를 써도 결국 잘린 부분이 저렇게 비스듬하게 꺾이면서 약간 아쉬운 부분이 남게된다. 이때 그림에 표시된 허용 범위인 -3db 밑으로 떨어지기 시작하는 곳을 Cut Off라고 부른다. 저기에서부터 신호가 잘렸다고 치겠다는 것이다. 그럼 Cut Off되는 부분을 20kHz보다 조금 더 밑으로 내리면 20kHz 언저리에서 신호가 사라지게 만들 수 있지 않을까?

  • 그래서 Cut Off를 딱 20kHz에 맞추고 남는 부분은 그냥 감수하자고 합의가 된 것이다. 당시 기술로 저 남는 부분을 줄이고 줄여서 맞춘게 딱 2,050hz였다.

  • 그럼 이제 남는 부분과 가청주파수를 합쳐보면 22,050hz가 된다. 나이퀴스트 이론에 따르면 우리는 최소한 2배의 샘플 레이트를 준비해야 이 신호를 제대로 측정할 수 있으므로 결국 CD의 표준 샘플 레이트가 44,100hz = 44.1kHz가 된 것이다.

  • 그 후 48kHz, 96kHz, 192kHz 등의 높은 샘플 레이트는 그냥 디바이스가 발전하면서 기술적인 제한이 없어졌으니까 “샘플 레이트는 클수록 좋지!” 하면서 늘린 것이다.

비트 레이트(Bit Rate)

  • 샘플 레이트가 소리의 가로 해상도 역할을 한다면 비트 레이트는 세로 해상도 역할을 한다.

  • CD의 비트 레이트는 16bit인데 이건 말 그대로 세로로 16bit 만큼의 해당하는 값을 표현할 수 있다는 얘기이다. 아까 위에서 설명한 샘플링을 진행할 때 전압을 측정했었다. 이때 컴퓨터가 측정한 이 전압의 값을 얼마나 섬세하게 표현할 수 있느냐를 비트 레이트가 결정하는 것이다. 16bit면 16자리의 이진법을 사용할 수 있다는 것이고 2^{16} = 65536216=65536이니까 0~65536까지 총 65537개의 값을 사용할 수 있는 것이다.

    bitrate

  • 물론 아날로그인 소리 신호가 변환된 전압 값이 123 같이 딱 떨어지는 정수일리가 없으므로 우리가 사용할 수 있는 0~65536 중 근사치를 찾아서 바꿔주는데 이 과정을 양자화(Quantizing)이라고 부른다.

  • 이후 0~65536의 값으로 변경된 전압을 컴퓨터가 이해할 수 있는 이진수(Binary)로 변경하는 과정을 부호화(Coding) 라고 한다.

📄 Documents

📌 Rules

📝 Agile Process

📆 Week1 Meeting Log
📆 Week2 Meeting Log
📆 Week3 Meeting Log
📆 Week4 Meeting Log
📆 Week5 Meeting Log

📎 Research

🔍 References

👫피어세션

📆 Week2 Peer Session
📆 Week3 Peer Session
📆 Week4 Peer Session

🤔 회고

📢 기술공유

🔉 Web Audio API

🚀Custom Element

🙈 Activity

🗑️ 휴지통

Clone this wiki locally