1. 라인 코딩 (Line Coding)
- 2진 (Binary) 데이터를 디지털 신호로 만드는 것을 라인 코딩이라고 한다.
- 만약 우리가 001011000000001이라는 데이터가 있다고 가정해보자.
- 이걸 그대로 "__-_--________-"과 같이 보내면 데이터를 효율적으로 보낼 수 있을까?
- 정답은 아니다. 이렇게 보내면 매우 비효율적이며, 수신측에서 해석도 불가능하다.
- 그래서 이 데이터를 어떠한 일정한 규격에 맞춰 변환해서 보내는 것이 바로 라인코딩이다.
- 추가로 디지털 신호를 디지털로 보내면 Baseband로 기저대역 통신한다. (이전에 배운내용)
2. 라인 코딩이 필요한 이유
1) Recovery (리커버리)
- 리커버리는 송신측에서 보낸 데이터를 수신측에서 올바르게 해석하는 것을 말한다.
- 만약에 위 예시처럼 001011이 보내지고나서 그 후에 000 ... 0이 길게 보내진다고 생각해보자.
- 그러면 이 0이 언제 시작하고 끝나는지는 알지만 그 사이에 몇 비트가 전송됐는지 알 수가 없다.
- 통신에는 Jitter(파형난조)도 있고,Distortion(왜곡) 같은 현상이 매두 자주 일어나기 때문에
- 정확히 일정한 간격으로 비트들이 전송될 것으로 생각하면 오산이다.
- 그렇다면 대체 이 사이에 몇비트가 입력됐는지 어떻게 알수 있을까? => 라인코딩이 필요함
2) DC(Direct Current, 직류) 신호란?
- 어떠한 신호가 흐르는데 그 신호가 주파수가 없이 흘러오면 그 것을 직류라고 한다. ("직진" 할 때 '직')
- 반면에 AC(Alternate Current, 교류)신호는 주파수가 존재해 사인파를 그리면서 흘러온다. ("교대" 할 때 '교')
- 그리고 우리가 어떤 신호를 전달할 땐 대부분 증폭해서 보내는데, 증폭할 때 DC성분이 붙기 마련이다.
- 그러나 우리가 1000배 증폭시키려고 한다면, 한번에는 힘들고 10배씩 세번 증폭해서 만드는데,
- 가장 처음에 증폭할때, dc_1이 붙고, 10배 증폭하면 dc_2가 생기면서 dc_1은 10dc_1이 된다. 여기에 추가로
- 한번 더 증폭하면 dc_3이 생기고, 10dc_2와 100dc_1이 생겨서, 총 100dc_1 + 10dc_2 + dc_3이라는
- 불필요하지만 엄청난 양의 신호가 만들어졌고, 이 신호들은 정보도 못담는데 대역폭만 무지하게 차지한다.
- (이전에 아날로그 신호에 대해 공부할 때, 직류신호는 Pulse가 없어서 정보를 담지 못한다고 배웠다)
- 또한 위 그림의 두 신호(직류, 교류)를 복합신호로 만들면 교류성분이 y축 윗방향으로 평행이동하게 되는데
- 진폭이 너무 커지면 일부 매체에서는 윗부분이 그냥 잘려서 saturation되어버리는 경우도 있다고 한다.
- 또, 마이크로웨이브나 변압기 같은 몇몇 전자제품은은 DC성분을 처리할 수 없다. 이렇게 문제가 많기
- 때문에 DC성분을 제거해야하는데, 그러려면 애초에 신호를 보낼때 평균지점을 0으로 맞춰서보내면된다.
- 평균이 0이면 교류신호이다. (평균이 0이 넘는, y축으로 평행이동된 신호는 푸리에변환하면 DC가 나온다)
- 근데 일반적으로 우리가 신호를 보내면 평균 점이 0이 되는 것이 보장되지 않는다 => 라인코딩이 필요함
3. 라인코딩을 평가하려면?
1) 신호레벨 : 데이터레벨 비율이 높은가?
- 신호 레벨이 데이터레벨에 비해 높을수록 더 많은 데이터를 적은 신호에 담을 수 있다.
- 위 그림을 보면 4레벨은 2레벨 신호에 비해 동일한 시간에 2배 많은 데이터를 전송할 수 있다 (bps 2배)
- 이는 나이퀴스트의 bps계산법과도 일맥상통하다. bps = 2Bit * log(level) (까먹지 말자!)
2) 펄스 Rate : 비트 Rate이 높은가?
- 펄스 한번(시간 단위)에 더 많은 비트를 보내면 시간 대비 비트수를 많이 보낸 것이기 때문에 bps가 높다
- level이 높으면 한 펄스에 많은 데이터를 실어서 보낼 수 있으므로, 사실 펄스 Rate : 비트 Rate는
- 위에서 말한 레벨 개념과 거의 유사한 개념이라고 봐도 무방하다.
- 그러나 한가지 차이가 있는데, 같은 레벨에서의 펄스Rate : 비트Rate 비교이다.
- 1번째 그래프는 1펄스당 반드시 1개의 비트를 보내므로, 펄스 : 비트 Rate = 1.0이다.
- 2번째 그래프는 2펄스당 반드시 1개의 비트를 보내므로, 펄스 : 비트 Rate = 0.5이다.
- 펄스가 잦다는 것은 그만큼 주파수가 높다는 것이다. 그 말은 곧 필요한 Bandwidth가 높다는 것이다.
3) DC 성분 유무
- DC성분은 위에서 매우 나쁜 것이므로, 전송전에 제거해야한다고 이미 말했다. DC성분이 있으면 위처럼
- 신호의 평균 점이 0이 아니라 붕 떠있는 상태로 그래프상에 그려지는데, 이렇게 라인코딩 후에 DC성분이
- 남아있으면, 그 코딩방식은 라인코딩으로서 역할을 완벽하게 수행했다고 말하기 어렵다.
4) 데이터의 자동 Clocking
- 자동 Clocking이란, 데이터를 전송할 때, 비트의 Clock(타이밍)을 맞추는 메타데이터 없이도
- 데이터 자체에서 Clock 정보를 끌어낼 수 있는 능력을 말한다. 기존의 바이너리 데이터 그 자체로는 불가능하고,
- 추가적인 라인코딩 기법들이 사용되어야한다. 이렇게 자동 Clocking을 잘하면 좋은 라인코딩 기법이다.
5) 요구되는 Bandwidth가 적은가?
- 매우 중요한 (돈과 직결되기 때문에 사실상 가장 중요한) 요소이다.
- 데이터를 전송하는데 있어서 Bandwidth (대역폭)을 적게 차지하게끔 설계해야 좋은 라인코딩 기법이다.
- (복습) : Bandwidth, 즉 대역폭은 가장 높은 주파수와 가장 낮은 주파수의 차이를 말하는데, Bandwidth가 넓은 선로는 가격이 많이 비싸다. 때문에 가장 높은 주파수와 낮은 주파수 사이의 차이를 줄여야한다.
4. 펄스Rate : 데이터Rate가 낮으면 꼭 안좋은 것일까?
- 펄스Rate : 데이터Rate가 낮으면 필요한 Bandwidth가 높아져서 선로를 설치하는 비용이 비싸진다.
- 이 말은 사실이며, 매우 치명적인 단점이다. 그러나 꼭 단점만 있는 것은 아니다.
- 펄스가 잦다는 것은 그 만큼 동일한 신호가 반복되지 않는다는 것이고, 그러면 Recovery면에서 매우 훌륭하다
- 따라서 항상 단점만 있는 것은 아니다. 어느정도 장단점이 존재하고, 조건에 맞춰 선택해야한다.
5. Reference
'네트워크' 카테고리의 다른 글
디지털 to 디지털 전송 (4) - Clocking 기술 (블록코딩, 스크램블링) (0) | 2020.05.08 |
---|---|
디지털 to 디지털 전송 (3) - 라인 코딩 스키마 (2) (0) | 2020.05.08 |
디지털 to 디지털 전송 (2) - 라인 코딩 스키마 (1) (1) | 2020.05.07 |
물리층 (6) - 성능 (0) | 2020.04.13 |
물리층 (5) - 데이터 전송률 (나이퀴스트, 샤넌 용량) (0) | 2020.04.12 |
물리층 (4) - 전송 손상 (Transmission Impairment) (0) | 2020.04.12 |
물리층 (3) - 디지털 신호 (0) | 2020.04.12 |