센로그
Chapter 4. DIGITAL TRANSMISSION 본문
◆ 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의 시작과 끝만 알려주면 됨!!
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
Chapter 6. MULTIPLEXING AND SPREADING (0) | 2022.10.29 |
---|---|
Chapter 5. ANALOG TRANSMISSION (0) | 2022.10.29 |
Chapter 3. DATA AND SIGNALS (0) | 2022.09.21 |
Chapter 2. NETWORK MODELS (1) | 2022.09.21 |
Chapter 1. DATA COMMUNICATIONS & NETWROK INTRODUCTION (2) | 2022.09.06 |