2월 13, 2024

다양한 인코딩 방식 알아보기 (digital data -> digital signal)

우리는 데이터를 전송할 때 0과 1로 이루어져 있는 bitstream으로 전송을 하게 된다. 그래서 우리가 신호를 전달하고 싶다면 이러한 신호를 먼저 2진수의 stream으로 바꾸고 그것을 다시 신호로 바꾸어 전달이 되는 것이다. 여기서 이러한 신호를 bit 형태로 바꾸어 전달하고 수신해야 하기 때문에 우리는 encoding, decoding의 방식이 필요하다. 

 

오늘은 다양한 encoding(인코딩) 방식에 대해서 알아보고자 한다. encoding은 말 그대로 data를 signal로 바꾸는 것을 의미하고 data에는 디지털 데이터, 아날로그 데이터가 있으며 signal에도 디지털 시그널, 아날로그 시그널이 있기 때문에 총 인코딩의 종류를 보면 다음과 같이 5개가 있다는 것을 알 수 있을 것이다.

 

1) digital data -> digital signal

2) digital data -> analog signal

3) analog data -> (digital data) -> digital signal

4) analog data -> (digital data) -> analog signal

5) analog data -> analog signal 

 

원래였다면 4개여야 하지만 아날로그 데이터의 경우 이를 디지털 데이터로 바꾸어서 시그널로 전송할 때가 있기 때문에 이렇게 총 5가지 경우가 있다.

 

마지막 5번의 경우에는 집전화와 전화국 사이의 telephone network가 대표적인 예시라고 할 수 있다. 그런데 요즘은 거의 대부분 컴퓨터 내부에서 처리되니까 대부분 digital data로 바뀌는 과정을 거친다고 볼 수 있다. 


오늘은 위 다섯 가지 종류 중 1번 디지털 데이터를 디지털 시그널로 변환시키는 다양한 encoding 방식에 대해서 알아보도록 하겠다.

 

디지털 데이터를 디지털 시그널로 변환시키는 데만 해도 정말 다양한 encoding sheme이 존재한다. 다시 말해서 0과 1로 받은 01010....로 구성된 bitstream을 다양한 encoding 방식을 사용하여 다양한 스타일의 디자털 시그널로 전환시킬 수 있는 것이다.

 


출처: Data and computer communication 10th chapter 5

 

위에 보이는 방식이 디지털 데이터에서 디지털 시그널로 인코딩 하는 다양한 방식이다. 


먼저 위 그림의 방식을 살펴보기 전에 과거에 잘 사용하던 RZ(return to zero) 방식에 대해서 알아보겠다. 

 



RZ 방식 예시 :출처 위키피디아

RZ는 return to zero의 약자로 하나의 비트타임이 끝날 때 항상 0으로 돌아와있다는 것이 가장 큰 특징이다. 위 그림에서 볼 수 있듯이 한 비트타임이 끝나면 0으로 복귀해있다는 것을 알 수 있을 것이다. 이러기 위해서는 비트타임의 중간부터는 0으로 되돌아오는 시도를 하게 된다. 따라서 RZ의 인코딩 방식 중 절반은 0으로 되돌아오는 데 사용하고 나머지 절반에서만 데이터를 표현. 여기서 0이 positive pulse를 나타내는지 1이 positive pulse를 나타내는지는 문제에 따라 달라질 수 있는 것 같다. 더 중요한 것은 RZ는 항상 한 비트타임이 끝나면 0으로 돌아온 다는 것이다. 하지만 이 방식은 단점이 더 커서 이제 더이상 잘 사용하지 않는다.


그래서 현재 잘 사용하고 있는 것은 NRZ 방식이다. Nonreturn to Zero의 약자이며 RZ와는 달리 한 비트타임이 끝나고 0으로 돌아올 필요가 없는 방식을 뜻한다. 따라서 Voltage level은 한 bit interval 동안 변함없이 유지된다. positive였으면 내내 positive, negative였다면 내내 negative인 것이다. (RZ에서는 한 비트타임 중간에 볼트 레벨이 바뀐 것을 기억한다면차이점을 알 수 있을 것이다)

 

이러한 NRZ 방식에는 두 가지 종류가 있다. 


