logo
Published on

CH5. Encoding & Modulation

Authors
  • avatar
    Name
    valery
    Twitter

1. 인코딩과 모듈레이션 큰그림

1-1 4가지 변환경로

  • 데이터(전달하고 싶은 내용)과 신호(실제로 매체를 타고 가는 물리적 파동)이 존재.
  • 둘 다 디지털일 수도, 아날로그일 수 도 있다. 그래서 가능한 조합이 4개가 나온다.
신호 형태
            digital     analog
data  D ┃   ①          ②
      A ┃   ③          ④
  1. digital data → digital signal: Encoding (이번 챕터 2부)
  2. digital data → analog signal: Modulation (이번 챕터 3부)
  3. analog data → digital signal: Digitization = PCM, Delta Modulation (4부)
  4. analog data → analog signal: 옛날 AM/FM 라디오. 이 챕터에선 안 다룸.

1-2 정의

  1. Encoding 경로
g(t) ──[Encoder]── x(t) ──[채널]── x(t) ──[Decoder]── g(t)
digital/analog      digital              digital      digital/analog

g(t): 원본 데이터 x(t): 인코딩된 디지털 신호 (사각파 같은 것) 출력은 시간 영역 그래프로 표현됨

  1. Modulation 경로
m(t) ──[Modulator]── s(t) ──[채널]── s(t) ──[Demodulator]── m(t)
digital/analog  ↑     analog                analog          digital/analog
                fc(t)
                carrier

m(t): 메시지 (보내고 싶은 데이터) fc(t): 캐리어 (반송파, 일정한 sin 파동) s(t): 변조된 아날로그 신호 S(f): 주파수 영역에서 본 모양 (캐리어 주파수 fc 주변에 봉우리)

1-3 좋은 인코딩의 5가지 평가 기준

기준무엇을 보는가왜 중요한가
Signal spectrum전송 파워가 대역폭의 어디에 분포하는가가운데로 모아야 효율적. DC component(0Hz 근처)이 있으면 transformer 같은 부품을 통과하지 못함
Clocking송수신측이 비트 경계를 어떻게 맞추는가외부 클럭을 따로 둘지, 신호 자체에 동기 정보를 심을지 결정
Error detection에러를 어떻게 검출하는가본질적으로 상위 레이어(data link control)의 책임. 단, 인코딩 자체로 일부 검출 가능한 경우도 있음 (예: Bipolar-AMI의 polarity violation)
Signal interference & noise immunity노이즈 환경에서 잘 살아남는가같은 SNR에서도 코드에 따라 BER이 다름
Cost & complexity구현 비용은 얼마나 드는가signaling rate가 높을수록 비용 증가

핵심 포인트

  • Signal spectrum의 "no DC component" 가 5장 전체의 숨은 주제. NRZ-L → AMI → Manchester → Scrambling으로 가는 흐름 자체가 "DC 어떻게 없앨까"의 진화 과정.
  • Clocking 도 마찬가지. NRZ-L의 동기 문제 → Manchester의 self-clocking → Scrambling의 절충안.
  • Error detection이 data link control 계층의 책임이라는 건 6장의 입구. 5장은 "신호 만들기", 6장은 "데이터 검증".

1-4 Differential Encoding

  • 신호를 이전 전압에 비교해서 변했는지 안변했는지로 해석하는 방식
  • 왜 중요하냐: 노이즈가 끼면 절대값은 흔들리지만 변화 자체는 비교적 안정적으로 검출되서
  • Level encoding: 0 = low, 1 = high (또는 그 반대). 절대 레벨로 데이터 표현.

장점

  • 노이즈 환경에서 transtition(전압변화)검출이 절댓값 비교보다 신뢰성이 높음
  • 케이블 polarity(전압의 부호)가 뒤집혀도 데이터 복원 가능

단점

  • easy to lose sense of polarity

Differential Encoding 적용처

