Digital-to-Digital Conversion

임승섭·2023년 4월 17일
0

Computer Network

목록 보기
2/27

Digital-to Digital Conversion

digital data(0101...) -> digital signal (descrete level)

Line Coding

  • Convert binary data into digital signals

Data Element and Signal Element

  • Data element : unit of digital data. = bit

  • Signal element : unit of digital signal.

  • r : number of data elements per signal element

  • Data transmission rate : number of data elements sent in a second (bps)

  • Signal transmission rate : number of signal elements sent in a second (baud)

Q. A signal is carrying data in which one data element is encoded as two signal element. If the bit rate is 100kbps, what is the baud rate?
A. bit rate = number of data elements / s
baud rate = number of signal elements / s = 2 * bit rate = 200kbaud?


Unipolar Encoding

  • Encode one of the two binary data as 0V. 하나를 0으로 잡는다.
  • Unipolar NRZ (non-return-to-zero)
    • Bit 1 -> high
    • Bit 0 -> zero

Polar Encoding

  • Use +V, -V for encoding two binary data

  • NRZ-L(level)

  • NRZ-I(inverted)


DC Component

  • When the signal stays constant at a certain level for a long time
  • 한 bit가 엄청 많이 반복되는 경우

baseline wandering

  • baseline이란, 받은 신호의 평균 level이다.
    수신자는 baseline을 기반으로, 신호를 0과 1로 decode한다.
  • 만약 0이나 1이 오랫동안 반복된다면, baseline drifts from the average, decoding할 때 문제를 일으킨다.

Clock Drift

  • The speed of clock은 장치마다 약간씩 다르다
  • 송신자와 수신자 간 time mismatch는 decoding problem을 일으킨다. 수신자 입장에서는 언제 signal element가 끝나는지 알 수가 없기 때문이다.

Self Synchronization

  • speed of clock이 다르긴 하지만, signal이 자주 바뀌면, 수신자는 clcok을 synchronize할 수 있다.
  • If an encoding scheme enforces signal changes, the scheme is said to have the "self synchronization" property
  • NRZ-LNRZ-I는 self synchronization property가 없다. 이 둘은 DC component를 만든다.
  • 하지만, NRZ-I가 그래도 NRZ-L보다는 DC component를 발생시킬 확률이 낮아서, baseline wandering과 clock drift 관점에서는 더 좋다.

Polar Encoding

  • RZ (Return-to-Zero)
    • 1 bit를 인코딩하는데 2 signal element를 사용한다.
    • 첫 번째 element는 LOW이거나 HIGH이고, 두 번째 element는 0이다.
    • Baseline wandering은 여전히 발생한다.(High만 반복)
    • clock drift는 방지할 수 있다.

    • lower bit rate : 하나 보내는 데 signal을 2개나 쓰니까.
      • require double baud rate
    • lower accuracy : level 3개를 써야 한다.
  • Manchester, differential Manchester
    • 그림으로 보는게 더 나을 듯
    • baseline wandering, clock drift 모두 해결한다.
    • level도 2개만 사용한다
    • 여전히 속도는 문제다.

Bipolar Encoding

  • one of the two binary data is encoded as 0
  • the other is encoded using LOW and HIGH
  • AMI(Alternate Mark Inversion)
    • Bit 0 -> 0V
    • Bit 1 -> Alternate LOW and HIGH
    • Baseline wandering은 막지만, clock drift는 발생할 수 있다.

Multilevel Encoding

  • use multiple signal levels to encode data
  • Increases transmission speed
  • mBnL : m개의 data element를 인코딩하는데 n개의 signal element를 사용한다.
  • 'L'은 signal level의 개수를 의미하고 다음 문자들이 주로 이용된다
    • B(Binary) : 2 levels
    • T(Ternary) : 3 levels
    • Q(Queaternary) : 4 levels
  • 2m<=Ln2^m <= L^n
  • 2B1Q
    2B1 : 2 bit를 1개의 signal element로 표현한다. 인코딩한다.
    Q : 4개의 level을 사용한다
    앞에 나왔던 문제들은 여전히 발생할 수 있다.
  • 8B6T
    8B6 : 8 bit를 6개의 signal element로 표현한다. 인코딩한다
    T : 3개의 level을 사용한다
    • signal element는 '-0-0++' 이런 식으로 디자인된다.
    • 이 때, '+'와 '-'의 개수는 동일하거나, '+'가 하나 더 많다.
    • 개수가 동일하기만 하면 가장 좋지만, 그렇게 구현하면 개수가 안나온다..
    • 만약 '+'가 하나 더 많은 signal이 연속으로 붙으면, 두 번째 signal을 뒤집는다(reverse)

