본문 바로가기
나도 공부한다/데이터 통신

04. 디지털 전송

by 꾸빵이 2021. 4. 16.

4-1. Line Coding

 

Line Coding이란? 바이너리 데이터를 디지털 신호로 보내는 것.

  • Unipolar (단일 극성 사용, + or -)
  • Polar (양극성, +와 -)
  • Bipolar (+, -, zero)

Unipolar encoding

  • 하나의 극성을 사용하는 encoding. 가장 기초적이나 요즘엔 안 사용함.
  • 단점) DC component가 있으며 동기화가 부족해서 0이나 1이 길게 나오면 잘못 파악할 수 있음.

Polar encoding

  • 두개의 극성을 사용하는 encoding. DC component 문제를 완화함.
  • NRZ(None Return to Zero), RZ(Return to Zero), Manchester, Differential Manchester 이라는 변종이 존재함.
  • NRZ는 zero voltage로 돌아오지 않음. 즉, 항상 +이거나 -이라는 뜻. 0은 없음. NRZ-L, NRZ-I 두 가지 형식이 존재함.
    - NRZ-L(level): 0은 positive voltage, 1은 negative voltage임. DC 컴포넌트는 존재하지 않지만 여전히 동기화 문제가 남아있음. 연속적인 0과 1이 나오면 문제 발생.
    - NRZ-I(invert): 1이 나오면 다음으로 오는 voltage level을 반전시키고, 0이 나오면 바꾸지 않음. 1이 연속되는 경우는 없으므로 동기화 문제가 나아졌지만 여전히 0의 연속은 문제 발생.

  • RZ는 동기화 문제때문에 개발한 것으로 각 비트에 signal change를 줌. 세개의 레벨을 사용함.
    1은 positive-to-zero로 반은 positive, 반은 zero , 0은 negative-to-zero로 반은 negative, 반은 zero.
    장점) 동기화 문제에 있어서 가장 효율적임.
    단점) 이전의 schemes보다 대역폭이 낭비됨. 한 비트에 두번의 signal change가 발생하기 때문.

  • Manchester encoding은 RZ를 개선한 것. 각 비트 interval의 중간에서 inversion을 사용함.
    0은 positive-to-negative, 1은 negative-to-positive. RZ와 같은 동기화 레벨을 가지지만 두가지 진폭만을 가짐.

  • Differential Manchester encoding
    각 bit의 시작부분에 있는 트랜지션이 비트를 표현해줌. 0이면 시작부분을 inversion하고, 1이면 그대로 둠.
    즉, 트랜지션이 발생하면 1이고 발생하지 않으면 0임.
    비트의 중간에서 일어나는 트랜지션은 동기화를 위한 것이고 시작부분의 인버전은 bit representation을 위한 것.
    장점) 1일때는 한번의 change만 있음.

Biopolar encoding

  • 폴라+제로
  • 인코딩을 위해 세개의 voltage level를 사용함. positive, negative, zero
  • 0은 zero level이고 1은 positive, negative voltage임. 1은 번갈아가며 +,-방향으로 pulse됨. 1이 연속적이지 않을때도 alternating이 발생함.
  • AMI) 처음 나오는 1은 +, 다음은 -로 표시함. 0은 zero. 0이 연속적으로 나오면 동기화 문제가 발생함.

2B1Q encoding (이런 방식이 있다는 것만 알아두기)

  • 두개의 바이너리(2), 하나의 쿼터너리(4). 네개의 voltage를 사용함.
  • 각 레벨에 두 비트를 실어보냄. 한 pulse에 두 비트가 있는 것.

MLT-3 encoding

  • NRZ-I와 비슷하지만 -1, 0, +1 사용. 0에서는 변화가 없고 1은 이전의 것과 반대로 함.

p->zero이면 zero->positive, n->zero이면 zero->p

 

라인코딩의 특징

  • Signal level과 Data level
    signal level은 특정 시그널에 허용되는 값의 개수. data level은 데이터 종류의 개수.

 

  • Pulse rate와 Bit rate
    Pulse rate) 심볼을 전송하는데 요구되는 최소한의 시간. 1초에 pulse가 몇개를 전송하는지. 한 심볼에 여러 bit을 실어 보낼 수 있음.
    Bit rate) 1초에 몇 bit를 보낼 수 있는지.
    pulse rate와 bit rate의 관계) Bit rate = Pulse rate * log2L (밑이 2인 로그) (L은 데이터 레벨의 개수)
                                      ex) signal 레벨이 2이면 높고 낮음밖에 없으므로 한 펄스에 하나의 비트만 보낼 수 있음.
  • DC components (직류)
    주파수가 0인 경우를 말함. 부적절하여 없는게 낫다.
    DC components를 통과시켜주지 않는 장비가 있고, DC components는 라인이 있어서 부가적인 에너지를 가지는데 이것은 쓸모없기 때문이다.

 

  • Self-synchronization
    -자신을 동기화 하는 것. 시그널이 데이터를 전송하기도 하고 동기화의 기능도 함. 즉, 동기화를 위해 별도의 시그   널을 따로 보내는 것이 아니라 디지털 시그널 자체가 동기화에도 쓰인다는 것이다.
    -수신자의 bit intervals이 발신자의 bit intervals과 일치해야함. 리시버(receiver)의 클럭이 더 빠르거나 느리면 문제가 발생함.
    -동기 시스템은 sender, receiver 둘 다 클락을 사용하고 이 클락이 동기화를 사용하는 것을 말함. 오차가 있더라도 오차가 일정하면 됨.
    -비동기 시스템은 sender, reciever의 클락을 맞추지 않음. receiver가 받을 신호가 무엇인지 알아챌 수 있으면 됨.(트랜지션)