스킴Differential이 어떻게 적용되는가
NRZI1일 때 transition, 0이면 유지
Differential Manchester비트 시작 지점의 transition 유무로 데이터 표현 (있으면 0, 없으면 1)
DPSK이전 신호 대비 phase 변화로 데이터 표현

2. Digital → Digital Encoding

도입

  • 디지털데이터 -> 디지털 신호 로 변환하는 4가지 방법을 배운다
  1. NRZ계열
  2. Multilevel Binary
  3. Manchester 계열
  4. Scrambling

2-1 NRZ(No Return to Zero) 계열

  • 가장 단순한 방식, 0과 1을 그냥 두개의 다른 전압으로 표현.
  • Non-Return to Zero"라는 이름은 한 비트 시간 동안 전압이 0(중립값)으로 돌아가지 않는다는 뜻
  • 한 비트 구간 동안 전압을 일정하게 유지

NRZ-L (Nonreturn to Zero - Level)

  • 0 = high level

  • 1 = low level

  • 장점

    1. 단순함. 회로 구현이 가장 쉬움.
    2. 효율적. 1비트당 신호 변화가 최소 (0이나 1이 연속되면 변화 없음).
  • 단점 — 두 가지

    1. DC component 존재: 0이나 1이 많이 나오면 평균 전압이 0이 아닌 값으로 치우침. → transformer 같은 부품을 통과하지 못함.
      • 예를 들어
      신호:  H H H H
      전압: +1 +1 +1 +1
      평균: +1V
      
      이러면 평균이 0이 아니고 dc component가 있는 상태
    2. 동기 손실: 0이나 1이 길게 연속되면 신호가 변하지 않아서, 수신측이 "지금 몇 번째 비트인지"를 잃어버림

NRZI (Nonreturn to Zero Inverted, "invert on ones")

  • Differential encoding의 첫 등장
  • 비트 시작 지점에 transition(전압 변화)이 있느냐 없느냐로 데이터 표현.
    • 0 = no transition (이전 전압 그대로 유지)
    • 1 = transition (low→high 또는 high→low로 뒤집힘)
    • 그러니까 비트 1이 되면 부호 전환
  • 노이즈에 강함

NRZ-L vs NRZI 비교

항목NRZ-LNRZI
0의 표현high levelno transition
1의 표현low leveltransition
인코딩 방식level encodingdifferential encoding
동기 손실 조건0 또는 1이 길게 연속0이 길게 연속 (1은 매번 변하니까 OK)
노이즈 내성약함 (threshold 비교)강함 (transition 검출)

2-2 Multilevel Binary

  • NRZ는 2개의 전압 레벨(high, low)만 사용. Multilevel Binary는 3개의 전압 레벨 사용
    • 양전압(+), 0(no signal), 음전압(−).
  • NRZ-L이 가진 두 단점(DC component, 동기 문제)을 일부 해결하기 위해서.

Bipolar-AMI

  • 정의 (AMI = Alternate Mark Inversion)
  • 0 = no line signal (전압 0, 아무것도 없음)
  • 1 = positive 또는 negative pulse
    • 연속된 1들은 polarity가 교대로 나타남 (첫 1이 +면 다음 1은 -)

장점

장점의미
No loss of sync if a long string of 1s occurs1이 연속해도 매번 polarity가 바뀌니까 transition이 계속 발생 → 동기 유지됨 (NRZ-L의 단점 일부 해결)
No net DC component1이 +/− 교대로 나오니까 평균 전압이 0에 가까움 → transformer 통과 가능
Lower bandwidth같은 데이터레이트에서 NRZ보다 좁은 대역폭으로 전송 가능
Easy error detection1이 +/− 교대 규칙을 어기면 = 에러 발생 → 인코딩 자체로 일부 에러 검출 가능

단점

  • 0이 길게 연속되면 여전히 동기 문제. 0은 "no signal"이라서 신호가 없는 시간이 길어지면 수신측이 비트 경계를 잃음.
    • 이 단점 때문에 나중에 Scrambling(2.4) 이 등장

