디지털 to 디지털 전송 (2) - 라인 코딩 스키마 (1)

네트워크

2020. 5. 7. 23:54

※ 스키마?

  • 라인 코딩 방식엔 다양한 스키마가 있는데, 스키마는 "라인 코딩방식의 종류" 정도로 생각하면 된다.
  • Uni-Polar, Polar, Bi-Polar, Multi-Level, Multi-Transition 등 다양한 스키마가 존재한다.

 

※ 몇가지 용어

  • 1) Data Rate : 초당 몇개의 비트가 전송되는가 (단위 : bps)
  • 2) Modulation Rate (Signaling Rate, Baud Rate) : 1초에 몇개의 시그널 펄스가 전송되는가
  • 이전 글에서 설명한 펄스Rate : 비트Rate를 이 글부터는 위와 같은 용어를 사용해서 지칭한다.
  • 3) Mark와 Space : Mark는 1, Space는 0을 대신해서 불릴 수 있는 용어들이다.

 

※ 스키마 비교기준

1) Signal Spectrum

[그림] 시그널 스펙트럼

  • 위는 각 코딩 방법의 주파수 대비 에너지(전압)의 그래프를 나타낸 것이다.
  • 그래프의 개형이 Gaussian이 될 수록 좋은데, 이는 신호가 고르게 분포하여 DC성분이 생기지 않음을 의미한다.
  • 왼쪽의 NRZ같은 경우는 편향된 분포를 보이는데 이는 두 신호(0, 1)가 고르게 분포하지 않는다는 것과 같고
  • 때문에 DC성분이 존재하게 된다. 또한, 주파수의 시작점과 끝지점이 왼쪽에 있을수록 좋은데,
  • (AMI와 NRZ는 같음) 이는 저주파대역일수록 선로의 가격이 저렴하기 때문이다.

 

2) Clocking (Synchronization)

  • 만약 클락킹을 위해 추가비트가 필요하다면, 데이터 이외의 추가 비트가 더 생겨서 해당 대역폭을 모두
  • 데이터만을 위해 쓰지 못하게 되고 이는 큰 낭비이다. 데이터만으로 Clocking이 가능한 것이 좋은 코딩이다.

 

3) Error Detection

  • 라인코딩 자체적으로 에러디텍션이 가능하면 좋은 코딩이다.

 

4) Noise (SNR)

  • 노이즈에 둔감한 신호를 만들어낸다면 당연히 좋은 코딩 방식이다.

 

1. Uni-Polar (단극성) 스키마

  • Uni-Polar 방식은 신호를 구성함에 있어서 [+, 0]을 쓰거나 [-, 0]을 사용하는 것이다.
  • 우리가 논리회로때 쓰는 회로는 거의 대부분이 Uni-Polar이다 (보통 5V - 0V를 사용한다)
  • 그러나 통신에서는 거의 못쓰는 스키마에 가깝다. 그 이유는 아래에서 설명한다.

 

1-1) NRZ-L (Uni - Polar)

[그림] NRZ-L (Uni - Polar)

  • 그냥 단순히 0이면 1을 내보내고, 1이면 0을 내보내는 코딩 방식이다
  • NRZ-L은 꼬임상선같은 매체를 사용하게 되면 극성이 뒤바뀌어서 0이 1로, 1이 0으로 해석된다.
  • NRZ는 Non Return to Zero라는 뜻인데 만약 0을 출력할 필요가 없다면
  • 굳이 0으로 돌아가지 않는 방법이다 (후에 RZ와 비교한다)
  • 우선 NRZ-L은 무조건 DC가 존재할 수밖에 없다. (출력으로 1이 자주 나오면 평균은 무조건 0보다 크다)
  • 그리고 NRZ-L은 Recovery가 힘들다. 계속 00000 ... 0000처럼 신호가 오면 Clocking이 불가능하다
  • 즉, NRZ-L은 실제로 써먹을 수 있는 수준의 방법이 아니다. (결과적으로 말하면 못써먹는다)

 

2. Polar (극성) 스키마

  • Polar 스키마는 신호를 구성함에 있어서 [-, +]를 사용하는 방식이다.
  • 그러나 Polar 스키마도 문제가 많은 편이다. 그나마 과거에 LAN같은 곳에서 사용했다.

 

2-1) NRZ-L (Polar)

[그림] NRZ-L과 NRZ-I

  • NRZ-L의 Polar 버전은 0을 -로 표현한다는것을 제외하고는 완전히 같다
  • 단점도 그대로 가지고 있고 여전히 못써먹는다.

 

2-2) NRZ-I

  • NRZ-I는 Non Return to Zero - Inversion으로 1을 만나면 신호를 뒤집는다. 
  • 따라서 중간에 0이 나와서 신호가 변하고 있지 않은 부분에 미세한 노이즈가 발생하면
  • 그냥 에러로 간주해버리고 무시할 수 있기 때문에, NRZ-L에 비해서 오류에 강한편이다.
  • 또한, 극성이 바뀌어 신호가 뒤집어지거나 그런 것을 고려하지 않아도 된다.
  • 그러나 DC문제는 여전하다. 1(+)과 0(-)이 비슷한 수준으로 나올 것이라는게 보장되지 않는다
  • 또한 Clocking 문제도 여전하다 (00000... 이면 신호가 안바뀌고 계속 그대로이다)
  • 결론적으로, 노이즈에 강하고 말고 할 것 없이 얘도 못 써먹는다.

 

2-3) RZ 

