ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 아날로그 신호를 디지털 신호로 바꾸는 과정
    Sound & Music🔊 2023. 4. 3. 08:26

    아날로그 신호와 디지털 신호

    아날로그는 값의 형태가 연속적으로 값이 무한하지만 디지털은 값의 형태가 이산적으로 값들 간의 간격이 존재한다.
    이 값 형태의 차이를 극복하기 위해 고안한 방법이 샘플링이다. 
     

    샘플링

    샘플링이란 시간에 대하여 일정한 주기 T 간격으로 잘라 시간에 대한 값을 뽑아오면서 연속적인 형태의 아날로그 신호를 이산적인 형태의 디지털 신호로 바꾸는 작업을 말한다. 이때 뽑아온 값들을 샘플이라고 한다. 
     

    뽑아온 샘플들이 원래의 신호에서 어느 시간에 위치해 있었는지를 파악하기 위해서는 위와 같은 식을 활용한다. 
    일정한 주기 T 간격으로 잘랐기 때문에 몇번째 샘플인지만 알면은 T(시간)Xn(샘플의 순번)을 통해 샘플이 어느 시간대에서 추출되었는지 알 수 있다. 
     
     

    Sampling rate

    연속적 신호를 이산적 신호로 변환하기 위해 샘플링을 진행할 때 얼마나 많은 샘플을 가져와야할지 판단에 대한 지표가 필요하다.
    샘플링시 주기 T를 간격으로 샘플을 뽑아오므로  샘플링시 T는 하나의 샘플로부터 다음 샘플의 가져올 때까지의 시간의 의미한다. 
    이를 이용하면 정해진 시간동안 몇개의 샘플을 가져왔는지는 주기의 역수인 1/T로 나타낼 수 있다. 
    예를 들어 T가 2초일 경우 2초동안 1개의 샘플을 가져오므로  1초동안에는 0.5개의 샘플을 가져온다고 할 수 있다. 
    즉 샘플링 레이트는 1초동안 몇개의 샘플을 추출했는지를 의미한다.
     
    파형을 나타낼때 한번 진동하는데 걸리는 시간을 주기 T로하고,  1초동안 진동하는 횟수를 진동수 f로 하는 것처럼
    샘플링시 한번 샘플링하는데 걸리는 시간을 주기 T로하고, 1초동안 샘플링한 횟수를 s_r(샘플링 레이트)로 나타내는 것이다. 
    따라서 샘플링 레이트는 진동수 f와 같이 주기 T의 역수로 나타나기 때문에 단위는 Hz가 된다. 
     

    샘플간의 시간간격 T가 클 경우 정해진 시간동안 뽑아오는 샘플의 수가 작고 이를 샘플링레이트가 낮다고 하며
    샘플간의 시간간격 T가 짧을 경우 정해진 시간동안 뽑아오는 샘플의 수가 많으며 이를 샘플링 레이트가 높다고 말할 수 있다. 
    위의 그림에서 확인할 수 있는 것처럼
    샘플링 레이트가 낮은 경우 원래의 신호에 대해 샘플링한 신호가 커버하는 범위가 샘플링 레이트가 높은 경우보다 작다. 
    샘플링시 샘플이 커버하지 못하는 부분에 경우에는 필연적으로 정보의 소실이 생기기 마련이다.
    이것을 샘플링 오류라고 하며 샘플링 레이트가 낮을 수록 샘플링 오류가 커진다. 
     

    Aliasing

    샘플링 레이트가 너무 낮게 되면 원래의 아날로그 신호를 제대로 변환하지 못하고 새로운 소리를 만들어 내버린다.
    이를 앨리어싱이라고 한다. 

    원래 신호는 빨간색이고 샘플링한 신호는 파란색이다. 원래의 신호의 진동수에 비해 샘플링 레이트가 너무 작기 때문에 샘플의 수가 적어 원래 신호를 반영하지 못하고 아예 다른 파형이 만들어 졌다. 
     

    Nyquist frequency

    샘플링시 샘플링 레이트가 너무 낮으면은 원래의 아날로그 신호의 정보가 디지털로 변환되는 과정에서 소실된다. 
    따라서 정보의 소실을 최대한 줄이기 위해서 필요한 샘플링 레이트에 대한 판단 기준이 필요하다. 

    나이퀴스트 샘플링 이론에 따르면 아날로그 신호를 디지털 신호로 변환하는 과정에서 정보의 손실의 막기 위해서는
    원래의 신호가 가지고  있는 진동수의 2배에 해당하는 샘플링레이트로 샘플링을 진행하면 된다. 
     
    예를 들어 변환하려고 하는 아날로그 신호가 가지고 있는 최대 주파수가 1Hz라면 이를 손실 없이 샘플링하기 위해서는 샘플링 레이트가 2Hz이상이 되어야한다. 
    사람들의 가청 최대 주파수는 20kHz이므로 사람이 들을 수 있는 소리만을 디지털로 변환하기 위해서 필요한 샘플링 레이트는 최소 40kHz이다. 
     

    Quantization(양자화)

    아날로그 신호로부터 샘플링을 통해서 시간에 대한 값들을 추출해 왔으니 이 값들을 디지털의 형태로 만들어야한다. 
    이때 사용하는 방법이 양자화이다. 양자화란 많은 값들을 크기가 정해진 집합의 값들로 매핑하는 과정으로 
    다음과 같은 파형이 주어졌을 때 진폭(y)축을 일정한 간격으로 썰어서 각 값에 대해서 이진법을 사용해 이름을 붙인 다음에 
    파형상에 나타나는 점들을 이 비트들로 매핑하는 과정이다. 
    아날로그 신호는 연속적이기 때문에 y(진폭)축 상에 나타날 수 있는 값도 연속적이다. 따라서 이 값을 디지털 형태로 바꾸기 위해서는
    시간에 대해서 일정한 주기로 샘플링하여 연속적이여서 무한한 시간값들 중 일부만 추출한 것 처럼 
    y축에 대해서도 이 무한한 값들 중 일부만을 가져오는 절차가 필요한데 이를 양자화를 통해 진행한다. 
    물론 양자화도 샘플링과 마찬가지로 연속적인 형태로 나타나는 값들의 일부만을 가져오는 것이기 때문에 오차가 발생하며
    이 오차를 줄이기 위해서는 양자화시 간격을 줄여 매핑될 값들의 수를 늘릴 수 있다. 
     
    양자화를 통해 표현되는 값의 해상도(얼마나 실제와 가깝냐)는 양자화시 사용되는 비트의 수에 따라 결정된다. 
     

    From 아날로그 To 디지털

    아날로그에서 디지털로 신호를 변환하는 과정을 정리하면
    1. 샘플링을 통해서 시간축에 대해 값들을 추출한다. 
    2. 추출된 값들을 일정한 범위의 값들과 매핑하기 위하여 y축에 대해서 양자화를 실시한다. 
    3. 샘플링한 값들을 양자화된 값들에 매핑시켜 나타낸다. 

     

    1분을 위해 필요한 메모리

    샘플링 레이트가 44100Hz이고 Bit depth이 16비트일 경우 1분을 저장하는데 필요한 메모리를 계산해보면 다음과 같다.

    Bit depth는 양자화시 사용하는 비트의 수로 16비트를 사용시 하나의 샘플 값을 저장하는데 16비트를 필요하다. 
    Sampling Rate는 1초동안 추출하는 샘플의 개수로 초당 44100개의 샘플을 얻는다. 
    따라서 1초를 저장하기 위해 필요한 비트수는 16X44100개이다. 
    비트를 MB로 표현하기 위해 1048576 bytes(binary)로 나누고 1bytes가 8bit이므로 8로 나누면 1초동안 필요한 메모리 수는  0.0841MB이다. 이를 1분으로 환산하면 5.047MB이다. 여기에 스테레오 타입으로 2채널을 사용한다면 총 10.094MB이다. 
    위와 같은 샘플링 레이트와 Bit depth을 이용하는 오디오 파일의 확장자가 .wav(무손실 압축 포멧)이다. 
    계산 결과로부터 알 수 있듯이 오디오를 wav 파일의 형태로 저장하면 너무 많은 메모리가 많이 필요하다. 
    따라서 mp3와 같은 손실 압축 포멧을 통해서 메모리를 줄이기도 한다. 


    'Sound & Music🔊' 카테고리의 다른 글

    오디오 특징 뽑아내기  (0) 2023.04.03
    Dynamic Range for Sound  (0) 2023.04.03
    소리의 구성요소  (0) 2023.03.31
    피치란 무엇인가?  (0) 2023.03.30
    소리란 무엇인가?  (0) 2023.03.29

    댓글

Designed by Tistory.