※ 스키마?
- 라인 코딩 방식엔 다양한 스키마가 있는데, 스키마는 "라인 코딩방식의 종류" 정도로 생각하면 된다.
- 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)
- 그냥 단순히 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의 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는 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은 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 (차분 맨체스터 코딩)
- 일반 맨체스터 코딩과의 차이점이라면 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, 교차 마크 전도)
- 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는 기본적으로 AMI와 동일한 방식으로 (위, 아래로) 움직이게 하는데,
- AMI와 다르게 0일 때 1을 출력하고 1일 때 위/아래로 교차하면서 움직인다.
- 사실상 AMI와 거의 동일하다고 평가받으며, 갖고있는 특징들도 모두 동일하다.
4. Reference
'네트워크' 카테고리의 다른 글
디지털 to 디지털 전송 (5) - 보율의 개념 & 보율-데이터율 변환법 (0) | 2020.05.12 |
---|---|
디지털 to 디지털 전송 (4) - Clocking 기술 (블록코딩, 스크램블링) (0) | 2020.05.08 |
디지털 to 디지털 전송 (3) - 라인 코딩 스키마 (2) (0) | 2020.05.08 |
디지털 to 디지털 전송 (1) - 라인 코딩 개요 (0) | 2020.05.07 |
물리층 (6) - 성능 (0) | 2020.04.13 |
물리층 (5) - 데이터 전송률 (나이퀴스트, 샤넌 용량) (0) | 2020.04.12 |
물리층 (4) - 전송 손상 (Transmission Impairment) (0) | 2020.04.12 |