Encoder: 주어진 Data를 Digital signal로 encoding한다.Modulator: 주어진 Data를 Analog signal로 변환한다. Carrier signal에 정보를 담아 전달한다.
Reasons for Choosing Encoding Techniques
Digital data, digital signal
- digital-to-analog modulation 장비보다 덜 복잡하고 비싼 장비 사용
Analog data, digital signal
- 현대 digital 전송 및 전환 장비 사용 가능
- Digital Audio/Video Data
Digital data, analog signal
- 몇몇 전송 media는 analog signal만을 취급할 수 있다.
- E.g., optical fiber and 무선 media
Analog data, analog signal
- 전기형태의 Analog data는 쉽고 저렴하게 전송할 수 있다.
Digital Data, Digital Signal
Digital signal
- 불연속적이고, 분리된 전압 pulses의 연속
- 각 pulse는 signal element
- Binary data는 각 data bit를 signal elements로 encoding함으로써 전송된다.
Line encoding
- Digital Data → Digital Signal
Block encoding
- M-bit Data → N-bit Data ⇒ Line Encoding ⇒ Digital Signal
- Block encoding을 수행한 이후, Line encoding을 수행한다.
Line coding and decoding
- Encoder를 통해 Digital data를 Digital signal로 변환한다.
- 이후 Decoder에서 Digital signal을 Digital data로 변환한다.
Terminology
- Unipolar: 모든 signal elements가 같은 sign을 가지는 경우를 의미 (0,+ or 0,-)
- Polar: signal elements가 0없이 +, -만 존재하는 경우를 의미
- Bipolar: +, 0, -
- Multilevel, Multi-transition
- Data rate: signal가 초당 전송하는 bits의 rate
- Duration or length of a bit: transmittier(송신기)가 bit를 방출하는 데 걸리는 시간
- Modulation rate: signal level이 변경되는 rate (rate는 초당 signal elements를 의미하는 baud로 표시된다.)
- signal가 얼마나 자주 변하는 지를 확인할 수 있다.
- Mark and space: Mark-1, Space-0
Signal elements versus data elements
1 data element안에 1개의 signal element만 존재한다.
즉, 1 signal element당 1bit를 표현한다. (Data rate = Baud rate)1 data element안에 2개의 signal elements가 존재한다,
즉, 2개의 signal elements가 1bit를 표현하고, r = 1(Data element)/2(Signal elements)이다.
(Data rate = 2*Baud rate)2 data element안에 1개의 signal elements가 존재한다,
즉, 1개의 signal elements가 2bit를 표현하고, r = 2(Data element)/1(Signal elements)이다.
(2*Data rate = Baud rate)
Interpreting Signals
위와 같이 bits의 시작점과 끝점을 식별하여 Signal levels을 Voltage로 표현
SNR: S/N, Data rate의 증가는 Channel bandwidth을 많이 요구하게 되고,
고주파 처리를 하게 되면서 비용이 커진다.
- Data rate의 증가는 bit error rate 또한 증가시킨다.
- SNR의 증가는 bit error rate을 감소시킨다.
- bandwidth의 증가는 data rate을 증가시킨다.
Encoding schemes
성능을 향상시키는 또 다른 요소
- data bits를 signal elements로 mapping
- 제일 상단의 일반적인 digital signal를 표현하는 NRZ-L을 보면, '000...' 을 길게 보내게 되면, Sync가 맞지 않아 0이 얼마나 온 지 정확하게 모를 수도 있다.
- Manchester는 이러한 동기화 문제를 해결하는 표현 방법으로, NRZ-L or NRZI로 표현된 signal과 clock signal을 XOR연산하여, 0은 High-Low로, 1은 Low-High로 표현하는 signal을 생성한다.
- NRZ-L나 NRZI보다 signal의 변화가 많아진다. → 주파수가 ↑→ bandwidth가 넓어진다. → transmission media의 비용 증가
Line encoding에서의 요구사항
Signal spectrum
Clocking
Error detection
- Signal level에서 error를 판단해야 한다.
- signal의 변화가 없는 경우를 error로 판단한다.
Signal interference and noise immunity
Cost and complexity
- signal의 rate가 높을 수록 비용은 증가한다.
Line coding scheme
NRZ: None Return to Zero
Non Return to Zero
- digital signals를 전송하는 가장 간단한 방법은 0과 1 bits를 위한 2개의 서로 다른 voltages를 사용하는 것이다.
- Voltage level은 bit interval(bit를 보내는 시간) 동안 일정하다.
- No transition (voltage level이 0으로 돌아가지 않는다, 준위의 변화가 없다.)
- NRZ-L, NRZ-Level
Unipolar NRZ scheme
Unipolar: 극이 1개
NRZ: None Return to Zero
- 장점: 간단함
- 단점: 동기화 문제 (Synchronization), Direct Current 성분 발생
- 동기화 문제: 동일한 signal element가 길게 반복되면, receiver단에서 clock이나 다른 원인으로 signal의 정확한 구간을 나누지 못하는 문제
- DC: '1111...' or '0000...'와 같이 긴 구간 동일한 signal로 주파수의 변화가 없고, voltage level이 한 방향으로만 흐르는 경우 → 아주 낮은 주파수 성분은 지원하지 않는 통신 media에서 문제가 된다.
- 극이 있는 신호에 대해 상쇄시키는 signal을 사용하여 성분을 제거해야 한다.
Effect of lack of synchronization
Non-return to Zero-Inverted(NRZ-I)
- Non-return to zero, invert on 1(다음 bit가 1인 경우만 극의 변화)
Polar schemes (NRZ-L and NRZ-I)
NRZ-L은 여전히 동기화 문제가 발생하지만, NRZ-I는 동기화 문제가 발생하지 않는다.
Polar schemes (RZ, Return-to-Zero)
- 동기화 문제는 해결
- +, - 전압의 균형 → DC 성분 문제 해결
- 높은 signal 변화율로 인한 높은 bandwidth를 요구한다.
Biphase
- Manchester
- Differential Manchester
DC 성분이 존재하지 않는다.
- signal의 변화가 많음 → 주파수가 증가, Channel의 대역폭 증가 ⇒ 비용이 증가
Biphase Pros and Cons
Pros
- Synchronization 해결: self-clocking codes
- DC 성분이 없음
- Error detection을 수행
Cons
- bit time당 최소 1번의 전송이 있어야 한다.
- 최대 modulation rate가 NRZ의 2배이다.
Multilevel Encoding
- 2개 이상의 signal levels를 사용
- Multilevel Binary (Bipolar)
- Bipolar-AMI
- Pseudo-ternary
- Multilevel
Bipolar schemes: AMI and pseudo-ternary
AMI: 1에 대해 Alternating inversion
Pseudo-ternary: 0에 대해 alternating inversion
AMI는 bit 1의 전압에 따라 inversion을 수행하고,
Pseudo-ternary는 bit 0의 전압에 따라 inversion을 수행한다.불가능한 신호: 전압에 대해 alternatin을 수행하기 때문에 이전의 전압과 같은 부호를 가질 수 없다.
즉, 이러한 신호는 error임을 쉽게 판단할 수 있다.
- 둘 다 DC 성분은 존재하지 않지만, 0이 계속 나오거나(AMI), 1이 계속 나오는 경우(Pseudo-ternary), Sync문제는 발생한다.
Bipolar-AMI
- bit 1에 대한 sync 문제는 발생하지 않지만, bit 0에 대한 sync 문제는 발생한다.
- DC 성분이 없다.
- bandwidth가 낮다.
- error detection이 쉽다. (signal의 형태 확인)
- Pseudo-ternary 또한 AMI와 비슷한 특성(0이냐 1이냐 차이정도)
Bipolar Issues
Synchronization with long runs of 0's or 1's
- 상대적으로 낮은 data 전송 rate에서, transitions을 강제하는 추가적인 bits를 삽입할 수 있다.
- 하지만 높은 data rate에서는 역효과가 발생하기에, 높은 data 전송 rate에서는 data에 대한 Scramble 수행
NRZ만큼 효율적이지 않다.
- 3 level system은 이론적으로 log23=1.58bits를 표현할 수 있어야 한다.
- 하지만 각 signal element는 오직 1개의 bit만을 표현한다.
- 같은 bit error에 대한 3dB 더 강한 signal power가 필요하다.
Multilevel: 2B1Q
2B: 2bit, 1Q: 4level
Digital Subscriber Line(DSL)
- 2 Data elements = 1 signal element (2*Data rate = Baud rate)
Multilevel: 8B6T
Multilevel: 구간의 전압 합은 0, +1만 존재해야 한다, 8B: 8 binary bit, 6T: 6 ternary bit
8bit → 6bit로 변환 (28<<36)
- 100BASE-4T
- 첫번째 구간: 0, 두번째 구간: +1, 세번째 구간: +1
→ 두번째 구간 + 세번째 구간: "+2" (존재할 수 없음)
⇒ 세번째 구간을 invert하여 '-++-0-' = "-1" 또한 존재할 수 없는 값이지만, 송신측에서는 DC 성분이 존재하지 않고, 수신측에서는 존재할 수 없는 값임을 알고 다시 invert하여 해석한다.
Multilevel: 4D-PAM4 scheme
4D: 4차원, 5: level 수
- 1000Base-T Gigabit Ethernet
- Level 0: Error Control용, Forward error correction 사용→ 받는 측에서 error correction
- signal 분산 전송
Multi-transition: MLT-3 scheme
- 다음 bit가 0: no transition
- 현재 전압이 0 아닐 때, 다음 bit가 1: 전압 0으로 전이
- 현재 전압이 0이고, 다음 bit가 1: 전압 0이 아닌 이전 전압의 반대 전압
- 100Base-TX Ethernet
Block Coding
- 동기화 보장을 위한 Redundancy
- mB/nB encoding technique (mbit → nbit, m<n인 경우, line coding 특성에 더 잘 맞게)
- block coding 이후, line coding을 수행
Using block coding 4B/5B with NRZ-I line coding scheme
NRZ-I로도 충분히 가능하여 Data rate을 높일 필요가 없기에 사용한다.
4B/5B mapping codes: Fast Ethernet(100Mbps)
0이 연속적으로 3개 이상 나오지 않는 bit string으로 mapping (Sync 문제가 발생하지 않기 위함)
8B/10B block encoding: Gigabit Ethernet(1Gbps)
8B/10B -> 5B/6B, 3B/4B로 분리
Scrambling
Design Goals
- Have no DC component
- Have no long sequences of zero level line signals
- Have no reduction in data rate
- Error detection capability
B8ZS
- Scrambling 기법 중 하나
- Bipolar with 8-zeros substitution
- bipolar-AMI의 결점인 긴 0에 대한 Sync 문제 해결
- 00000000 -> 000VB0VB, V: Violation, B: Bipolar(+,- 균형을 맞춤)
- 북미에서 주로 사용하는 기법
Two cases of B8ZS scrambling technique
동일한 8 string에 대한 대체
- 첫번째 V: 원래 AMI에서는 + 다음이기 때문에 -가 와야 하지만, 의도적으로 +로 변경
- 첫번째 B: 앞의 V와 극을 맞추기 위한 - → DC 성분 제거
- 두번째 V: 첫번째 V와 같은 이유
HDB3 Substitution Rules
동일한 4 string에 대한 대체
Different situations in HDB3 scrambling technique
- 이전 substitution 후의 1의 개수에 따라
- Odd인 경우: 000V
- Even이거나 0인 경우: B00V
Analog Data, Digital Signal
Digitization
- Analog Data를 Digital Data로 변환하는 것
- NRZ-L로 전송할 수 있다.
- 다시 analog signal로 변환할 수 있다.
- 이러한 변환은 codec을 사용하여 가능하다.
- Pulse code modulation(PCM)
- Delta modulation
Pulse Code Modulation(PCM)
- Sampling theorem에 기반을 둠
- Pulse Amplitude Modulation(PAM) samples
- 한 cycle 내에서 2점의 값과 간격 → 2점을 연결하는 sine wave 복원 가능
analog signal
- 해당 지점에서 sample을 채취하는데, 얼마나 자주 채취해야 하는가?
- fmax∗2만큼 채취해야 한다.(bandwidth의 2배 X)
- fmax=4kHz, 2∗4K=8000번/s→125μs 단위로 sampling 수행
PCM Block Diagram
- Quantization: Analog Sample을 digital로 mapping
- Analog는 연속된 값을 가지고, Digital은 불연속적인 level을 가짐
∴ analog 값을 mapping한다는 것은 특정 level로 값을 할당시키는 것이므로 Data의 손실이 발생
- 2×4k=8000 (125μs마다 sampling) ⇒ 8bit로 전송(28 = level 수)
- 음질을 높이는 방법
- Sampling 더 많이
- level 수 증가 (bit 수를 8보다 크게)
Non-Linear Coding
Mapping 시 level의 간격을 어떻게 할지?
level의 수가 많을수록, 정교한 표현이 가능하지만 많은 bit가 필요하다.
- (a)는 level의 간격이 일정한 경우이고, (b)는 level의 간격이 일정하지 않다.
- 값이 많이 몰린 경우, (b)와 같은 방법이 효과적이다.
Delta Modulation (DM)
8×8000/s=6400kbps⇒ 수용가능한 네트워크가 필요
Sampling 시 8bit씩 전송해야 하는가? → Delta Modulation
- analog signal을 일련의 구간(step size)으로 나누어 각 구간의 근사치를 택한 뒤, 원본 신호값과의 차이를 구하여 오차의 증가 또는 감소를 결정하고, 증가/감소 상태의 변화를 전송한다.
- Step size의 결정이 중요
이를 통해 많은 data량을 전송할 필요가 없어짐
Transmission Modes
- Parallel: 여러 line을 동시에 전송
- Serial: 순서대로 전송
Parallel transmission
- clock을 일치시켜서 한 번에 여러 bit를 전송 ⇒ 전송량 증가
- n개의 통신 lines을 요구하므로 비용이 많이 든다.
- 단거리로 제한된다.
- 거리가 증가하면, sync문제, 신호의 변화 발생 (by noise, ...)
Serial Transmission
- 두 통신 devices간에 1개의 channel만 사용하여 1 bit씩 연이어 전송한다.
Asynchronous transmission
- 시간 동기화를 하지 않는데, Sync 문제를 막기 위해 "1byte"단위로 data 전송
- 각 data는 Start bit와 Stop bit를 갖는다.
- Start bit: sender가 data를 보내겠다는 것을 알리는 bit
- receiver는 해당 bit를 수신함으로써, 이제 1byte가 전송된다는 것을 인지
- Stop bit: 1byte 전송의 끝을 알리는 bit
Synchronous transmission
- 시간 동기화를 수행, data를 Frame단위로 전송한다.
- 이때, Frame이 아무리 길어도 문제가 되지 않기에 많은 data를 전송할 수 있다.
- Receiver는 frame이 전송되어오고 있다는 것을 알아야 함
- 이를 위해 Frame의 시작을 알려주는 "STX(Start of Text)"가 존재