Pseudoternary

  • 정의 — Bipolar-AMI의 거울상
  • 0 = positive 또는 negative pulse (교대)
  • 1 = no line signal
  • AMI랑 0과 1의 역할이 정확히 뒤바뀐 거

Bipolar-AMI vs Pseudoternary

항목Bipolar-AMIPseudoternary
0의 표현no line signal+/− 교대 펄스
1의 표현+/− 교대 펄스no line signal
본질적 우열없음 — 어느 한쪽이 더 낫지 않음없음
사용처일부 application의 기반일부 application의 기반

2-3 Manchester 계열

  • 매 비트 중간에 transition을 무조건 강제로 넣자. 0이든 1이든
  • 신호가 항상 변하니까 동기 손실이 절대 없음. 신호 자체가 클럭 역할까지 함

Manchester

"transition이 high/low를 결정한다"기보다는, 현재 High였는데 Low로 바뀌면 transition이 생긴다

  • 매 비트 중간에 transition이 반드시 있음

  • low → high transition = 1

  • high → low transition = 0

  • 중간 transition의 두 가지 역할

    1. Clockin(비트경계맞추기): 매 비트 중간에 무조건 변화가 있으니, 수신측이 그걸 보고 비트 경계 추적
    2. Data: 변화의 방향(올라가는지 내려가는지)이 비트 값을 결정
    • → 한 transition으로 클럭 + 데이터 동시 전달. self-clocking.
  • 장점

    • 동기 손실 없음
    • DC component 없음
  • 단점: 1비트당 transition 2번 필요 → 신호가 2배 빠르게 변해야 함 → 대역폭 2배 필요 → 비쌈

Differential Manchester

  • Manchester + differential encoding

  • 매 비트 중간에 transition이 항상 있음 → clocking 전용

  • 비트 시작 지점의 transition 유무로 데이터 표현

  • 시작할 때(한 비트의 시작) 시작비트가 0이면 transition. high이던 low이던

Manchester vs Differential Manchester

항목ManchesterDifferential Manchester
비트 중간 transition있음 (clocking + data)있음 (clocking 전용)
비트 시작 transition의미 없음데이터 (있으면 0, 없으면 1)
0의 표현중간에 high → low시작에 transition 있음
1의 표현중간에 low → high시작에 transition 없음
인코딩 방식level (방향이 의미)differential (변화 유무가 의미)
노이즈 내성보통더 강함
대역폭2배 필요2배 필요

2-4 Scrambling

  • 그냥 AMI 같은 효율적인 방식 쓰면서, 0이 길게 연속되는 부분만 다른 패턴으로 바꿔치기하면 안 되나? 에서 나온 아이디어

핵심 매커니즘

  • 평소엔 AMI 같은 기존 방식 그대로 사용 (대역폭 효율 유지)
  • 0이 너무 많이 연속되면 (예: 8개 연속) → 그 구간을 미리 약속된 다른 비트 패턴으로 강제 치환
  • 수신측은 그 패턴을 알아보고 → 다시 원래 0 연속으로 복원

치환 패턴이 만족해야 하는 조건

  • 수신측 클럭 동기 유지할 transition 충분히 제공(신호가 너무 오래 안 바뀌면, 수신측이 "지금 몇 번째 비트인지"를 잃어버리니까, 일부러 중간중간 전압 변화가 생기게 만든다는 뜻)
  • 수신측이 그 패턴을 알아보고 원본으로 복원 가능해야 함
  • 원본과 같은 길이 (data rate penalty 없음)

Scrambling Design Goals

목표의미
No DC componenttransformer 통과 가능하게
No long sequences of zero level line signals0 연속을 차단해서 동기 유지
No reduction in data rate치환 패턴이 원본과 같은 길이 → 데이터 처리량 유지
Error detection capability치환 패턴 자체에 에러 검출 기능 내장

