현실 세계에서 우리가 보거나 듣는 것들은 모두 연속적인 값으로 이루어진 '아날로그' 데이터.
하지만 오늘날의 통신 환경에서는 노이즈에 훨씬 덜 민감하고 안정적인 '디지털' 신호를 주로 사용한다.
이번 글에서는 아날로그를 디지털로 바꾸는 과정부터 ~
디지털 데이터를 선로를 통해 전송하고 인코딩하는 다양한 기법을 정리한다.
1. 아날로그를 디지털로 변환하기: PCM
아날로그 신호를 디지털 데이터로 변환하는 가장 대표적인 기술인 PCM(Pulse-Code Modulation).
PCM은 다음 3가지 핵심 단계를 거쳐 완성된다.
- Sampling (표본화): 연속적인 아날로그 데이터를 특정 시간 간격으로 추출한다.
- Quantization (양자화): 샘플링된 데이터를 이산적인 수치 값으로 변환한다.
- Encoding (부호화): 이산 신호로 변경된 데이터에 코딩을 적용해 최종 디지털 데이터(0과 1)로 만든다.

PCM: Sampling의 3가지 방법과 나이퀴스트 샘플링
연속 아날로그 신호를 이산 디지털 데이터로 변경하는 과정이다. 방법은 아래와 같다.

- Ideal sampling: 딱 한 순간만 샘플링 (데이터가 딱딱 끊어지게 됨)
- Natural sampling: 자연적인 신호처럼 샘플링 (실제 구현은 거의 불가능)
- Flat-top sampling: 샘플링 시점부터 다음 샘플링 시점까지 값을 일정하게 유지 (가장 널리 쓰이는)
나이퀴스트 샘플링 정리 (Nyquist Theorem)
원본 아날로그 신호가 가진 최대 주파수의 2배 이상의 속도로 샘플링하면, 원본 데이터를 문제없이 완벽하게 복구 가능하다는 이론.
- 무한 대역폭이 아닌 대역폭이 제한된 신호만 샘플링할 수 있고
- sampling rate(샘플링속도)는 대역폭이 아닌 최고 주파수의 2배 이상이여야 하며
- 아날로그 신호가 low-pass인 경우, 대역폭과 최고 주파수가 같아야 한다.
& 아날로그 신호가 bandpass인 경우, 대역폭이 최대 주파수 값보다 낮아야 한다.f : Sampling rate
t : Sampling period
PCM: Quantization (양자화)와 노이즈
아날로그 신호를 이산적인 값으로 바꿔주는 과정을 통해 디지털화하고 전송할 준비를 한다.

양자화 단계에서 할당하는 비트(N)의 수가 많아질수록 SNR(신호 대 잡음비)이 높아져 노이즈에 강해진다.
SNR = 6.02 * N + 1.76 (dB), 즉 양자화 비트수N이 커지면 6배씩 SNR이 커진다.
다른 방법: Delta Modulation (DM)
PCM은 과정 자체가 꽤 복잡하기 때문에, 이를 단순화하기 위해 등장한 기술이 델타 변조(DM) !!
절대적인 진폭 값을 모두 기록하는 PCM과 달리, DM은 이전 샘플과의 변화값만을 찾는다.
현재 진폭이 이전보다 높으면 1, 낮으면 0으로 기록하므로 작은 변화를 기록하는 데는 적합하지만,
진폭 변화가 너무 크면 오차가 발생할 수 있다.
2. 디지털 데이터 전송 방식 (Transmission Mode)
만들어진 디지털 데이터를 디바이스나 네트워크를 통해 보낼 때는 선로의 구성에 따라 방식이 나뉜다.

| 전송 방식 | 작동 원리 | 장점 | 단점 |
| 병렬 전송 (Parallel) |
여러 비트를 각자의 고유 와이어로 한 번에 전송 | 속도가 매우 빠름 | 비용이 많이 들고 통신 거리가 짧음 |
| 직렬 전송 (Serial) |
1개의 선로를 통해 1비트씩 순차적으로 전송 | 장거리 통신에 적합, 저비용 | 기기 내부는 병렬이므로 직렬-병렬 변환기 필요 |
직렬 통신(Serial)의 3가지 동기화 기법
1. 비동기식 (Asynchronous):
- 송신자와 수신자의 클록(Clock)이 다르다
- 데이터 전송을 시작할 때 Start Bit(”0”)을 보낸 후 8비트 데이터 워드를 전송
- 모든 데이터 워드들을 다 전송하면, 전송 종료를 알리기 위해 Stop Bit(1)를 전송.