오차가 발생한 경우

4-2 Block Coding

  • 라인 코딩의 성능을 향상시키기 위해 해야하는 것. 어떤 shceme도 대역폭, 동기화 문제를 완벽하게 해결하지 못함.예를 들어 RZ는 대역폭을 반만 쓸 수 있고 속도를 반으로 줄여서 써야함.
    ->비트 스트림이 오는 것을 하나씩 따로 보내지말고 블락으로 보내자! 0이 연속으로 나오면 0이 안나오는 것으로 매핑하여 보내고 받는 쪽에서는 이 데이터를 다시 반대로 바꾸기.

1) 비트 스트림을 m개의 비트로 자름.

2) 0 혹은 1의 연속을 피하기 위해 m개의 비트블록를 n개의 비트블록로 바꿈(매핑) (m<n) 
   연속으로 0이 세개 이상 나오면 쓰지않고 버림.

3) line coding을 이용하여 n을 다시 m으로 바꿈.

 

ex) 4B/5B: 4bit을 5bit 블록으로 바꾸면 2의 4제곱에서 2의 5제곱으로 바뀜. 32개에서 0이 세개 이상 나오지 않는 16개를 고르는 것. 대역폭을 20% 더 써야한다는 단점이 있음.
ex) 8B/10B: 1024개 중에 0이 연속 세번 안나오는 256개 고르기. 4bit보다 오류가 적음.

ex) 8B/6T: 8bit를 6개의 심볼코드로 대체하기. 위의 두 케이스는 대역폭이 낭비된다는 단점이 있음. 8B/6T는 대역폭 낭비는 없지만 레벨을 더 사용함. +1, 0, -1의 세 레벨을 사용하므로 729(3의 6제곱)중에 256(2의 8제곱)을 고름.

세 레벨 중 하나를 택하는 것이므로 3의 6제곱.

 

Sampling

  • 아날로그 데이터를 디지털 전송할때 사용하는 방법. 
    작은 타임구간으로 자르는 것. 잘게 할수록 정확하나 데이터가 많아짐.
  • 아날로그 데이터를 디지털 전송하는 이유) 오류가 발생하면 재전송되고 깨지지않음. 먼 거리로 보낼때 유리함.
  • 디지털 데이터는 라인코딩과 블록코딩으로 전송이 가능함. 
  • 디지털 전송을 하려면 low pass 필터로된 wide band가 필요함. 이게 항상 가능하지는 않아서 어쩔수없이 아날로그 전송을 함.

-PAM(Pulse Amplitude Modulation)

  • 아날로그 데이터를 샘플링하여 값을 출력하는 것. PCM의 base method임.
  • 노이즈가 끼면 진폭에 변화가 생겨 잘 사용하지 않음. PCM을 더 많이 씀. 

-PCM(Pulse Code Modulation)

  • PAM로 측정한 값을 양자화하여 디지털 데이터로 만듦.( ex) 1.2->1)
  • 디지털 데이터를 binary encoding(이진수 변환)을 하고 최종으로 line coding을 함.
  • 이진수 변환할때 총 8bit으로 표현함. 최상위 bit은 음수면 1, 양수면 -으로 하고 나머지 7bit으로 크기를 나타냄. 2의 7제곱이므로 총 +128~-128로 나타낼 수 있음.

-Nyquist theorem

  • sampling rate는 반드시 오리지널 시그널의 가장 높은 주파수의 최소 2배여야함. 즉, Highest frequency의 2배.
  •  
  • 더보기
    band-pass signal을 low-signal로 바꿀 수 있음. ex) 1000~11000 -> 0~10000
    이 경우에 sampling rate는 band width의 두배라고 할 수 있음.

-Bits per sample 구하기

  • Bit>=log2N(밑이 2인 로그)인 정수.
    ex) 가장 높은 값이 7이라고 하면 7은 이진수로 111임. 3bit이 필요함. log2 7=2.xxxx=3
    이를 더 간단히 풀면 7은 2의 2제곱(4)와 2의 3제곱(8)사이에 있으므로 답은 3.

-Bit rate와 sampling rate의 관계

  • bit rate=sampling rate* number of bits per sample

4-4 Transmission Mode

  • 하부에서 디지털 전송을 할때 병렬/직렬 중 어떤것으로 보내야하나?
  • 디지털 전송은 크게 Parallel(병렬) 방식과 Serial(직렬)방식으로 나뉨. Serial은 다시 Synchronous(동기)와 Asynchronous(비동기)로 나뉨.
  • 병렬 전송) n개의 선을 사용하여 n개의 bit을 한번에 보냄. 속도가 빠르다는 장점이 있으나 비용이 많이 들고 동기화 문제로 짧은 거리만 된다는 단점이 있음.
  • 직렬 전송) 선을 하나만 사용함. 가격이 싸고 장거리가 가능함.
    -비동기 전송)리시버가 시그널의 리듬을 보고 정보를 추출함. signal time이 안중요함. 저렴하지만 gap이 있어 느림.
     ex) start bit에는 0을 넣고 stop bit에는 1을 넣는다고 가정할때, receiver은 이 리듬이 깨지면 데이터가 깨졌다고 판단하고 버림.
    -동기 전송) sender와 receiver의 clock이 맞춰진다고 가정함. clock이 매우 중요. 바이트 사이에 gap이 없어 빠름.

 

'나도 공부한다 > 데이터 통신' 카테고리의 다른 글

06. Multiplexing  (0) 2021.04.16
05. 데이터 통신  (0) 2021.04.16
03. 물리적 계층  (0) 2021.03.30
02. 데이터 통신과 네트워크  (0) 2021.03.14
01. 데이터 통신의 역사  (0) 2021.03.04