아날로그는 “외부적인 원인에 의해 연속적으로 변하는 것들을 연속된 물리량"으로 나타내는 것을 뜻한다.
우리가 자연에서 얻는 신호는 대개 아날로그이다. (빛의 밝기, 소리의 높낮이나 크기, 바람의 세기 등)
Digital
아날로그의 반대로서, 연속적이지 않고, 특정한 최소 단위를 갖는 이산적인 수치를 이용하여 나타내는 방식을 뜻한다.
Sampling (표본화)
아날로그 자료 샘플을 일정한 주기로 채집하여 디지털로 변환하는 과정을 샘플링이라고 한다.
1. 디지털을 아날로그로 변환
DAC (Digital to Analog Converter)
디지털 신호를 아날로그 신호로 변환해주는 장치
즉 2진수의 디지털 신호를 연속적인 아날로그의 값으료 변환하는 장치이다.
DAC를 이용해 아날로그 파형을 만들어 낼 수 있고, 메모리를 장치에 넣어서 복잡한 파형도 만들어낼 수 있다.
대표적인 DAC 예로는 오디오가 있다. 음악의 디지털 데이터를 아날로그 오디오 신호로 변환하는데 DAC가 사용된다.
*자세한? 내용은 아래서..
FIFO(First In First Out, 선입선출)
복잡한 파형을 만들기 위해 장치에 데이터를 써넣기 위한 메모리가 들어있다.
CPU가 수행하는 다른 작업과 무관하게 데이터를 일정한 비율로 읽어서 처리하기 위해 위에서 언급한 메모리를 FIFO 설정으로 만들어서 구현한다.
FIFO 설정이 되어있는 메모리에는 두 가지 트리거가 들어간다. (물탱크와 동작이 비슷하다(
높은 워터마크(high-water-mark): FIFO가 거의 꽉 찼을 때 인터럽트를 발생
낮은 워터마크(low-water-mark): FIFO가 거의 빈 상태가 될 경우 인터럽트 발생
이러한 방식으로 일정한 비율로 연속적으로 출력이 일어나도록 메모리를 채울 수 있다.
2. 아날로그를 디지털로 변환
ADC(Analog to Digital Convertor)
아래의 block diagram을 통해서 ADC가 어떻게 아날로그 신호를 디지털 신호로 변환해주는지 알 수 있다.
1) Sampling(샘플링, 표본화)
샘플링은 아날로그 신호에 일정 시간 간격으로 표본을 취하는 과정으로, 주기를 이산적으로 만드는 것이다.
샘플링은 전기신호를 붙였다가 떼는 과정을 통해서 파형을 만든다. (각각 전압을 측정한다)
일정 간격으로 점을 찍는다고 이해하면 편하다.
HOLD (책에서는 샘플 앤드 필드)
샘플링은 전기신호를 붙였다가 떼면 신호가 없음으로 바뀐다.
샘플링 될 때 순간에 같이 전기 신호를 받아서, 신호가 없어져도 어느정도 유지시켜주는 것을 HOLD라고 한다.
보통 커패시터, 콘덴서가 이 역할을 한다.
1) 홀드는 일정시간 전압을 유지하면서 계단 모양을 만들어주고 다음 신호가 올 때까지 나름의 이어주는 역할을 한다.
2) 또한 홀드는 신호를 측정하는 장치가 신호를 측정할 수 있는 시간적 여유를 가져다준다.
가령 디지털 방송(HDTV)은 48kHz이다. 1초에 48,000번이 나누어져있다는 뜻이다. 엄청 빠르다..
전압 측정 어려워서, 홀드 단계를 설치해서 어느정도 신호가 유지될 수 있도록 한다. 신호를 측정하는 장치가 시간적 여유를 갖는다.
2) Quantization(양자화)
표본화된 각 점을 진폭에 따라 어느 정도의 정밀도로 표현할 것인지 정하는 과정, 값을 이산적으로 만드는 것을 양화자라고 한다.
여러 개의 가로 선을 그었을 때 해당 점이 속해 있는 범위에 따라 값을 정하는거라고 생각하시면 됩니다.
3) Coding(부호화)
양자화된 신호를 디지털 정보인 2진수로 표현하는 과정이다.
비교기(Comparator)
비교기는 아날로그 회로로서, 샘플 데이터를 어떤 디지털 값으로 저장할지 정하기 위해 문턱값과 신호를 비교하는 장치이다.
부호화 하기 전에 비교기를 거친다.
3. ADC 유형
1) 병렬 비교형 ADC (플래시형 ADC)
비교기를 여러개 연결하여 디지털 값으로 변환하는 장치
장점 : 무지하게 빠르다
단점 : 비트 사용이 효율적이지 못하고, 비싸다
2) 램프 변환기 (계수 비교형 ADC)
내부에서 D/A 컨버터로 발생시킨 전압이 아날로그 입력보다 커질 때까지 비교하는 방식
D/A 컨버터의 출력을 만들기위한 계수기를 사용, 이 계수기는 변환을 시작할 때 리셋되고 각 클럭 사이클마다 1씩 증가하는 구조를 갖는다.
비교기는 D/A 컨버터의 출력이 아날로그 입력 전압을 초과하는 순간 계수기의 동작을 정지시키며, 이 마지막의 계수값이 디지털로 변환된 출력값이 된다.
단점 : 값이 맞을 때까지 반복해야하기 때문에 변환에 오랜 시간이 걸린다.
3) 연속 추정 변환기 (축자 비교형 ADC)
램프 변환기의 반복된 작업을 우회하는 방법으로 변환하는 방식
비교기 결과 값을 바탕으로 샘플 데이터 값을 추정하여, 계속해서 샘플 데이터 값을 추정하며 좁혀나가는 방식이다.
램프 변환기보다는 시간적인 부분이 많이 향상된다.
4. 디지털 오디오
*책 내용은 애매?해서... 그냥 따로 전개하며 정리해보겠습니다.
1) 샘플 레이트와 비트 레이트
위의 파형은 2차원의 진동 주파수 데이터로서, 가로축은 시간, 세로축은 진폭을 의미한다.
오디오를 인코더할 때 다음과 같은 설정을 보았을 것이다.
샘플 레이트 : 가로 축의 해상도
비트 레이트 : 세로 축의 해상도
당연히 샘플 레이트와 비트 레이트가 높은 것이 원래의 아날로그 소리와 더 가까운 소리를 구현한다. (소위 더 높은 해상도, 더 좋은 음질)
보통 CD의 음질이 44.1kHz, TV나 라디오 방송이 48kHz의 샘플 레이트를 가진다. 이는 1초에 44,100번, 48,000번 샘플을 측정한다는 뜻이다.
2) 나이퀴스트 이론 (Nyquist Theorem)
인간의 가청 주파수 영역은 20hz~20kHz이다.
엥? 인간이 1초에 20,000번 진동하는 소리까지 밖에 못 듣는데, 그럼 왜 CD의 샘플 레이트를 44.1kHz인가?
소리의 진동 사이틀을 보면 답이 나온다.
기본적으로 오디오 주파수는 위와 같이 하나의 사이클 단위로 나누어진다.
이 때 위로 올라가는 + 부분이 공기가 압축되는 부분이고, 아래로 내려가는 - 부분이 다시 공기가 팽창하는 부분이다.
소리란 곧 진동이고, 우리가 느끼는 것은 그 진동으로 인한 공기의 떨림이므로, 압축 -> 팽창 -> 압축 까지 모두 들어야 소리를 느낄 수 있다. (압축이나 팽창 중에 하나만 느낀다면 이게 진동이라고 느낄 수 없다.)
그래서 오디오 신호의 한 사이클을 제대로 측정하려면 + 방향의 맨 위 꼭지점 하나와 - 방향의 맨 밑 꼭지점 하나를 모두 측정해야 하기 때문에 최소 2번은 측정해야한다.
그래서 인간이 들을 수 있는 가장 높은 소리인 초당 20,000번의 떨림인 20kHz을 제대로 측정라혀면 컴퓨터는 최소한 1초에 20,000*2 = 40,000번 측정 해야한다.
Q. 그럼 40kHz여야지 왜 CD가 44.1kHz인가? 우리는 못 듣지만, 우리의 가청 주파수를 넘어가는 고음역대의 소리가 존재한다. (가령 박쥐, 돌고래 등) 만약 소리가 40kHz의 샘플 레이트인데, 만약 1초에 30,000번 사이클을 도는 더 높은 주파수의 소리가 들어와 버린다면? -> 점을 이상한 곳에 찍는다. -> 이를 위해서 필요한 것이 바로 필터(Filter)이다.
3) 소리 배합
실제 파형
서로 다른 기본 파형의 소리 여러개를 동시에 재생한다고 생각해보자.
각 파형들의 진폭이 합해지고 상쇄되면서 새로운 파형이 만들어질 것이다.
이 때 같은 부호의 진폭이 만나면 합해지고 다른 부호의 진폭이 만나면 서로 차감된다.
즉 여러개의 기본 파형을 동시에 재생하면, 각 파형들이 불륨(진폭) 비율대로 합쳐진다.
즉 세상의 복잡한 파형의 소리는, 기본 파형 여러 개를 합쳐진 것이다.
4) 빠른 푸리에 변환 (Fast Fourier Transform)
위의 소리 배합을 반대로, 기본 파형을 여러 개로 분리하는 것이 푸리에 변환의 기본 발상이다.
푸리에 변환의 아이디어는 다음과 같다.
모든 소리는 기본 파형(Sine파 등) 여러 개의 합이다.
따라서 모든 소리는 여러 개의 기본 파형으로 분리할 수 있다.
=> 즉 푸리에 변환은 소리의 파형을 여러 개의 기본 파형으로 변환하는 알고리즘이다.
분리된 기본 파형들은 "특정 주파수"에서의 "진폭 값의 변화"를 나타내므로, 이를 계산하면 복잡한 파형을 구성하는 각 주파수별 진폭의 값을 구할 수 있다.
그렇다면 우리는 디지털 신호를 2차원적으로 사용하는 것이 아니라 3차원 적으로 사용할 수 있다.
가령 들어오는 소리를 디지털 신호로 바꾸고, 특정 주파수의 값을 조절할 수 있는 것 같은 일이다. (필터)
우리는 그래픽 이퀄라이즈와 같은 장치로 특정 주차수의 값을 상쇄시키거나 통과시키고 키우는 등, 맘대로 조정할 수 있다.
5) 위상(phase)
주기적인 신호의 한 사이클 또는 한 주기 내에서 시작 시점을 기준으로 위치나 시간 차이를 나타내는 값
책에서는 원래 신호보다 약간 뒤쳐지거나 앞서는 것으로 설명했다.
위상차는 듣는 사람이 스테레오(2way)로 듣기 때문에 발생한다. (왼쪽과 오른쪽 귀에 도달하는 신호 사이의 시간차)
위상차를 이용하여 스테레오 사운드는 이미지를 만들어내는데, 이를 통해 실제 공간에서 어떤 소리들이 어디에 위치하는지를 파악할 수 있게 해준다.
6) 압축
오디오에는 많은 데이터가 들어가 있기 때문에 이를 압축해서 사용하곤한다.
무손실 압축 : 원래 데이터를 그대로 유지하고, 데이터 크기를 절반으로 줄인다. (FLAC 등이 있다.)
손실 압축 : 코덱으로 변환하여, 일부 세부 사항이 사라진다. (MP3, ACC, Ogg 등이 있다.)