두가지 대표 방식

  1. B8ZS (Bipolar with 8-Zeros Substitution)
  • AMI 기반
  • 0이 8개 연속되면 → 그 8비트를 2개의 code violation(AMI 규칙 위반 펄스)을 포함한 특별 패턴으로 치환
  • 북미에서 주로 사용
  1. HDB3 (High-Density Bipolar 3-zeros)
  • AMI 기반
  • 0이 4개 연속되면 → 그 4비트를 1개의 code violation을 포함한 특별 패턴으로 치환
  • 유럽/일본에서 주로 사용
항목B8ZSHDB3
기반 인코딩Bipolar-AMIBipolar-AMI
치환 트리거0이 8개 연속0이 4개 연속
치환 시 code violation 수2개1개
주 사용 지역북미유럽/일본
  • code violation이란?
    • AMI 규칙: "1은 +/− 교대로." → 이 규칙을 일부러 깨뜨린 펄스를 의미
    • 이게 error detection capability의 메커니즘
      • 치환 규칙을 어긴 신호가 도착하면 → 에러로 즉시 검출

3. Digital data -> Analog signal encoding (Modulation)

carrier라는 기본 sine wave가 있고, 그 sine wave의 성질 중 하나를 바꿔서 0과 1을 표현한다.

  • ASK, FSK, PSK, QAM이 있다.
sine wave의 형태

s(t) = A sin(2πft + φ)

여기서 바꿀 수 있는 게 세 개.
A  = amplitude, 진폭
f  = frequency, 주파수
φ  = phase, 위상

3-1 ASK

  • 진폭 A를 바꿔서 0/1 표현
  • 0이면 carrier를 약하게 보내거나 아예 안 보내고, 1이면 크게 보내는 방식
  • 0을 carrier 없음으로 표현하는 ASK를 OOK, On-Off Keying이라고 해.
    • 1 = carrier ON
    • 0 = carrier OFF
  • 문제는 진폭은 노이즈에 약하다는 거. 통신 중에 신호 세기가 조금만 흔들려도 "이게 큰 진폭인지 작은 진폭인지" 애매함. 그래서 ASK는 단순하지만 안정성은 별로

3-2 FSK

  • 주파수 f를 바꿔서 0/1 표현

Bfsk: Binary FSK라서, binary data인 0과 1을 표현하기 위해 두 개의 주파수만 써

  • 1 = 높은 주파수
  • 0 = 낮은 주파수

MFSK: Multiple FSK: 주파수를 2개보다 많이 쓴다

예를 들어 주파수를 4개를 쓰면

MFSK, M = 4:

00 = f1
01 = f2
10 = f3
11 = f4
  • 한 symbol에 여러 bit를 담으니까 bandwidth efficiency가 좋아짐.
  • 단점은 주파수 간격이 좁거나 노이즈가 있으면 헷갈리기 쉬워진다.
  • 주파수가 높다는 건 같은 시간 안에 파동이 더 많이 출렁인다는 뜻

3-3 PSK

  • 위상 φ를 바꿔서 0/1 표현
  • 진폭이나 주파수를 바꾸는 게 아니라, sine wave의 위상, 쉽게 말하면 파동의 시작 위치를 바꿈.
  • 0 = 기준 위상(sin 파형)
  • 1 = 180도 뒤집힌 위상(-sin 파형)
  • PSK는 진폭이 조금 흔들려도 위상 차이를 보면 되니까 상대적으로 안정적

다만 PSK도 기준 phase를 알아야 한다.
수신측이 "이게 원래 0° 기준에서 얼마나 돌아간 건지"를 비교해야 하기 때문. 그래서 기준을 잡는 일이 중요. 여기서 바로 이어지는 게 DPSK

DPSK

  • 이전 phase와 비교해서 phase가 바뀌었는지로 판단 DPSK는 절대 phase를 직접 보지 않는다. 이전 신호의 phase와 비교해서 바뀌었는지 안 바뀌었는지를 본다.

