[데이터통신] Pulse Code Modulation를 통한 아날로그 to 디지털
서론
정보를 디지털화 했을 때 왜 binary code로 만드는 지에 간략히 알아보고,
L1 단계에서 신호를 0과 1로 이루어진 Binary code로 변환하는 Pulse Code Modulation (펄스 부호 변조)에 대해 알아봅시다.
데이터 통신의 기초 이해
왜 binary code로 만드는가
우선, 왜 신호를 0과 1로 나누는 지에 대한 깊은 통찰이 필요합니다.
여러 가지 이유가 있지만, 이유들을 정리하면 이렇습니다.
- 잡음에 강합니다.
- 구현이 간단하고, 비용이 저렴합니다.
- 디지털 논리(반도체)가 이진이기 때문입니다.
- 동기화(클럭에 맞춰)가 쉽습니다.
이제 신호를 1/0으로 나눈다면,
- 이더넷 케이블의 경우, 전기 신호를 어떠한 임계값을 기준으로 1/0을 판단할 수 있습니다.
- 무선랜의 경우, 무선신호의 특성(진폭, 주파수, 위상)에서 변조된 신호의 해석을 통한 판별으로 1/0을 판단할 수 있습니다.
전달 매체
L1의 전달 매체로써는 유선과 무선으로 나눌 수 있습니다.
- 유선의 경우, 케이블, 전자(전기적 신호), 빛 등을 이용할 수 있습니다.
- 무선의 경우, 무선랜, 블루투스, 이동통신, 위성 등을 이용할 수 있습니다.
아날로그 신호 만들기
소리는 진동이기에, 사인함수 조합으로 나타낼 수 있습니다.
\[y(t) = A \sin(2\pi f t + \varphi)\]- $A$ = 크기 (amplitude)
- $f$ = 주파수 (frequency), 1초에 몇 번 진동(사이클)?
- $\varphi$ = 위상 (phase)
Binary 신호를 전달하자
좋습니다. 그러면 이 binary 코드들을 물리적으로 전송해봅시다.
근데 이 binary 코드에 대한 어떠한 프로토콜이 필요하지 않을까요?
그럴때 쓰이는 프로토콜이 바로 모스 부호입니다.
모스 부호는 알파벳 하나하나를 짧은 신호(닷)와 긴 신호(대시)의 조합으로 표현하며, 이 부호들을 통해 알파벳으로 바꾸고, 그 알파벳들을 통해 우리가 의미 있는 의사소통을 할 수 있게 됩니다.
모스 부호를 전달하자
이러한 Binary 신호들은 소리나, 비트나, 빛(영화 엑시트)등으로 송/수신을 할 수 있겠습니다.
Pulse Code Modulation
좋습니다. 위 개념들을 일반화 해봅시다.
정의
PCM이란. 아날로그 신호를 일정 시간 간격마다 측정하여(샘플링) 그 값을 이진수(0과 1)로 표현하는 방식입니다.
과정
PCM으로 변환하는 과정은 다음과 같이 3단계로 구성됩니다.
- 샘플링 (Sampling)
- 양자화 (Quantization)
- 부호화 (Encoding)
우리는 실생활(아날로그)의 소리가 연속적임을 알지만, 디지털화 되면서, 연속적인 아날로그 신호를 일정 시간 간격마다 측정하는 식으로 디지털화 해야합니다.
이럴 때, 이산화 되는 것을 샘플링 (Sampling)이라고 합니다.
이러한 Sampling 값을 정해진 비트 수로 반올림 하는 것을 양자화 (Quantization)이라고 하고,
이러한 정수 값을 2진수로 표현하는게 부호화 (Encoding)입니다.
위 과정을 디지털 변환 (Analog-to-Digital Converter: ADC) 이라고도 합니다.
예제를 들어 계산해봅시다. ex) 소리를 $44.1\text{kHz}$ 단위로 샘플링한다고 해봅시다. $f = 44100\text{Hz} = 44.1\text{kHz}, T = \frac{1}{f}$ 이므로 $T$는 대략 $0.023$초 정도 됩니다.
ex) 10-bit ADC에서 특정 전압 레벨 $0 - 5V$를 나타내려고 합니다.(양자화)
그렇다면, 단위는 $\frac{5V}{2^{10}}으로 4.88 mV$ 단위가 됩니다.
좋습니다.. 근데 샘플링을 할 때 특정 구간에 대해서 양자화 레벨(비트 깊이)을 늘리고 싶은 상황이 생겼습니다.
그것을 알기 전에 알아야 할 수학적 정리가 있습니다.
Nyquist Sampling Theorem (나이퀴스트 정리)
\[f_s \geq 2 \cdot f_{\text{max}}\]어떤 아날로그 신호를 완벽하게 재구성하려면,
샘플링 주파수 $f_s$는
그 신호가 포함한 최대 주파수 $f_{\text{max}}$의 두 배 이상이어야 합니다.
만약 샘플링을 적게 한다면? Aliasing이 발생해 실제보다 느린 신호처럼 왜곡되고, 원래 신호를 복원할 수 없습니다.
Aliasing이란? 샘플링 주파수가 신호의 최대 주파수보다 낮을 때 샘플링된 데이터는 엉뚱한(느려 보이는) 주파수를 가진 신호처럼 보이게 되는 현상입니다.
실생활에서 어떤 사례를 들을 수 있을까요 ? 고속으로 회전하는 자동차 바퀴를 카메라로 영상을 찍으면, 역회전 하는 듯한 효과를 볼 수 있습니다. 바로 이런 현상이 Aliasing입니다..!
PCM의 Bitrate 계산
$Bitrate$는 다음과 같이 구할 수 있습니다.
$Bitrate = 샘플링 주파수 \times 비트 깊이 \times 채널 수$
앞서 살펴봤듯, 나이퀴스트 정리를 이용해서 표현하고 싶은 주파수의 최소 2배인 주파수를 구하고, 양자화에 주어지는 비트 깊이와 채널의 수가 주어지면 그대로 최소 $Bitrate$를 구하면 되겠습니다.
아날로그 -> 아날로그
왜 디지털 변환을 거칠까
아날로그 신호를 아날로그로 보낼 때 왜 디지털 변환을 거쳐서 전송하는 걸까요.?
그 이유는 주파수 한계를 정해두고 디지털화하면 이론적으로 완벽하게 복원이 되기 때문입니다.
이런 수학적 근거는 나이퀴스트 정리로부터 나옵니다.
아날로그 -> 아날로그 통신의 문제점
문제점은 다음과 같습니다.
- 아날로그 신호는 연속적이기 때문에, 잡음이 섞이면 분리할 수 없습니다.
- 아날로그 신호는 전송하면서 거리에 비례해 감쇠가 누적이 됩니다. 따라서 이런 문제를 해결하려면, 증폭해야하는데, 이러면 잡음이 커지기 때문에 품질이 저하가 됩니다.
- 복제/편집/압축 또한 어렵습니다. 선형 연산만 가능합니다.
- 디지털 메모리나, 논리회로에서 다룰 수 없습니다.
디지털 변환 o / x의 트레이드 오프
둘의 차이를 비교하면 다음과 같습니다.
항목 | 아날로그 전송 | 디지털 전송 (PCM 기반) |
---|---|---|
잡음 내성 | ❌ 약함 (누적됨) | ✅ 강함 (복원 가능) |
장거리 전송 | ❌ 감쇠됨, 품질 저하 | ✅ 재생·복구 가능 |
처리 용이성 | ❌ 연산 어려움 | ✅ 압축, 암호화, 편집 가능 |
회로 단순성 | ✅ 아날로그 회로 간단 | ❌ 디지털 회로, ADC 필요 |
지연 시간 | ✅ 빠름 | ❌ A/D, D/A 지연 존재 |
파일 크기 | ❌ 저장 어려움 | ✅ 고효율 압축 가능 |
복제/전송 오류 | ❌ 오류 복제됨 | ✅ 오류 정정 가능 |
과정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[사람 목소리] (아날로그)
↓
[ADC(Analog to Digital Converter)] ⟶ PCM 변환 (Sampling → Quantization → Encoding)
↓
[디지털 데이터] (0과 1)
↓
[변조기] ⟶ Modulation (ASK / FSK / QAM 등)
↓
[전송 매체] (유선/무선: 케이블, 전파, 광섬유 등)
↓
[수신기]
↓
[복조기] ⟶ Demodulation
↓
[디지털 데이터 복원]
↓
[DAC(Digital to Analog Converter)] ⟶ 아날로그 음성 재생
↓
[스피커] (아날로그 소리 출력)