2. 동기식 (Synchronous):
- 송신자와 수신자가 같은 클록으로 맞춰서 통신하는 것
- 보통 클록을 함께 전송
- 시작/중지 비트 없이 비트를 차례로 묶어 긴 '프레임' 단위로 전송.

3. 등시성 (Isochronous):
- 비동기와 동기의 특징을 결합
- 데이터 블록을 비동기적으로 전송합니다.
- 즉, 데이터 스트림을 임의의 간격으로 전송할 수 있다

3. 디지털 데이터를 디지털 신호로 (Digital-to-Digital Conversion)
디지털 데이터를 컴퓨터 메모리에서 꺼내 선로로 보내려면 결국 다시 '신호(Signal)'로 변환해야 한다.
이를 Line Coding이라고 부른다.
Data Rate vs. Signal Rate
데이터 통신의 궁극적인 목표는 데이터 전송률(Data rate)을 높이고, 신호 전송률(Signal rate)을 낮추는 것이다.
신호 전달 속도를 높이면 대역폭은 줄어들고 데이터 전송률은 올라간다.
Line Coding이 겪는 주요 문제점
- DC Component (직류 성분): 신호 진폭의 평균이 0이 되지 않고 한쪽으로 치우쳐 전압이 누적되는 현상. 이렇게 되면 저주파는 통과할 수 없고, 값 인식이 어려워진다.
- Self-Synchronization (자기 동기화): 송신자와 수신자의 비트 간격(Bit duration)이 정확히 일치하지 않아, 보낸 신호를 수신자가 전혀 다른 비트열로 오해석하는 문제.
다양한 Line Coding 방식들
| 방식 종류 | 설명 및 특징 |
| Unipolar | 1일 때 양의 전압, 0일 때 0의 전압을 갖는 초창기 방식. 비용 문제로 잘 안 씀. |
| Polar - NRZ | Non Return to Zero. 0으로 돌아가지 않고 전압 상태를 유지. 0이 연속될 때 DC 성분 문제를 완벽히 해결하지 못함. |
| Polar - RZ | Return to Zero. 하나의 데이터를 표현할 때 중간에 무조건 0으로 전압이 돌아감. 직류 성분은 제거되나 과정이 복잡함. |
| Manchester | RZ와 NRZ-L을 섞은 방식. 비트 중간의 전압 변화 자체로 데이터를 표현하여 동기화와 직류 성분 문제를 모두 해결함. |
| Differential Manchester | 다음 비트가 0일 때만 변화를 주는 방식. NRZ-I의 단점을 훌륭히 보완함. |
더 완벽한 통신을 위한 Block Coding & Scrambling
Line Coding만으로는 한계가 있기 때문에, 시스템은 추가적인 꼼수를 사용한다.
- Block Coding (블록 코딩): 동기화와 오류 검출을 위해 여분의 정보(Redundancy)를 더 포함시킨다. 예를 들어 4B/5B 기법은 4비트 데이터를 5비트로 치환하여 0이 길게 연속되어 생기는 직류 성분 문제를 원천 차단한다.
- Scrambling (스크램블링): 추가 비트를 넣지 않고 데이터의 순서 자체를 섞어버리는 기법. 0이 너무 많이 연속되면 의도적으로 규칙을 깨버리는(Violation) B8ZS나 HDB3 같은 방식이 있다.
'컴퓨터 네트워크' 카테고리의 다른 글
| [network] Data-Link Layer (0) | 2026.06.29 |
|---|---|
| [network] 아날로그 신호로 변환하기 Analog Transmission와 Multiplexing (0) | 2026.06.28 |
| [network] 디지털 데이터를 디지털 신호로 변환하는 방법 Line coding, Block coding, Scrambling (8) | 2025.01.06 |
| [network] 신호 장애 원인과 성능 측정 방법 (8) | 2024.05.21 |
| [network] 아날로그(Analog) 신호 vs 디지털(Digital) 신호 알아보기(2) (6) | 2024.05.19 |

