Chapter 17: 디지털 신호의 출발점 - 펄스 변조의 이해¶
🚀 이 장을 시작하기 전에¶
당신은 지금 아날로그 세상을 디지털로 번역하는 마술을 배우려고 합니다.
생각해보세요. 음악 CD, 휴대폰 통화, 스트리밍 영상—이 모든 것들은 처음에는 사람의 목소리, 악기 소리, 카메라가 보는 연속적인 영상(아날로그)입니다. 그런데 이것들이 어떻게 컴퓨터 안에 0과 1의 수열로 저장되고, 빛의 속도로 전 세계를 돌아다닐까요?
그 비결이 바로 이 장에서 배울 펄스 변조(Pulse Modulation)입니다.
이걸 배우면 이렇게 됩니다: - 왜 음악을 샘플링해서 녹음할 수 있는지 이해하게 돼요 - 전화통화의 음질이 왜 특정 수준으로 결정되는지 알게 돼요 - 아날로그 신호를 디지털로 바꾸는 과정을 손으로 직접 해볼 수 있어요
지금부터 시작할 이 여정은 어렵지 않습니다. 천천히 따라와주세요.
🎯 이 장의 학습 목표¶
이 장을 마치면 여러분은: - ✅ 샘플링(Sampling)이 무엇이고, 왜 필요한지 설명할 수 있습니다 - ✅ 나이퀴스트 정리(Nyquist Theorem)를 사용해 올바른 샘플링 레이트를 결정할 수 있습니다 - ✅ 양자화(Quantization)로 인한 오류를 계산하고 이해할 수 있습니다 - ✅ PCM, PAM, PWM 세 가지 펄스 변조 방식의 차이를 구분할 수 있습니다
⏰ 예상 학습 시간: 약 2.5시간
🔑 미리 확인해요 (선수 지식 체크)¶
아래 내용이 익숙하지 않다면, [Chapter 16: 아날로그 신호의 특성]을 먼저 복습해주세요.
- 주파수(Frequency)—신호가 1초에 몇 번 반복되는가? (단위: Hz)
- 진폭(Amplitude)—신호의 높이, 세기를 의미한다
- 대역폭(Bandwidth)—신호가 차지하는 주파수 범위 (단위: Hz)
이 세 가지만 기억하면 준비 완료입니다!
📚 핵심 개념 (하나씩 차근차근)¶
개념 1: 샘플링(Sampling) — 연속 신호를 점으로 찍기¶
🎬 일상 비유로 시작¶
당신이 영화를 찍는다고 생각해보세요.
배우가 쭉 달리는 장면을 촬영합니다. 실제 움직임은 연속적이지만, 카메라는 초당 24장씩 끊어서 찍습니다(영화는 24fps). 그렇게 찍은 사진들을 빠르게 재생하면 뇌가 움직임으로 느껴집니다.
샘플링도 정확히 같습니다. 연속적으로 변하는 아날로그 신호를 일정한 시간 간격으로 끊어서 그 순간의 값만 기록하는 거예요.
정확한 설명¶
아날로그 신호는 시간의 모든 순간마다 다른 값을 가집니다. 음악 신호를 예로 들면 0.000001초마다 전압값이 달라집니다. 하지만 이 모든 값을 기록할 수는 없으니까, 일정한 시간 간격으로 신호의 값을 읽어서 그것만 저장합니다.
샘플링 레이트(Sampling Rate): 1초에 몇 번 신호를 읽을 것인가? 단위는 샘플/초 또는 Hz
예) CD 음악은 44,100Hz로 샘플링됨 = 1초에 44,100번 읽음
구체적 예시¶
당신이 휴대폰에서 음성 통화를 한다고 해봅시다. - 음성 신호의 주파수는 20Hz ~ 20,000Hz (인간이 듣는 범위) - 전화는 보통 8,000Hz로 샘플링합니다 (1초에 8,000번 읽음) - 즉, 1초의 통화를 8,000개의 숫자로 표현합니다 - 이렇게 해서 저장 공간을 줄이고도 음성은 충분히 알아듣습니다
🔍 체크포인트 | 여기까지 따라오셨나요? - "샘플링이 무엇인가?"를 한 문장으로 설명할 수 있나요? → 답: "연속 신호를 일정 시간 간격으로 끊어서 점으로 표현하는 것" - 샘플링 레이트가 높을수록 신호 품질이 좋을까요? → 답: 네, 더 자주 읽을수록 원래 신호에 가까워집니다
다음 개념으로 넘어가세요! 잘하고 계세요! 💪
개념 2: 나이퀴스트 정리(Nyquist Theorem) — 최소한 얼마나 자주 읽어야 할까?¶
🎬 일상 비유로 시작¶
영화 예를 다시 들어봅시다.
배우가 1초에 10번 깜빡이는 불빛 옆에서 춤을 춘다고 해요. 만약 카메라가 초당 5장(5fps)만 찍는다면? 불빛의 깜빡임을 제대로 기록할 수 없습니다. 최소한 초당 20장 이상 찍어야 그 깜빡임을 정확히 포착할 수 있어요.
나이퀴스트 정리도 이것과 같습니다.
정확한 설명¶
어떤 신호가 최대 주파수 f_max를 가지고 있다면, 그 신호를 완벽하게 복원하려면 최소한 2 × f_max 이상의 레이트로 샘플링해야 합니다.
나이퀴스트 정리 (Nyquist Theorem)
최소 샘플링 레이트 = 2 × 최대 신호 주파수
수식: f_s ≥ 2 × f_max
(f_s = 샘플링 레이트, f_max = 신호의 최대 주파수)
구체적 예시¶
예시 1: 음악 CD - 인간이 들을 수 있는 최대 주파수: 약 20,000Hz - 나이퀴스트 정리 적용: f_s ≥ 2 × 20,000 = 40,000Hz - CD는 44,100Hz로 샘플링 (조금 더 여유있게)
예시 2: 전화 통화 - 전화 음성의 최대 주파수: 약 4,000Hz - 나이퀴스트 정리 적용: f_s ≥ 2 × 4,000 = 8,000Hz - 전화는 정확히 8,000Hz로 샘플링
만약 나이퀴스트 정리를 무시하면?¶
샘플링 레이트가 너무 낮으면 앨리어싱(Aliasing)이라는 현상이 생깁니다. 고주파 신호가 저주파로 왜곡되어 들립니다.
이게 바로 "앨리어싱"—고주파가 다른 저주파처럼 보이는 현상입니다.
🔍 체크포인트 | 여기까지 따라오셨나요? - "나이퀴스트 정리가 무엇인가?"를 설명할 수 있나요? → 답: "신호를 완벽하게 복원하려면 최대 주파수의 2배 이상으로 샘플링해야 한다" - 최대 주파수가 5,000Hz인 신호는 최소 몇 Hz로 샘플링해야 할까요? → 답: 10,000Hz (2 × 5,000)
맞다면 계속하세요! 💪
개념 3: 양자화(Quantization) — 가능한 숫자들로 반올림하기¶
🎬 일상 비유로 시작¶
학교 시험에서 점수를 매긴다고 생각해봅시다.
실제 학생의 능력은 연속적입니다(수학 실력이 정확히 87.3456...). 하지만 학교는 보통 1점 단위로만 적습니다(87점 또는 88점). 이때 87.3은 87로 내려버리고, 87.7은 88로 올립니다.
양자화도 이것과 같습니다. 샘플링된 신호는 수없이 많은 값을 가질 수 있지만(예: 3.456V), 컴퓨터는 정해진 이산적인 값들만 사용합니다(예: 0V, 1V, 2V, 3V, 4V...).
정확한 설명¶
샘플링으로 얻은 신호값들을 컴퓨터가 다룰 수 있는 정수 값으로 변환합니다.
예를 들어: - 아날로그 신호: 0~5V 범위, 무한히 많은 값 가능 - 양자화(8비트): 0~255의 256개 값으로만 표현
과정: 1. 아날로그 값 3.7V를 읽음 2. "이 값이 0~5V 범위에서 몇 %인가?" → 74% 3. "256단계 중 74%는?" → 약 189 (256 × 0.74) 4. 결과: 3.7V → 189로 변환
구체적 예시¶
CD 음악의 경우 (16비트 양자화) - 아날로그 신호 범위: -32,768V ~ +32,767V (정확히는 전압 아니지만 같은 개념) - 가능한 값의 개수: 2^16 = 65,536개 - 샘플링 레이트: 44,100Hz - 결과: 1초의 음악 = 44,100개의 샘플 × 16비트 = 705,600비트
핸드폰 음성 (8비트 양자화) - 아날로그 신호 범위: -128 ~ 127 - 가능한 값의 개수: 2^8 = 256개 - 샘플링 레이트: 8,000Hz - 결과: 1초의 음성 = 8,000개의 샘플 × 8비트 = 64,000비트
양자화 오류(Quantization Error)¶
샘플링된 실제 값과 양자화된 값의 차이를 양자화 오류라 합니다.
양자화 오류를 줄이려면 비트 수를 늘려야 합니다: - 8비트 = 256단계 = 각 단계 폭 넓음 = 오류 크면 - 16비트 = 65,536단계 = 각 단계 폭 좁음 = 오류 작음
🔍 체크포인트 | 여기까지 따라오셨나요? - "양자화가 무엇인가?"를 설명할 수 있나요? → 답: "아날로그 값을 정해진 이산적인 값으로 변환하는 것" - 8비트와 16비트 중 어느 것이 더 정확할까요? → 답: 16비트 (더 많은 단계를 가지므로 오류가 작음) - 양자화 오류를 완전히 없앨 수 있을까요? → 답: 아니요, 하지만 비트 수를 늘리면 매우 작게 만들 수 있음
이제 세 가지 변조 방식으로 넘어갑니다! 💪
개념 4: 세 가지 펄스 변조 방식 (PCM, PAM, PWM)¶
이제 샘플링과 양자화를 이용해 만들어지는 펄스 변조 신호들을 봅시다.
방식 1: PCM (Pulse Code Modulation, 펄스부호변조)¶
PCM이란: 샘플링 + 양자화 + 이진 부호화(Binary Encoding)를 모두 하는 방식
앞서 배운 샘플링과 양자화의 결과를 0과 1의 이진코드로 표현합니다.
연속 아날로그 신호
↓ 샘플링 (일정 간격으로 값 읽기)
샘플값들: 2.3V, 3.1V, 3.8V, 3.2V, ...
↓ 양자화 (이산적 값으로 변환)
정수값들: 147, 198, 243, 205, ...
↓ 이진 부호화 (2진수로 표현)
이진코드: 10010011, 11000110, 11110011, 11001101, ...
↓
디지털 신호! 컴퓨터가 다룰 수 있는 0과 1
PCM이 가장 널리 쓰이는 이유: - 잡음에 매우 강합니다 (0과 1이 명확하니까) - 여러 번 복사/전송해도 품질 저하 없음 - 모든 디지털 기술(스마트폰, 인터넷, CD)에 표준으로 사용
방식 2: PAM (Pulse Amplitude Modulation, 펄스진폭변조)¶
PAM이란: 샘플링만 하고, 펄스의 높이(진폭)로 신호값을 표현
아날로그 신호
↓ 샘플링
샘플값: 2.3V, 3.1V, 3.8V, 3.2V
↓ 펄스의 높이로 표현
|
3.8├──┐
3.1│ │ ┌──┐
2.3│ └──┤ └──┐
└────────────→
특징: - 양자화하지 않으므로 정보 손실 없음 ✓ - 하지만 아날로그 신호처럼 취급되어 잡음에 약함 ✗ - 순수 아날로그 시스템에서 중간 단계로만 사용
방식 3: PWM (Pulse Width Modulation, 펄스폭변조)¶
PWM이란: 펄스의 폭(시간)으로 신호값을 표현
신호값이 클수록 → 펄스 폭이 좁음
신호값이 작을수록 → 펄스 폭이 넓음
신호값: 1.0 1.2 1.5 0.8 1.3
┌─┐ ┌──┐ ┌──┐ ┌───┐ ┌──┐
│ │ │ │ │ │ │ │ │ │
────────┴─┴─┴──┴─┴──┴─┴───┴─┴──┴─────
특징: - LED 밝기 조절, 모터 속도 제어 등 실제 제어에 많이 사용 - 아두이노의 PWM 핀 같은 것들 - 정보 손실은 있지만 간단하고 효율적
세 방식의 비교¶
| 항목 | PCM | PAM | PWM |
|---|---|---|---|
| 주요 정보 | 이진 코드 | 펄스 높이 | 펄스 폭 |
| 양자화 | 있음 | 없음 | 있음 |
| 잡음 저항 | 강함 | 약함 | 중간 |
| 주요 용도 | 음성/음악/통신 | 중간 단계 | 제어 신호 |
| 저장 효율 | 높음 | 중간 | 높음 |
실생활에서 어디에? - PCM: CD, MP3, 휴대폰 통화, 인터넷 스트리밍 ← 가장 일반적 - PAM: 광통신 시스템 중간 단계 - PWM: LED 밝기, 선풍기 속도, 로봇 모터 제어
🔍 체크포인트 | 여기까지 따라오셨나요? - PCM, PAM, PWM의 차이를 설명할 수 있나요? → PCM: 이진 코드화, PAM: 펄스 높이, PWM: 펄스 폭 - CD 음악은 어느 방식으로 저장될까요? → 답: PCM (가장 정확하고 손실 없음) - 아두이노로 LED 밝기를 조절할 때는? → 답: PWM (펄스 폭 변조)
이제 실제로 직접 해봅시다! 💪
🔧 직접 해봐요¶
실습: 신호 샘플링과 양자화 직접 하기¶
이 실습의 목표: 실제 아날로그 신호를 샘플링하고 양자화하여 PCM 신호로 변환해봅시다.
준비물: - 종이와 펜 (또는 계산기) - 이 실습용 신호값 표 (제공)
따라하기 (천천히 한 단계씩!)
1단계: 아날로그 신호 확인하기¶
아래는 어떤 음성 신호의 값입니다 (0~5V 범위).
이것이 우리가 샘플링할 원래 신호입니다.
✅ 확인: 9개의 시간 지점에서 신호값이 주어졌나요?
2단계: 나이퀴스트 정리 확인하기¶
이 신호의 최대 주파수가 4kHz라고 가정합시다.
나이퀴스트 정리를 적용하면: - 필요한 샘플링 레이트 = 2 × 4kHz = 8kHz - 즉, 1초에 8,000번 샘플링 = 1번당 0.125ms 간격
위 표가 정확히 0.125ms 간격이므로, 우리는 올바르게 샘플링했습니다! ✓
✅ 확인: 0.125ms의 의미가 이해되셨나요? ❓ 안 된다면: "나이퀴스트 정리" 섹션을 다시 읽어보세요.
3단계: 양자화 (8비트)¶
8비트 양자화를 적용합시다. 0~5V를 0~255의 정수로 변환합니다.
공식: 정수값 = (신호값 ÷ 5) × 255
첫 번째 값으로 해봅시다: - 신호값 = 2.5V - 정수값 = (2.5 ÷ 5) × 255 = 0.5 × 255 = 127.5 → 128 (반올림)
나머지 값들도 같은 방식으로 계산합시다:
신호값(V) → 정수값(양자화)
2.5 → 128
2.8 → 143
3.2 → 164
3.5 → 179
3.7 → 189
3.6 → 184
3.2 → 164
2.8 → 143
2.5 → 128
✅ 확인: 계산이 맞는지 첫 번째 값(2.5 → 128)을 다시 확인하셨나요? ❓ 계산이 안 맞으면: 공식을 다시 읽고, 계산기로 천천히 해보세요.
4단계: 이진 부호화 (PCM)¶
정수값을 8비트 이진수로 변환합시다.
첫 번째 값: - 정수값 = 128 - 128을 2진수로 = 10000000
나머지도 변환합시다:
정수값 → 8비트 이진 코드
128 → 10000000
143 → 10001111
164 → 10100100
179 → 10110011
189 → 10111101
184 → 10111000
164 → 10100100
143 → 10001111
128 → 10000000
✅ 확인: 128이 10000000인 이유 (2^7 = 128)? ❓ 아니면: 다음 단계로 넘어가도 괜찮습니다. 이진법은 나중에 더 깊게 배웁니다.
5단계: 양자화 오류 계산하기¶
원래 신호값과 양자화된 값의 차이를 봅시다.
양자화 값을 다시 V로 변환: (정수값 ÷ 255) × 5
원래값(V) 양자화값(V) 오류(V)
2.5 → 2.51 → +0.01
2.8 → 2.80 → +0.00
3.2 → 3.22 → +0.02
3.5 → 3.51 → +0.01
3.7 → 3.70 → 0.00
3.6 → 3.61 → +0.01
3.2 → 3.22 → +0.02
2.8 → 2.80 → 0.00
2.5 → 2.51 → +0.01
보세요! 오류가 최대 0.02V 이하입니다. 8비트 양자화가 충분하다는 뜻입니다.
✅ 확인: 오류가 매우 작은 이유를 이해했나요? → 답: 256단계(8비트)로 나누면 각 단계가 5÷256 ≈ 0.02V이므로
6단계: PCM 신호 완성!¶
이제 당신은 아날로그 신호를 완전한 디지털 신호(PCM)로 변환했습니다:
시간(ms) 아날로그(V) PCM(8비트)
0.00 2.5 10000000
0.125 2.8 10001111
0.25 3.2 10100100
0.375 3.5 10110011
0.50 3.7 10111101
0.625 3.6 10111000
0.75 3.2 10100100
0.875 2.8 10001111
1.00 2.5 10000000
이 표가 바로 1ms 분량의 전화 통화입니다. 이것을 저장하거나 전송할 수 있습니다!
🎉 잘 되셨나요? 축하해요! 방금 여러분은 아날로그-디지털 변환을 손으로 직접 해냈어요!
❓ 자주 묻는 질문 & 막혔을 때¶
Q. 샘플링 레이트를 8kHz가 아니라 더 높게 하면 어떻게 될까요?
더 높은 레이트(예: 16kHz, 44.1kHz)로 샘플링하면: - **장점**: 신호가 더 정확해집니다 (더 많은 점으로 그린 그래프처럼) - **단점**: 저장 공간이 2배, 3배... 늘어납니다 - **현실**: 필요한 만큼만 합니다. CD는 44.1kHz, 전화는 8kHz인 이유가 바로 이것!Q. 왜 나이퀴스트 정리는 2배일까요? 1.5배는 안 될까요?
좋은 질문입니다! 수학적으로 증명하려면 복잡하지만, 간단히 설명하면: 신호를 **완벽하게 복원**하려면 최소한 한 주기를 2개 이상의 샘플로 기록해야 합니다. - 1주기 = 2샘플 = 2배의 레이트 필요 - 1.5배면 부족하고, 정보가 손실됩니다.Q. PCM, PAM, PWM 중에 가장 좋은 것은 뭔가요?
"가장 좋다"는 없습니다! 각각 다른 목적에 최적화되어 있어요: - **PCM**: 정확함이 최우선일 때 (음악, 통신) ← 현대에 가장 많이 사용 - **PAM**: 중간 단계나 아날로그 시스템과 연결할 때 - **PWM**: 전자 기기를 **제어**할 때 (LED, 모터) 당신이 하는 일에 따라 선택하면 됩니다.Q. 양자화 오류가 아예 없을 수는 없을까요?
네, 완전히 없애는 것은 불가능합니다. 왜냐하면: 아날로그 신호는 무한히 많은 값을 가지지만, 컴퓨터는 유한한 개수의 값만 다룰 수 있거든요. 하지만: - 비트 수를 늘리면 오류를 매우 작게 만들 수 있습니다 (8비트 → 16비트 → 32비트...) - 대부분의 경우 무시할 수 있을 정도가 됩니다Q. 실습에서 계산이 맞는지 어떻게 확인할까요?
가장 쉬운 방법: 1. **첫 번째와 마지막 값은 같아야 합니다** (신호값 2.5 → 128 반복) 2. **중간값들은 점진적으로 변합니다** (128 → 143 → 164... 계속 증가하는 추세) 3. 계산기로 한두 개 값을 다시 확인해보세요📌 이 장에서 배운 것 정리¶
🏆 오늘의 성취: 여러분은 이제 아날로그 신호를 디지털로 직접 변환할 수 있게 되었어요!
- ✅ 샘플링 (Sampling): 연속 신호를 일정 간격으로 끊어서 점으로 표현하는 과정
- ✅ 나이퀴스트 정리: 신호를 완벽하게 복원하려면 최대 주파수의 2배 이상으로 샘플링해야 함
- ✅ 양자화 (Quantization): 아날로그 값을 컴퓨터가 다룰 수 있는 이산적인 정수로 변환하는 과정
- ✅ PCM: 가장 정확하고 널리 쓰이는 펄스 변조 방식 (이진 코드화 포함)
- ✅ PAM & PWM: 특정 용도에 최적화된 다른 펄스 변조 방식들
핵심 한 줄: 아날로그 신호는 샘플링 → 양자화 → 이진 부호화를 거쳐 디지털 신호(PCM)가 됩니다.
🤔 스스로 점검해봐요¶
아래 질문에 "예"라고 답할 수 있다면, 다음 장으로 넘어가도 좋아요!
- 샘플링과 양자화의 차이를 설명할 수 있나요?
- 나이퀴스트 정리를 사용해 필요한 샘플링 레이트를 계산할 수 있나요?
- 실습처럼 아날로그 값을 직접 PCM으로 변환할 수 있나요?
- PCM이 왜 가장 널리 쓰이는지 이해했나요?
💡 1-2개가 아직 어렵다면? 괜찮아요! 해당 부분만 다시 읽어보세요. 특히 "개념 3: 양자화"와 실습을 다시 한 번 천천히 따라가보세요.
전부 어렵다면? "개념 1: 샘플링"부터 차근차근 다시 읽어주세요. 어려운 것은 당연합니다. 천천히 해도 괜찮아요! 😊
🚀 다음 장 미리보기¶
다음 장(Chapter 18)에서는 디지털 신호의 전송을 배워봅시다.
지금 당신이 PCM으로 변환한 신호(0과 1의 연속)를 실제로 전화선이나 무선으로 보내려면 어떻게 할까요? 그것이 바로 채널 부호화(Channel Coding)와 라인 부호(Line Code)입니다.
- PCM 신호를 오류 없이 전송하는 방법
- 거리가 멀어도 신호를 복원하는 기술
- 실제 통신 시스템이 어떻게 작동하는지
기대하세요! 당신이 배운 샘플링과 양자화가 어떻게 쓰이는지 직접 보게 됩니다. 😊
이 장의 학습을 완료했습니다! 수고하셨어요! 🎉