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
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-L과 NRZ-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개나 쓰니까.
- 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<=Ln
- 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)
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개하고 자르는 감성.