센로그

Chapter 4. DIGITAL TRANSMISSION 본문

CS/컴퓨터 네트워크

Chapter 4. DIGITAL TRANSMISSION

seeyoun 2022. 10. 29. 23:52


◆ Chapter 4와 Chapter 5의 핵심 이미지!!

 


헷갈리는 부분.

 

Bandwidth의 최솟값은 S_ave와 같다.

(최소 그정도의 신호율을 담아낼 수 있어야 하기 때문이라고 한다.)

 

내가 이해한 바에 따르면,

S는 level로 구분하는 신호요소이고

S_ave는 신호가 한 번 역전되는 걸 나타내는 거 같다.


◆ Data element vs Signal element

  • 데이터 요소 : 실제 데이터(bit)
  • 신호 요소 : 신호. 데이터를 넣어 보내는 캐리어 느낌
r = Data element 개수 / Signal element 개수

즉, 한 신호당 몇 bit를 전송할 수 있는가? 를 의미함.

r이 클수록 통신의 효율성이 높음을 의미!!

 


◆ Data rate vs Signal rate

  • Data rate (== Bit rate) 초당 몇비트 전송? [bps]
  • Signal rate 초당 신호 몇 개? [baud]

 


◆ Digital 신호의 Bandwidth

실제 Digital 신호의 Bandwidth가 무한할지라도, 유효한 Bandwidth는 한정되어 있다!!

 

 


◆ Digital 신호 전송 시, 고려해야 할 두가지!!

  • DC component
  • self-synchronization

 


◆ DC component(Direct Current; 직류 성분)

  • 원인
    전압은 높은 곳 -> 낮은 곳으로 흐르기 때문에, 전압이 일정한 곳에서는 직류 전기 성분이 생성됨.
    즉, 양전압과 음전압의 불균형으로 DC 성분 발생함!!

 

  • 문제점
    디지털 통신에서 직류 성분은 매우 안좋음.
    직류 전기 에너지가 전선에 남아서 다음 전기신호에 영향을 주기 때문.
    -> 직류 성분을 허용하지 않는 매체도 있음!

 

  • 해결법 
    반극 전압에 의한 동일크기 역방향 직류로 상쇄!!

 


◆ Self-Synchronization

 

통신시, 기본적으로 송/수신자 간 시계 속도가 다름(신호 간격 차이남)

-> 보내는 간격과 받는 간격을 Synchronization(동기화) 해줘야 함!!

 

Self-Synchronization

추가 작업 없이 신호 자체에서 알아서 동기화 해주는 방식

- 신호 변화(역전)로 bit를 계산하는 방식으로 구현하면 됨!!

 


◆ Digital-to-Digital Conversion
: 디지털 신호로 디지털 데이터를 표현하는 법

 

- Line Coding (회선 코딩)

: 1~n 비트 -> 신호로 변환하는 것. (연속적인 비트 -> 디지털 신호로 변환)

 

- Block Coding

: m 비트 -> n 비트로 변환하는 것 (n > m)

 

- Scrambling

: synchronization 위해 (약속에 의해) 연속되는 비트 살짝 바꿔주는 것

 

 

* 라인 코딩은 항상 필요하고, 나머지는 쓸 수도 안 쓸 수도 있다.

 


◆ Line Coding Schemes

- 라인 코딩은 아래 5가지 방식으로 구분

  방식 사용 준위 예시
Line
Coding

Unipolar 한 극(+,-), 0 NRZ (non-return-to-zero)
Polar +, - NRZ NRZ-L (Level)
NRZ-I (Invert)
RZ(return-to-zero)
Biphase Manchester
Diffrential - Manchester
Bipolar +, 0, - AMI (Alternate mark inversion)
Pseudotenary
Multi-level

여러 준위 사용 2B/1Q
8B/6T
4D-PAM5 (4 Dimensional 5 Level Pulse Amplitude Modulation)
Multi-transition 여러 전이를 준위로 사용 MLT-3 (Multi Line Transition 3 Level)

 