NRZ 방식의 대표적 예시 출처: Data and computer communication 10th chapter 5

1. NRZ-L: 

0일때는 무조건 positive voltage , 1일때는 무조건 negative voltage의 값을 가지고, 한 비트 pulse동안 이 값을 유지한다.

 

2. NRZ-I: 

여기의 I는 inverted라는 뜻으로, 0일때는 transition을 하지 말고. 1일때는 bit 의 시작때 transition을 하라는 방식이다. 전반적으로 NRZ의 타입이기 때문에 한 bit time 동안 내내 같은 level을 유지하고 있기는 하다. 0일때는 직전 bit level이 무엇이든지 관계없이 그냥 유지하고, 1일때는 bit interval 시작전에 0이었으면 1로 transition을 하고 1이었다면 0으로 transition을 하라라는 뜻이다.

 

그림을 보면서 이해하면 더 쉽게 이해될 것이다.

 


<multilevel binary>

다음으로 multilevel binary 방식을 알아보도록 하겠다.

multilevel binary 방식에서는 voltage level이 +, 0, - 로 이렇게 세 가지가 있다. 

 

multilevel binary의 대표적인 예시 두 가지를 살펴보겠다.



출처: Data and computer communication 10th chapter 5

1) bipolar- AMI:

0일때는 0 level을 유지하고 1일 때는 positive와 negative를 번갈아가면서 표시해준다. 예를 들어 1일 경우

최근에 선행되었던 1 bit가 negative voltage를 가졌다면 positive로 가는 것이다. 따라서 위 그림에서 +, -가 번갈아서 나오는 부분은 다 1일 경우라고 보면 되고 가운데 0 level을 유지하고 있는 부분의 data는 0인 것이다.

 

2) Pseudoternary: 

Pseduoternary는 bipolar-AMI와 0과 1의 역할이 정확히 바뀐 것이라고 볼 수 있다. 1일 때 zero voltage level을 유지하고 0일 때 positive, negative를 반복한다.

 


<biphase>

biphase는 각 bit interval이 중간에서 반드시 transition 이 있게 만들어 주는 것이다. 따라서 이 biphase encoding 방식은 한 비트타임동안 똑같은 voltage level이 적용되지 않는다.

 

Biphase 의 가장 대표적인 예시로 Manchester encoding이라는 방식이 있고 이 방식의 variation으로 differential Manchester라는 encoding 방식이 있다.

 


출처: Data and computer communication 10th chapter 5

위 그림은 무엇이 1이고 0인지 알 수 없으니까 헷갈리는 사람들은

 

출처: Data and computer communication 10th chapter 5

 

이 전체 그림의 윗부분 0과 1과 함께 보면 이해가 쉬울 것이다.

 

1) Manchester encoding:

이러한 biphase encoding은 bit time의 중간에 어떤 형태이든 transition이 있는 형태이다. 그래서 이 transition이 high->low로 가는지, low-> high로 가는지를 기준으로 encoding을 한다. 0일때는 high에서 low로 변화해야 하고 (한 비트타임의 중간에), 1일 때는 low에서 high로 변화해야 한다. 그림을 보면 이해가 쉬울 것이다. 첫 번째 0을 나타내는 bitstream에서도 high에서 low로 변화한 것을 볼 수 있을 것이다.

 

2) Differential manchester:

이 방식은 1)번 Manchester encoding의 inverted, 조금 변형된 방식이라고 할 수 있다. 이것 또한 bit time 의 중간에 transition이 있는 것은 마찬가지인데 0과 1을 구분하는 기준이 비트타임의 시작때의 transition의 유뮤이다. 

0일때는 시작때 transition을 꼭 하고 1의 시작지점에서는 transition을 하지 않는 것이 differential manchester이다. 처음 0의 시작부분에서는 시그널이 내려오면서 transition을 하였고 다음 1의 시작부분에서는 시그널이 그대로 유지되면서 transition을 하지 않은 것을 확인할 수 있다. 


이처럼 오늘은 디지털 데이터를 디지털 시그널로 변화시킬 수 있는 다양한 인코딩 방식에 대해 알아보았다. 디지털을 디지털로 바꾼다니 쉬워보이지만 여기에도 정말 다양한 인코딩 방식이 있다는 점을 알아두면 좋겠다.