처음 phase를 0°라고 잡고, 비트열이 0 1 1 0이면 이렇게 된다.

초기 phase: 0°

bit 0 → phase 유지 → 0° bit 1 → phase 180° 변경 → 180° bit 1 → phase 180° 변경 → 0° bit 0 → phase 유지 → 0°

표로 보면

bit: 0 1 1 0 phase: 0° 180° 0° 0°

여기서 중요한 건, 1 = 항상 180° 파형이 아니라는 것. 1은 이전 phase에서 바꾼다는 뜻

QPSK

  • Quadrature Phase Shift Keying.
  • phase를 4개 사용한다.
  • 1 symbol이 2bit를 표현한다.
  • 예: 00, 01, 11, 10을 서로 다른 4개의 phase에 매핑한다.
  • BPSK보다 bandwidth efficiency가 좋다.
  • 단점은 phase 상태가 늘어나므로 수신측이 더 정밀하게 phase를 구분해야 한다는 점이다.

OQPSK

  • Offset QPSK.
  • QPSK의 변형이다.
  • I 성분과 Q 성분이 동시에 바뀌지 않도록 한쪽을 반 symbol time만큼 지연시킨다.
  • 일반 QPSK에서는 I/Q가 동시에 바뀌면 180° phase jump가 생길 수 있다.
  • OQPSK는 변화 시점을 어긋나게 해서 큰 phase jump를 막고, phase 변화 폭을 줄인다.
  • 결과적으로 신호 변화가 더 부드럽고, 무선 송신에서 증폭기 비선형성에 더 강하다.

modulation schemes 성능 비교

핵심 기준은 두 개

  1. Bandwidth → 얼마나 넓은 주파수 대역을 먹는가

  2. Noise / Bit error rate → 잡음이 있을 때 얼마나 덜 틀리는가

Digital-to-Analog Modulation 성능 비교

  • ASK/PSK의 bandwidth는 bit rate와 직접 관련된다.
  • FSK는 서로 다른 frequency 간격이 필요하므로 bandwidth 부담이 생긴다.
  • 노이즈 성능은 대체로 ASK < FSK < PSK 순으로 좋다.
  • PSK/QPSK는 ASK/FSK보다 BER 성능이 좋은 편이다.
  • MFSK, MPSK는 tradeoff가 따른다.
    • 한 symbol에 더 많은 bit를 담을 수 있어서 bandwidth efficiency는 좋아진다.
    • 대신 구분해야 할 신호 상태가 많아져 noise에 더 취약해진다.

3-5 QAM

  • ASK와 PSK를 합친 쪽
  • 진폭도 바꾸고 위상도 바꿔서 한 번의 신호 상태에 여러 비트를 담음
  • 예를 들어 단순한 ASK/FSK/PSK는 보통 한 symbol에 1비트만 담는다고 보면 되는데, QAM은 한 symbol에 2비트, 4비트, 6비트 같은 식으로 더 많이 담을 수 있다. 그래서 대역폭 효율이 좋아짐. 대신 구분해야 하는 신호 상태가 많아지니까 노이즈에는 더 예민해진다

예를 들어 16-QAM이면 symbol 상태가 16개야.

16-QAM: 서로 다른 신호 상태 16개 = 2^4 = 한 symbol에 4비트 표현 가능

  • QAM의 장점

  • 같은 시간에 더 많은 bit를 보낼 수 있어서 bandwidth efficiency가 좋아진다.

  • 단점

  • 신호 상태를 많이 만들수록 각각의 상태들이 서로 가까워져 노이즈 발생이 늘어남.

신호 상태 적음: 점들 사이가 멀다 → 구분 쉬움 → noise에 강함

신호 상태 많음: 점들 사이가 가깝다 → 구분 어려움 → noise에 약함

QAM은 보통 constellation diagram으로 설명한다. 각 점 하나가 하나의 symbol

