본문 바로가기
컴퓨터 네트워크

[network] 디지털 데이터를 디지털 신호로 변환하는 방법 Line coding, Block coding, Scrambling

by youzinnnnn 2025. 1. 6.

Digital to Digital conversion

데이터를 전송하기 위해서는 디지털 신호 또는 아날로그 신호로 변환되어야 함.

변환 방식은 아래와 같다

  • line coding : 디지털 데이터를 디지털 신호로 변환하는 과정
  • block coding : 오류 검출 및 동기화에 특화된 방식
  • scrambling : 추가 비트 없이 데이터 순서를 변경하여 전송

line coding에 대한 간단한 개요를 먼저 알아보고

사용되는 요소들, 문제점과 line coding의 종류를 알아보겠당

그 다음에 block coding과 scrambling도 ... 

 

Line Coding 

  • 디지털 데이터 -> 디지털 신호 변환
  • 데이터가 컴퓨터 메모리에 비트 시퀀스로 저장된다고 가정.
  • 일련의 비트를 디지털 신호로 변환
  • 디지털 데이터가 Sender에서 인코딩, Receiver에서 디코딩 됨.

Line Coding : Data elements Vs. Signal elements

데이터 통신의 주요 목표는

= Data elements를 전송하는 것

 

Data elements : 정보를 표현할 수 있는 가장 작은 개체 - bit

Signal elements : 데이터 요소를 전송하는 디지털 신호의 가장 짧은 단위(시간단위)

 

몇개의 데이터를 몇개의 신호로 보낼 수 있는가?!?!?가 기준이 되어 데이터통신을 측정한다.

  • r : 각 신호 요소가 전송하는 데이터 요소 수의 비율
  • r = data elements의 수 / signal elements의 수

 

Data rate vs. Signal rate

Data rate 1초에 몇개의 데이터를 보낼 수 있는가 (단위 : bps)

Signal rate 1초에 몇개의 시그널을 보낼 수 있는가 (단위 : baud)

 

데이터 통신의 목표는 Data rate(N)을 높이고,Signal rate(S)을 낮추는 것

signal rate⏬ → 대역폭⏬, 신호의 전달 속도를 높이면 Data rate도 올라감

data rate, bandwidth는 비례 관계

S = N/r

S: signal rate

N: data rate

r: data elements의 수 / signal elements의 수

 

 

Line coding의 문제점

1. DC Component (직류성분)

2. Self-Synchronization (자기 동기화)

 

1. DC Componet

신호가 양, 음을 왔다갔다하면서 진폭의 평균이 0이 되어야하는데,

0이 아니라면? 이때 DC성분을 가진다고 말한다.

 

DC 성분이 들어오게 되면 전압이 게속 누적되면서 전압의 기본값을 높이게 된다...

이렇게 되면 값을 인식하기 어려워지고, 낮은 주파수(저주파)는 통과할 수 없게 된다...

 

2. Self-Synchronization

받은 신호를 올바르게 해석하려면,

보낸자와 받은자의 비트 간격이 정확히 일치해야 한다.

서로 맞지 않게 되면, 의도한 신호와 다르게 해석될 수 있다.

보낸 사람은10110001로 보냈으나,

받은 사람이 보낸 사람보다 짧은 Bit duration을 가져서

110111000011로 해석하고 있다.

 

 

Line coding의 종류

 

NRZ와 RZ

NRZ는 Non Return to Zero라는 뜻으로,

0으로 돌아가지 않음을 의미한다

즉, 하나의 데이터를 표현할 때 한가지 전압을 사용하는 것이다

 

반대로 RZ는 하나의 데이터를 0으로 표현하기 위해 전압이 음에서 0으로 한번 변화한다.

 

 

Unipolar와 Polar방식

Unipolar 방식은 1일때 양의 전압, 0일때 0의 전압을 갖는다.

매우 비싸서 사용하지 않는다.

  • 1일때, 양의 전압
  • 0일때, 0의 전압

Polar 방식은 양의 전압과 음의 전압 두가지를 사용한다

Polar 방식에는 NRZ, RZ, Manchester, differential Manchester가 있다...

 

 

Polar - NRZ

 

NPZ - L

  • 1일때, 음의 전압
  • 0일때, 양의 전압