■ Unipolar 

NRZ(non-return-to-zero) 

신호 중간에 0전압으로 돌아오지 않는 방식.

 

한 개의 전극만을 사용함

-> DC component 문제 발생

-> Synchronization 문제 발생

 

but, 문제가 많아서 Unipolar 방식은 잘 안 씀!!

 


■ Polar

+, - 두 개의 준위를 사용함(Unipolar 보다는 DC component 문제 덜함)

 

NRZ - L

준위(Level)가 bit 결정

-> 0은 +, 1은 - 이런 식으로 매칭

r = 1
S_ave = N(비트율)/2

 

NRZ - I

전이(Invert; 역전)가 bit 결정

-> 0은 앞 신호 그대로, 1은 신호 역전

r = 1
S_ave = N/2

=> 1에 대해서는 self-synchronization 가능!!

but, DC문제 있음 / self-synchronization 불가!!!


RZ

1은 +, 0은 -로 매칭. 신호 중간(한 비트구간 내)에 0 전압으로 돌아옴

r = 1/2
S_ave = N

=> self-synchronization 가능!!

but, 높은 대역폭 요구. 그리고 zero level은 안좋음(쓸데 없는 전류 흘려야 돼서)


Manchester

아이디어 : NRZ - L + RZ 

Level로 bit 결정 + 비트 중간에서 전이

-> 0은 +에서 시작, 1은 -에서 시작 이런 식으로 매칭

r = 1/2
S_ave = N

=> DC 문제 해결, self-synchronization 가능!!

 

 

Differential Manchester

아이디어 : NRZ - I + RZ

Invert로 bit 결정 + 비트 중간에서 전이

-> 0이면 위상 전이 일어나고, 1이면 위상 전이 안 일어남

r = 1/2
S_ave = N

=> DC 문제 해결, self-synchronization 가능!!

but, 높은 대역폭 요구(최소 Bandwidth가 NRZ의 두 배!!)

 ~> 비용이 많이 들고, 고속 전송에는 부적합함.

 


■ Bipolar

+, 0, - 세 개의 준위를 사용함

- "이전과 반대" 전극 사용

 

AMI

-> 0인 경우 0, 1인 경우 이전 1과 반대 극

=> DC 문제 해결, 1에 대해서는 self-sychronization 가능

r = 1
S_ave = N/2

 

pseudotenary

-> 1인 경우 0, 0인 경우 이전 0과 반대 극

=> DC 문제 해결, 0에 대해서는 self-sychronization 가능

r = 1
S_ave = N/2

 

 

 

but, 각각 0, 1에 대해서는 self-synchronization 불가

 


■ Multi-level

준위를 여러 개 사용하는 방식!

-> 신호 하나로 n개 비트를 표현할 수 있음 -> 전송 속도 굿

 

2B1Q  (신호 하나당 2bit)

8B6T (신호 6개당 8bit)

4D-PAM5

 

but, 준위가 많아지면 잡음 있을 때 신호 detection이 어려워짐.

 


■ Multi-transition

다중 전이를 사용하는 방식!

 

같은 1들이 들어갈 때 계속해서 다양한 형태로 변화를 주기 위해 필요함.

 

MLT-3

-> 0이면 앞 신호 그대로, 1이면 +,0,- 번갈아가며 표시.

 


장거리 : AMI (비동기 / 최소대역 낮음)
단거리 : Manchester (동기 / 최소대역 높음)

 


◆ Block Coding

m bit -> n bit로 변환하는 것.

변환 순서

1) Division 전체를 블록으로 쪼갬,

2) Substitution m개 bit 블록 -> n개 bit 블록으로 변환.

3) Line Coding 변환한 걸 가지고 라인코딩 함

 

 

이걸 굳이 왜 하냐? 

-> 라인 코딩의 synchronization 문제를 해결하기 위해서.

