[Sampling]
이 세상의 소리(Sound)라는 것은 아날로그이기에 Linear 하다.
그런데 컴퓨터는 디지털이므로 이 Linear한 소리를 Discrete 한 데이터로 변환해야 한다.
아날로그는 거의 무한대의 해상도를 가지므로 이것을 그대로 디지털로 표현하는 건 불가능하다.
따라서 그 일부분만 채취(샘플링)하여 최대한 원본과 유사한 디지털 데이터를 만들어야 한다.
이러한 과정 또는 행위를 샘플링이라 한다.
용어가 몇 개 있다:
(1) 샘플링 레이트(Sampling Rate) : 1초에 몇 개의 샘플을 추출할 것인지
(2) Bit Depth : 한 개의 샘플이 얼마만큼의 정확도/단계를 가지는지
샘플링 레이트가 높을 수록 아날로그와 유사한 모양의 데이터를 얻을 수 있다.
아래 그림은 샘플링 레이트에 따른 디지털 데이터의 모양을 나타낸다.
잘게 쪼갤 수록 아날로그의 것과 같이 부드러운 곡선이 되는 것(=원본에 가까움)을 확인할 수 있다.
더불어서 각 샘플(sample)이 표현할 수 있는 값의 범위를 sample size 라고 한다.
하나의 샘플이 0부터 1까지의 값을 표현할 것인데 이를 얼마나 정밀하게 표현할 것인가...
예를 들어 샘플 사이즈가 3 bit라면 8단계로 표현 가능할 것이다. (0.0, 0.125, 0.25, 0.375, ...)
(출처: http://www.morphfx.co.uk/music/edu-sampling.htm)
따라서 아날로그를 디지털로 샘플링 시 필요한 용량은 Sample Rate와 Sample Size의 곱이다.
예를 들어보자. 우리가 일반적으로 구입할 수 있는 음반 CD의 스펙은 44,100 Hz, 16-bit 이다.
이는 1초에 44100개의 샘플을 추출하고, 각 샘플의 크기는 16 bit 라는 것이다.
따라서 둘을 곱하면 705,600 bit가 1초를 표현하는 데 사용된다. (88,200 byte = 86.13 KB)
이론상 4분짜리 곡은 20.15 MB가 필요할 것이다. 실제로 WAV, PCM 등의 무손실이면 이 용량이 나온다.
[나이퀴스트 샘플링 이론(Nyquist–Shannon sampling theorem)]
왜 대부분의 MP3 파일, 혹은 하드웨어들이 44,100 hz 스펙을 가지고 있는지 대충 납득할 수 있다.
이 이론의 결론을 요약하면 다음과 같다:
A sufficient sample-rate is therefore 2B samples/second, or anything larger.
충분한 샘플링 레이트는 대역폭의 두 배, 혹은 그 이상이다.
우선 앨리어싱(Aliasing)이라는 개념이 있다.
원본을 샘플링하여 새로이 구성된 데이터가 원본과 다를 때 발생하는 왜곡이나 아티팩트를 의미한다.
샘플링 레이트가 충분히 높지 않다면 샘플된 데이터는 원본 데이터를 충분히 표현하지 못한다. 당연한 말이다.
아래 그림은 벽돌 벽(원본)을 사진(샘플링)으로 촬영한 사진이다.
이 건물은 벽돌이 연속성을 가지고 배치되어 있다.
그런데 낮은 해상도로 사진을 찍을 경우 벽돌의 연속성을 제대로 표현하지 못하고 원본과 다른 왜곡된 모습을 표현하게 된다. 마치 시멘트가 좀 더 많이 발려진 것 같이 보인다.
이유는 갈색 벽돌 부분과 흰색 시멘트라는 두 요소를 조화롭게 샘플링해야 하는데
샘플링 비율이 한 쪽에 치우치게 되면 원래의 모양이 왜곡된 것처럼 보이는 것이다.
그런데 무조건 이 문제가 생기는 것은 아니고...
정말 재수가 좋아서 원본의 특징점을 잘 샘플링 할 경우... 딱히 문제가 없을 수도 있다.
혹은 눈속임으로 샘플들 사이를 비벼버리는 테크닉도 있다. (anti-aliasing)
시그널 프로세싱은 이러한 아다리를 지향한다고 할 수 있다.
어떻게 하면 최대한 적은 샘플링으로 원본의 특징을 그대로 살릴 수 있을지...
이와 관련하여 나이퀴스트는 Aliasing이 발생하지 않는 샘플링 레이트를 대역폭의 2배라고 제시한 것이다.
관련해서 자세한 내용은 관련 논문 참고:
http://medialab.sjtu.edu.cn/teaching/DIP/Projects/chapter_bas/ShannonTheoremTutorial.pdf
사람이 소리로 들을 수 있는 가청 주파수의 범위는 20~20,000 Hz 으로 알려져 있다. (나는 16,000 까지밖에 안들리던데...)
즉 데이터의 대역폭이 20 KHz라는 것인데, 이를 왜곡(Aliasing 등) 없이 샘플링 하려면
대역폭의 2배인 40 KHz 샘플링 레이트 이상으로 샘플링 해야한다는 이론이다.
하지만 이론상의 최소 요구가 2배라는 것이고, real-world에서는 8배 정도가 안전하다는 얘기를 엔지니어들이 종종 한다.
그렇기 때문에 192 kHz 까지 사용하는 Hi-Fi 업계가 존재하는 것으로 보인다.
현재는 44,100Hz와 48,000Hz가 범용적으로 가장 많이 사용되고 있다.
44,100hz : 25FPS PAL, 30FPS NTSC
48,000hz : 29.97FPS NTSC
[Sources]
https://en.wikipedia.org/wiki/Sampling_(signal_processing)
https://en.wikipedia.org/wiki/Nyquist%E2%80%93Shannon_sampling_theorem
https://en.wikipedia.org/wiki/Aliasing
'컴퓨터 공학도의 삶' 카테고리의 다른 글
[통신] OFDM(Orthogonal Frequency Division Multiplexing, 직교 주파수 분할 다중화) (1) | 2018.07.16 |
---|---|
[머신러닝] Windows에 TensorFlow 설치하기 (0) | 2018.01.04 |
TS140 전원 버튼 고장 시 대처법 (13) | 2017.01.13 |
Mac OS X에 Java 8 설치하기 (0) | 2016.06.06 |
StartSSL에서 발급받은 SSL 인증서 아파치(Apache) 서버에 적용하기 (0) | 2016.04.12 |