NPZ - I

  • 전압의 변화에 따라 전압값이 결정
  • 비트의 값이 1이면 전압이 변화됨
  • 1이 반복되는 경우, 직류성분을 제거할 수 있음
  • 0일때는 제거하지 못하기 때문에, 반쪽짜리 성공

단점

  • Baseline wandering
  • DC component
  • Synchronization
  • Signal rate

Polar - RZ

+, -, zero 3가지 값을 사용한다. 지금은 사용하지 않는 방식

  • 1일때,
    음의 전압 → 0 → 양의 전압
  • 0일때,
    양의 전압 → 0 → 음의 전압
  • 데이터가 연속되더라도 구분할 수 있어서 직류성분 제거 가능
  • 각 비트의 중간에 신호가 0으로 가고 다음 비트가 시작될 때까지 신호 유지
  • 하나의 데이터를 표시하기 위해 두번의 신호를 보내야 함
  • 중간중간 0을 섞어줘야하므로 다른 방식에 비해 더 복잡

 

Polar - Manchester

Manchester = RZ + NRZ-L

전압이 중간중간 0을 거치지 않고, 비트와 비트 사이의 변화로 동기화를 수행한다

당연히 직류성분도 제거 가능. NRZ-L 방식의 단점을 해결하였다

단점은 하나의 데이터에 2개의 신호를 줘야한다는 점

  • 1을 보낼 때,
    음의 전압 → 양의 전압
  • 0을 보낼 때,
    양의 전압→ 음의 전압

 

Polar - Differential Manchester

Differential Manchester = RZ + NRZ-I

비트값은 처음에 결정된다.

NRZ-I 방식과 순서만 바뀜

다음 비트가 1이면 변화를 주지 않고, 0이면 변화를 준다

비트값이 바로 전 비트값에 의해 다를 수 있다는 것을 주의

NRZ-I 방식의 단점을 해결

 

 

Block Coding

  • 동기화나 오류 검출에 특화된 방법
  • line coding과 다르게 여분의(redundancy) 정보를 더 포함한다.
  • line coding의 성능을 향상시킬 수 있다
  • 일반적으로 블록 코딩은 m비트의 블록을 n비트의 블록으로 변경하며, m < n
  • 블록 코딩(block coding)은 mB/nB 부호화 기법이라고 한다
  • 종류 - 4B/5B(4이진/5이진), 8B/10B(이진 8개/이진 10개)
  1. Division 나누기
    m비트의 그룹으로 나눈다. 원래는 4비트 그룹으로 나뉨
    ex) 4B/5B (m=4, n=5)
  2. Substitution 치환 대체
    m비트의 블록을 n비트의 블록으로 대체 n > m
    ex) 4B/5B (m=4, n=5)
  3. Combination 조합
    n개의 비트 그룹을 결합하여 스트림 형성

 

Block Coding : 4B/5B

4bits 블록5bits 블록으로 대체한다

NRZ - l 방식의 문제점을 해결할 수 있다

  • 1이라면 전압을 반대로 바꿔주었는데, 1이 반복되는 경우 전압이 바뀌는 규칙 때문에 직류 성분(DC component)를 제거할 수 있었지만, 0이 반복되는 경우 직류 성분이 그대로 존재
  • 직류 성분이 나오지 않게 비트를 하나 추가하여 해결하는 것이 4B/5B 방식
  • 기존 데이터에 0or1을 하나 추가X, 5비트를 사용해서 데이터를 다시 표현함

 

 

Scrambling

  • 추가비트 없이 기존 데이터를 섞는 것 (bit의 길이가 같도록)
  • 2가지 방법이 있다  
    1. B8ZS (Bipolar with 8-zero substitution)
      8개의 0을 만나면 Violation을 2번 일으키면서 신호를 섞는다.
      만약 가장 최근에 찍힌 0이 아닌 신호가 +였다면 (+ - 0 - +)로 2번의 Violation,
      0이 아닌 신호가 -였다면 (- + 0 + -)로 의도적으로 2번의 Violation을 일으켜서 섞는다.
    2. HDB3 (High-density bipolar 3-zeros)
      4개의 0이 지속되면 의도적으로 Violation. 신호에 따라서 000V혹은 B00V로 변환
      직전 Scrambling (Substitution) 이후에 0이 아닌 펄스의 개수가 짝수 → B00V로 대체