[그림] RZ Coding

  • RZ는 Return to Zero라는 뜻으로 1을 만나면 +을 출력하다가 다시 0을 출력하고,
  • 0을 만나면 -를 출력하다가 다시 0을 출력한다. 즉, 반드시 0을 출력할 필요가 없으면 출력하지 않았던
  • NRZ (Non Return to Zero)와 달리 RZ는 반드시 신호가 다시 0으로 가게 된다.
  • 이로서 0이 함께 자주 출력되 DC문제가 완벽하게 해결되진 않더라도 많이 덜 한편이다. (평균이 0에 가까워짐)
  • 또한 0이 나오던 1이 나오던 다시 중앙으로 돌아가기 때문에 Clocking 문제도 크게 문제되지 않다.
  • 그러나 Modulation Rate 대 Data Rate가 1/2이기 때문에 대역폭이 커야하고, 비싼 선로가 필요하다
  • 또한 세개의 레벨을 사용하기 때문에 매우 복잡한 편에 속한다. (후술할 맨체스터보다 나을 게 없다)

 

2-4) Manchester Coding (맨체스터 코딩)

[그림] Manchester Coding

  • Manchester Coding은 1이 나오면 1먼저, 0나중에 출력하고, 0이 나오면 0먼저 1나중에 출력한다.
  • 마찬가지로 Modulation Rate : Data Rate = 1/2이고,매우 높은 대역폭을 요구한다는 단점이 있다.
  • 그러나 한 클록펄스에 0과 1을 반반씩 출력하기 때문에, 클록펄스당 평균은 0이고
  • 그렇게 클락 당 출력 평균이 매번 0이기 때문에, 모든 출력의 평균은 0이고 DC문제가 완벽하게 해결된다.
  • 또한 모든 타임스텝에 Transition(값의 변화)가 생기기 때문에 마찬가지로 Clocking 문제 역시 해결되며,
  • 이러한 특징으로 인해 만약 한 타임스텝에서 트랜지션이 발생하지 않았다면 그것을 에러로 간주하고
  • 에러 디텍팅도 가능하다 (그러나 에러난 곳에 노이즈 생겨서 신호 변하고 이러면 못잡는다)
  • 최초로 쓸만한 방법이다. 실제로 아주 예전에 LAN을 구축할 때 이 맨체스터 코딩을 썼다고 한다. (지금은 X)
  • 추가로 이렇게 맨체스터 코딩같이 1개의 비트가 2개의 위상을 보이는 코딩을 Bi-Phase라고 부르기도 한다.

 

2-5) Differential Manchester Coding (차분 맨체스터 코딩)

[그림] Manchester Coding과 Differential Mancher Coding

  • 일반 맨체스터 코딩과의 차이점이라면 NRZ-L과 NRZ-I의 차이이다.
  • 맨체시터방식의 형식을 그대로 채용하되, 신호를 값에 매핑한 것이 아니라 1을 만나면 바꾸는 식으로 설계됨
  • 코딩방식의 특징은 그냥 맨체스터코딩 방식과 크게 다르지 않음.

 

3. Bi-Polar (양극성) 스키마

  • Bi-Polar 스키마는 신호로 [+, 0, -]를 모두 이용하는 것을 말한다
  • 그럼 RZ도 Bi-Polar아닌가? 라고 할 수 있는데, 조금 다른 것은 뭐냐면 RZ는 신호에서
  • 0는 선택할 수 없다 (알아서 0으로 돌아가는 것이지, 설계자가 선택 가능한 입력은 2가지이다.)
  • Bi-Polar 스키마는 선택 가능한 입력이 3가지이다. 0, +, -를 모두 선택할 수 있다 (3진법)
  • 아래 후술할 방법들은 모두 0을 선택하거나 +와 -를 교차해서 선택한다 (DC가 해결됨)
  • 그리고 한번은 위로, 한번은 아래로 내려간다는 일종의 규칙이 있는데, 이 규칙이 어겨지면
  • Violation이 발생한것으로, 에러고 간주하면 에러디텍션도 가능하다.

 

3-1) AMI (Alternate Mark Inversion, 교차 마크 전도)

[그림] Alternate Mark Inversion

  • 0을 만나면 0, 1을 만나면 한번은 위로, 그 다음은 아래로 움직임 (고를수 있는 신호가 3가지 <=> RZ와 다름)
  • 이런식으로 신호를 설계하면 반복적으로 한번은 1 한번은 0을 선택하게 되어 전체적으로 평균이 0이되고,
  • 자연스럽게 DC성분이 모두 사라지게 된다. 그러나 지속적으로 0이 나올 때, Clocking 문제가 존재하는데
  • 추후에 공부할 "스크램블링"이라는 기술로 Clocking을 해결할 수 있다. (그래서 현재 표준규격으로 쓰인다)
  • 현재 장거리 통신의 대부분은 AMI나 아래 나올 Pseudo-Ternary를 개선한 HDB3나 B8ZS등이 쓰이고 있다.
  • AMI의 경우 반드시 Mark Inversion 되어야하는데, 이를 지키지 않는 Violation 신호가 잡히면 에러디텍션 가능

 

3-2) Pseudo Ternary (의사 3진법)

[그림] Pseudo Ternary

  • Pseudo Ternary는 기본적으로 AMI와 동일한 방식으로 (위, 아래로) 움직이게 하는데, 
  • AMI와 다르게 0일 때 1을 출력하고 1일 때 위/아래로 교차하면서 움직인다.
  • 사실상 AMI와 거의 동일하다고 평가받으며, 갖고있는 특징들도 모두 동일하다.

 

4. Reference 

 

데이타통신

정보통신 분야를 이해하기 위하여 본 강좌는 데이타통신과 컴퓨터네트워크의 기본원리와 기술에 초점이 맞추어져 있다. 데이타전송기술, 데이타링크 제어, 패킷교, LAN 등을 포함하여 프로토콜과 최신 통신기술을 강의한다.

www.kocw.net