MLT-3

  • 다음 bit가 0이면, signal level 변화 x

  • 다음 bit가 1이고 현재 signal level이 nonzero면, signal level = 0

  • 다음 bit가 1이고 현재 signal level이 zero면, signal level은 the inverse of most recent nonzero level

  • Advantage
    : fundamental frequency is 1/4 of transfer rate
    다른 것들은 1/2이다...
    fundamental frequency가 뭐지..?

  • Drawback
    - self synchronization을 지원하지 않는다. (0 계속 반복되면)

    • NRZ-I보다 많이 복잡하다(level 3개, 규칙도 어렵고)

Block Coding

  • Convert m bits of data into n bits of data
  • called mB/nB coding
  • m < n
  • 목표 : self-synchronization, error detection

4B/5B

  • NRZ-I는 좋은 transmission rate(r = 1)이 있었지만,
    self-synchronization 문제가 있었다.
  • 만약 0이 계속 반복된다면, 문제가 발생한다.
  • 4B5B의 목적은, 연속적인 0을 피하는 것이다
  • 4B5B에서는, "0000"이 절대 나타나지 않는다.
  • Among 5 bits, the first 2 bits must include at least one '1' and the last 3 bits must include at least one'1'.
  • 이걸 만족하는 5-bit code는 몇 개일까? (3 x 7 = 21)
    4bit는 총 16개 있으니까 16개의 코드를 일대일로 매칭시킬 수 있다.
    그냥 표 만들면 된다.

7B/8B

  • Among 8 bits, the first 4 bits must include at least one '1' and the last 4 bits must include at least one '1'.
  • 즉, 여기서는 0이 연속으로 7개 나오지 못하게 한다.
  • 가능한 8-bit code는 15 x 15 = 225개이고,
    7bit는 27 = 128개 있으므로 일대일 매칭이 가능하다.

2B/3B -> 불가능

  • Among 3 bits, the first 1 bit must '1' and the last 2 bits must include at least one '1'.
  • 그럼 가능한 3-bit code는 3개이고,
    2bit는 4개니까 매칭할 수가 없다.

Summary

  • mB(m+1)B가 제일 적당하다. 2bit를 더 추가하기에는 속도 면에서 부담이다.
  • m > 2이면, 모든 케이스에 대해 일대일 매칭이 가능하다.
  • 100B101B vs 4B5B
    전송률은 100/101 > 4/5라서 더 좋지만, 그만큼 허용해야 하는 0 개수가 많아진다.

Q. Suppose signal is transmitted at 1M baud.
What is the data rate if NRZ-I + 4B/5B is used?
What is the data rate if Manchester Encoding is used?
A.
(1). NRZ-I는 signal과 bit가 1대1이다. 4B/5B는 전송률이 4/5이다. 5개의 bit중 4개가 진짜이기 때문이다.
그럼 signal 5개가 갈 때 bit는 4개가 간다고 보면 되니까, 0.8Mbps
(2). Manchester 는 1 bit에 2개의 signal element가 사용된다.
그럼 signal 2개가 갈 때 bit는 1개가 간다고 보면 되니까, 0.5Mbps
// 어쨌든 (1)이 더 좋긴 하지만 0이 3개까지는 나오고
그에 비해 (2)는 00조차 아예 나오지 못하도록 한다.


Scrambling

  • AMI encoding은 DC component를 없애기 위해 Alternate LOW and HIGH 방법을 사용한다.
  • 하지만 여전히 self-synchronization 문제는 발생한다. 연속된 0이 계속 이어지면 말짱 꽝이기 때문이다.
  • Scrambling은 overhead 없이 'continuous 0'을 없애준다.

B8ZS (Bipolar with 8 Zero Substitution)

  • 8개의 연속된 0이 나올 때 사용한다

00000000 -> 000VB0VB

  • V(Violation) : a non-zero level that violates AMI rule
  • B(Bipolar) : a non-zero level that obeys AMI rule

  • 4B5B같은 경우는 self-syn 하려고 bit 수를 늘려가지고 전송률이 낮아졌다.
    반면에 scrambling은 bit 수 늘리지 않고도 self-syn에 성공했다.
    하지만, 그만큼 준위를 3개나 쓰고 있다. 결국 AMI라서 가능한 것이다.
    마냥 뭐가 더 좋다고는 할 수 없다.

HDB3 (High-Density Bipolar 3-Zero)

0000 -> 000V, or 0000 -> B00V

  • After previous substitution, number of non-zero signal elements is
    odd -> 000V
  • After previous substitution, number of non-zero signal elements is
    even -> B00V

  • 0이 연속으로 여러개 있으면, 4개하고 자르는 감성.

0개의 댓글