-> 오류를 탐지하기 위해서. 나중에 error detection 나올 때도 이 방법으로 추가 비트를 붙임!!

 

 

예를들어,

NRZ-I 인코딩 시 0이 연속으로 나오면 동기 문제가 발생함. 이를 해결하기 위해, 추가 비트를 붙여서

추가비트 붙인 블록(0이 연속 몇 개 이상 안나오는 조합의 블록 선별)과 원래 블록을 매칭함.

이 테이블에 없는 조합 받으면 -> 오류라고 탐지 가능!!

 

 

4B/5B와 NRZ-I

8B/10B와 NRZ-L 조합으로 같이 쓰곤 함!!

 

 

but, DC 문제가 있고 / 보내는 데이터량이 증가함. (그래도 맨체스터 보다는 baud율 낮음)

 


◆ Scrambling

0 레벨이 계속해서 많이 나타나는 경우에 synchronization을 돕기 위해서 신호를 조정하는 것.

 

B8ZS 방식 - AMI 와 같이 쓰곤 함

V(Violation) 비트 : AMI 규칙 위반 비트

B(Bipolar) 비트 : V와 균형 맞추기 위한 V의 반극 전압

 

00000000 -> 000VB0VB

 

 


◆ Analog-to-Digital Conversion
: 아날로그 데이터를 디지털 신호로 표현하는 법

두 가지 방법이 있다.

1. PCM (Pulse Code Modulation)

2. DM (Delta Modulation)

 

대부분 PCM 방식 위주로 사용함!

 


■ PCM (Pulse Code Modulation)

이 방법은 샘플링 -> 양자화 -> 부호화의 단계로 아날로그 데이터를 디지털 신호로 변환한다.

 
1. Sampling(샘플링)
- 일정 시간간격으로 아날로그 신호의 진폭값을 샘플링한다.

- fs (샘플링률) : 초당 몇 번 샘플링하는가?


그런데 샘플링 할 때, 어느정도로 샘플링 해야 원래 신호로 복구할 수 있는가?
-> Nyquist sampling rate (나이퀴스트 샘플링률)

< Nyquist sampling rate >
아날로그 신호의 최대 주파수의 2배 이상의 샘플링률을 가지면
원래 신호를 복원할 수 있다!!

bandwidth의 두 배가 아니라, 최대 주파수의 두 배임에 유의!!

 

 

2. Quantizing(양자화)
- 각각의 아날로그 샘플값들을 범위별로 매치시키자.
  -> 손실 발생!!

 

* 양자화 단계가 많을 수록/샘플링 구간의 간격이 작을수록 양자화 잡음은 줄어들고, 데이터량이 많아진다.

 

3. Encoding(부호화)

- 0, 1로 표현한다. 

 

PCM 과정에서 발생한 데이터의 비트율은 다음과 같다.

Bit Rate = 샘플링률 * log₂L

 


■ DM (Delta Modulation)

Delta 는 변하는 양을 의미한다. 이처럼 변화되는 값만 저장하자!! 하는 방식임

 

but, 급경사시 오차가 상당히 커진다.

 


◆ 디지털 신호를 실제로 운반하는 방법들

1. Parallel(병렬) 방식 (고속 전송 가능. but 고비용(회선 비용 많이 듦))
: 여러 회선을 써서 동시에 Data를 전송하는 방식.

 

 

2. Serial(직렬) 방식
: 한 회선 사용

- 직렬 비동기(Asynchronous) 방식 (저속 통신에 적합. 라디오 방송에서 사용)
: 별도의 clock 정보를 나타내는 logic/회선이 있거나 신호가 self-synchronization 가능해야 함.
: Start bit, Stop bit 사용

 


- 직렬 동기(Synchronous) 방식 (고속 통신에 적합)
: 한번 잡히고 나서 그 안에서 연속해서 데이터를 많이 보낼 때 쓰는 방법
: 송신자와 수신자가 동일 clock을 사용하기 때문에, block의 시작과 끝만 알려주면 됨!!

 

Comments