대이터는 0과 1의 이진 부호로 이루어져 있다.
한 글자는 ASCII 코드 7비트이다. 이것은 7개의 1비트로 이루어져 있다. 그렇다면 한 글자를 보내기 위해서는 우선 하나의 비트를 보내는 방법을 이해해야 한다.
이 때 필요한 기술이 바로 라인코딩이다.
라인코딩은 1비트를 전기적인 신호로 만드는 기술이다. 라인코딩의 대표적인 방법 중 하나는 맨체스터 인코딩이다.
맨체스터 인코딩은 0을 표시하기 위해서 전기적인 높은 신호(High) 에서 낮은 신호(Low) 로 바뀌게 하고, 1은 낮은 신호에서 높은 신호로 바뀌게 한다.
라인코딩의 이해를 위해 우선, 신호 레벨이라는 개념을 알아보자.
신호의 변화(레벨)
위 사진을 보면 신호의 변화(레벨)이 2개 레벨로 5V or 0V -> 1 or 0 의 데이터를 나타내고, 아래 사진을 보면 신호 레벨이 4개 레벨로 5V or 1.5 V or -1.5V or -5V -> 11 or 10 or 01 or 00 의 데이터를 나타낸다. 신호 레벨이란 신호의 변화할 수 있는 개수를 의미하는데 만약 2개 레벨이라면 2개로 변화할 수 있으므로 0과 1의 데이터를 표현할 수 있으며, 만약 4개 레벨이면 두 비트로는 경우의 수가 4개로 표현가능 하므로 00,01,10,11 4개의 데이터를 표현할 수 있다.
사진을 보면 위 사진 보다 아래 사진이 더 많은 비트가 있다는 것을 알 수 있다. 따라서 다음과 같은 명제가 성립된다.
-신호 레벨이 많으면, 비트전송률이 향상된다.-
비트전송률이란, 특정 시간당 보낼 수 있는 비트의 수이다. 위 예시에서도 볼 수 있듯이, 신호레벨이 2였을 때는 0,1 비트 자릿수는 하나로 전송하지만, 신호레벨이 4일 때는 00,01,10,11 비트 자릿수가 두자리로 전송된다. 따라서 신호 레벨이 많으면 한번에 더 많은 비트를 전송하게 된다.
예시 문제를 풀어보자.
ex) Q. 9개의 레벨로 표현할 수 있는 데이터 신호가 있다. 1개 신호는 몇 비트를 나타내는가?
비트 수 = log_2(신호 레벨 수)
answer = log_2(9)
log_2(9) ~= 3.17 ~= (올림수) 4
answer = 4 비트
ex) 1분당 100페이지 텍스트 문서를 다운로드 받는다. 이 통신에서 비트 전송률은?
(가정)
텍스트 문서 1페이지 = 24줄 * 80 문자 (1개 문자 = 8비트)
-> 100 페이지 * 24 줄 * 80 문자 * 8비트 = 1,636,000bps = 1.636Mpbs
ex) 4 kHz 대역폭의 음성신호를 디지털화하여 전송한다. 최고 주파 수의 2배만큼 샘플링한다. 1개의 샘플은 8비트로 표현한다. 이 때 디지털화된 음성 비트전송률은?
2배 * 4,000 * 8비트 = 64,000 bps = 64kbps
ex) HDTV 스크린은 16:9 비율로 1920*1080 해상도를 가진다. 초당 30개 프레임을 전송하고, 1개의 컬러 픽셀은 24비트로 표현한다. 비트 전송률은?
1920*1080*30*24 = 1,492,992,000 = ~= 1.5Gbps
노이즈 없는 채널에서 전송 : Nyquist formula
Bit rate = 2 Bandwidth (대역폭) log_2(L)
L : 신호 레벨
Bit rate == bps
ex) 3000Hz 대역폭 노이즈 없는 채널에서 2개의 신호 레벨로 전송한다 .최대 비트 전송률은?
2 3000 log_2(2) = 6,000 bps
노이즈 있는 채널에서의 전송 : Shannon capacity
Capacity = Bandwidth X log2 (1+ SNR)
* SNR : the power of the signal to the power of the noise, 신호대잡음비
SNR이 데시벨로 주어질 수 있음(dB)
• SNR dB = 10 log_10 (SNR)
ex) SNR비가 3162인 경우, 3000Hz 대역폭에서 전송할 경우 최대 비트 전송률은?
C = 3000log_2(1+3162) = 3000log_2(3163) = 3000*11.62 = 34,860 bps
ex) 1MHz 대역폭이 주어질 때, SNR이 63이다. 적절한 비트전송률과 신호 레벨수는?
C = B log_2 (1 + SNR) = 1M log_2(1+63) = 1M log_2(64) = 6Mbps
6Mbps를 상한값으로 가정하고, 실제(노이즈 때문에)는 4Mbps정도로 가정하면, Nyquist theorem에 의해서
- 4 Mbps = 21MHz log_2(L)
- L = 4
라인 코딩(line coding)
1비트 모양 만들기
NRZ, Manchester, 2B/1Q 등
Unipolar NRZ
V면 1 아니면 0
Polar NRZ-L and NRZ-I
NRZ-L은 V면 0 아니면 1 Unipolar NRZ의 반대다.
NRZ-L 은 단순하게 보내서 노이즈에 취약하고 속도 높이기 어렵다. NRZ-I 는 0이 계속 나온다면 문제가 발생할 수도 있다. 변화가 있으면 next bit 가 1이된다.(다음 신호가 1이면 신호가 뒤바뀐다)
NRZ-L은 여전히 동기화 문제가 발생하지만, NRZ-I는 동기화 문제가 발생하지 않는다.
NRZI (NRZ Inverted)
NRZ Inverted 라는 뜻으로 1이 나오면 transition 했다는 의미이다.
Polar RZ Scheme
NRZ (Non-Return-to-Zero) and RZ
Manchester and Differential Manchester
수신측 동기화의 용이성을 강조하도록, 비트 중간에 극성 변화가 있게한, 선로부호 방식
비트 중간에서, 하향 천이 => `0`
- 비트 중간에서, 상향 천이 => `1`
멀티레벨: 2B1Q Schem
블록 코딩
0또는 1이 길게 연속(동기화문제)되지 않도록 변환
전송방식
- 송신자 -> m 비트 그룹 -> n비트 그룹 변환 > 라인코딩 (NRZ-I) -> n비트 그룹 디코딩 ->m비트 그룹 > 수신자
예) 4B5B • FDDI, 100Mbps Ethernet, USB PD • 5비트 블록코드 내부에 반드시 1 이상의 전이가 있도록 함 • 3개 이상의 0이 연속되지 않도록 함 • 4 bit 데이터 -> 5 bit 코드 변환 • 5비트 코드 중 데이터 이외 명령 문자: Halt, Idle, Start, Quiet, Reset, Set, End 2
- 4bit가 5bit로 변해서 쓸모없는 데이터가 들어가기 때문에 전송 효율은 떨어진다
- 필요한 Bandwidth가 증가하고, 전체 신호를 보면 평균 0이 보장되지 않아서 DC가 발생할 수 있다.
데이터 전송 모드
데이터 전송은 병령과 직렬이있다.
-직렬
1. 비동기 : 데이터 + 클럭(RS-232)
• 휴지상태 + 데이터 (start + stop bit) • 문자 위주 전송 • 속도가 낮음
(휴지 상태 : 중앙 처리 장치나 주변 장치 따위의 하드웨어 장치에서 다음에 수행할 명령어와 작업을 기다리는 동안 별다른 작업을 수행하지 않고 대기하는 상태)
2. 동기 : 데이터 + 별도 클럭 신호 (맨체스터 인코딩)
• 프리앰블(preamble) + 데이터 + 포스트앰블 • 전송효율과 전송속도가 높음 • 블럭단위 전송 • 전화, 인터넷
( 프리앰블 :"누군가가 지금 막 데이터를 전송하려한다"는 의미로서 통신 시스템들이 이해할 수 있는 일련의 특정 송신 펄스를 정의한다./ 포스트앰블:자기 매체에서 각 블록의 마지막에 기록하는, 반대 방향 판독 시의 동기를 목적으로 하는 이진 숫자의 열)
3. 등시(isochronous
• Iso: 동, 등의 접두사 • 일정한 시간 간격을 유지하는 성질 • 멀티미디어 데이터 전송 분야
'데이터통신' 카테고리의 다른 글
[데이터통신 #6] switching (0) | 2023.04.17 |
---|---|
[데이터통신 #5_1] mux (0) | 2023.04.10 |
[데이터통신 #3_2] Digital to Analog _Pied Piper (0) | 2023.04.05 |
[데이터통신 #3_1] Digital<->Analog (0) | 2023.04.04 |
[데이터통신 #2] Analog (0) | 2023.04.04 |