16-QAM 예시:

        Q
    •   •   •   •
    •   •   •   •
    •   •   •   •
    •   •   •   •
        └────────→ I
원점에서 점까지의 거리 = 진폭 amplitude
원점에서 점까지의 각도 = 위상 phase

I, Q = 좌표 성분
amplitude = (I² + Q²)
phase = atan(Q / I)

4. Analog data -> Digital signal

연속적인 아날로그 파형을 어떻게 0과 1의 디지털 신호로 바꾸냐

  • 이걸 Digitization이라 한다.
  • 대표방식: PCM, Delta Modulation

4-1 PCM(Pulse Code Modulation)

PCM은 세 단계

  1. Sampling
    • 아날로그 사인파 특정 간격마다 점찍기
    • Sampling theorem: 아날로그 파형을 충분히 자주 찍으면, 찍은 점들만 가지고도 원래 곡선을 다시 그릴 수 있다
      • 최고 주파수 = B
      • 필요 sampling rate > 2B
    • PAM은 Sampling 직후의 상태, sample을 pulse 높이로 표현한 것
  2. Quantization
    • 디지털 시스템은 무한히 세밀한 값을 그대로 못 다뤄. 그래서 가까운 정해진 단계(quantized code numbe)로 반올림

    • Quantization error 반올림 해서 생기는 정보 손실

    • level을 많이 두면 오차는 준다

    • 하지만 level이 많아지면 각 sample을 표현하는 bit 수도 늘어나.

    • PCM bit rate = sampling rate × sample당 bit 수

    • ex:

    • 8000 samples/sec × 8 bits/sample

    • = 64000 bits/sec

    • = 64 kbps

  3. Encoding
    • Quantization된 숫자를 binary code로 바꾸는 거
    • 1 → 0001
      • 예: 16 levels = 2^4 → sample당 4bit.
    • 여기서 중요한 건, PCM의 Encoding은 Manchester나 NRZ 같은 line encoding이랑 다르다는 것.

Nonlinear Coding

  • Linear quantization은 amplitude 전체 구간을 같은 간격의 level로 나눈다.
  • Nonlinear coding은 amplitude 구간별로 quantization 간격을 다르게 둔다.
  • 작은 amplitude 근처에는 level을 촘촘하게 배치해 작은 신호의 quantization error를 줄인다.
  • 큰 amplitude 쪽은 level 간격을 넓게 둬도 상대적으로 체감 오차가 작다.
  • 음성 신호처럼 작은 신호 품질이 중요한 경우에 유리하다.
  • 관련 개념으로 companding이 있다.

4-2 DM(Delta Modulation)

  • Delta Modulation은 analog signal을 계단형 staircase function으로 근사하는 방식이다.
  • sample 값 자체를 저장하지 않고, 이전 근사값보다 올라갈지 내려갈지만 저장한다.
  • 올라가면 1, 내려가면 0으로 표현한다.
  • 각 sampling interval마다 1bit만 생성하므로 PCM보다 구조가 단순하다.
  • 단점은 신호가 급격히 변하면 계단이 따라가지 못하는 slope overload distortion이 생긴다는 점이다. -> ADM으로 완화 가능
  • 신호가 거의 평평할 때도 계단이 위아래로 흔들리면서 granular noise가 생길 수 있다.

추가자료 ADM(Advanced Delta Modulation)

  • slope overload distortion 완화
  • DM은 step size가 고정되어 있다.
  • ADM은 변화 방향에 따라 step size를 바꾼다.
  • 같은 방향이 연속되면 신호가 급하게 변한다고 보고 step size를 키운다.
  • 방향이 바뀌면 신호 변화가 완만하거나 꺾였다고 보고 step size를 줄인다.
  • p = 3/2, q = 2/3 이므로 step size는 커졌다가 줄면 원래 크기로 돌아올 수 있다.
  • ADM은 DM보다 원래 데이터와의 오차를 줄일 수 있다.