minzzl

8강. [CH-02 Physical layer] Digital(data) to Analog(signal) 본문

전공공부/데이터통신

8강. [CH-02 Physical layer] Digital(data) to Analog(signal)

minzzl 2022. 12. 11. 15:51
728x90
반응형

이번 시간에는 디지털 데이터를 아날로그 시그널로 바꾸는 방법을 알아보겠습니다.

 

그 전에 다시한번 정리해보겠습니다.

우리는 데이터가 전송되기 위해서는 반드시 시그널로 바뀌어야한다고 배웠습니다. 그 후에 아날로그 시그널을 전송하는 방법과, 디지털 시그널을 전송하는 방법을 배웠습니다. 

 

아날로그 시그널을 전송하는 방법은 아주 간단했습니다. 유한개의 신호 컴포넌트들도 구성되기 때문에 교류 전압월 여러개를 전송하기 위한 전깃줄을 달아주면 됩니다. 

디지털 시그널도 이와 비슷했습니다. DC 컴포넌트가 포함되는 경우가 많았고 이 경우에는 기저대역 전송, 전용선을 통한 baseband transmission을 해야했습니다. 디지털 시그널은 푸리에 시리즈에 따라 무한의 대역폭을 가진 아날로그 시그널이기에, 전용선의 대역폭이 무한하지 않더라도 매우 커야했습니다. 만약에 전용선이 허용하는 대역폭이 그리 크지 않다면, 디지털 시그널을 직접 전송하는 것 대신에 이와 유사한 아날로그 시그널로 바꾸어 전송을 해야합니다. 

만약 전용선 자체를 사용할 수가 없는 경우라면, 즉 보내는 시그널에 DC 컴포넌트가 있어서는 안되는 상황이라면 광대역 전송을 해야합니다. 대부분의 라인 코딩 알고리즘을 통해 나온 디지털 시그널은 DC 컴포넌트를 포함하기에 이경우 디지털 시그널로 보내는 것을 포기하고  아날로그 시그널로 바꾸어 전송해야합니다.

 

본론으로 돌아가 이제 디지털 데이터를 아날로그 시그널로 바꾸는 방법에 대해 알아보겠습니다. 

 

디지털 데이터를 아날로그 시느널로 바꾸는 방법은 3가지가 있습니다. 진폭 변조(ASK), 주파수 변조(FSK), 위상변조(PSK), 구상진폭변조(QAM) 인데요, 이들에대해 알아보겠습니다.

 

 

진폭변조(ASK)

 

우리가 전송에서 사용하는 아날로그 시그널은 주기가 있는 아날로그 시그널을 의미한다고 개요에서 말씀드린 적 있습니다. 따라서 디지털 데이터를 아날로그 시그널로 바꾸기 위해서 생각할 수 있는 가장 단순한 방법은 0혹은 1에 어떤 흔들림을 각각 대응 시키는 것입니다. 

이해가 잘 가지 않으신다면 아래의 그림을 통해 확인해봅시다.

8-1 이진 ASK

이와 같이 디지털 데이터를 전송선에 올리기 전에, 변조용 시그널과 합쳐줍니다.

8-2 단순한 2진 ASK

 

그러면 결과적으로 그림에서처럼 아날로그 시그널로 변하게되는 것입니다. 이건 가장 단순한 이진 ASK입니다. 0을 의미하는 신호는 0 볼트이고, 1을 의미하는 신호는 특정 볼트 값을 가지는 것이죠. 

여기에서 만약 아날로그 신호의 voltage level을 세분화 할 수 있다면, 아래와 같이 하나의 시그널 엘리먼트로 여러개의 비트를 보낼 수도 있습니다.

 

8-3 voltage level 구분이 4종료인 2진 ASK

그런데 여기서 의문점이 들 것입니다. 현재 이 글의 목적은 디지털 데이터를 아날로그 시그널로 바꾸는 것이 주 목적이었습니다만, 8-1의 그림을 보면 디지털 시그널을 아날로그 시그널로 바꾸고 있는 듯합니다.

 

그래서 여기에서 짚고 넘어갈 것이 있습니다. 컴퓨터는 모든 데이터를 디지털로 저장합니다. 이것은 결국 단순히 플립플롭이 전류의 흐름 상태를 유지하고 있는 것뿐입니다. 전류의 흐름상태를 유지한다는 것은 전류가 흐르거나 흐르지 않거나를 유지한다는 것입니다. 즉 어떤 데이터가 0혹은 1로 저장이된다면, 그 데이터 저장 소자에 연결된 전깃줄에는 반드시 low 혹은 high의 전압이 걸려있습니다. 그런데 전깃줄에 전압을 걸어서 실제로 전송하는건 시그널입니다. 그렇다면 이건 데이터일까요, 시그널일까요?

하고 싶은 말은 데이터와 시그널의 구분이 애매하고 큰 의미도 없습니다. 예를들어 메인메모리에 있는 특정 몇 비트를 아날로그 시그널로 전송해야한다고 가정해봅시다. 그러면 결국 메인 메모리의 특정 몇 비트를 저장한 플립플롭들의 출력을 8-2의 변조 장치에 연결하는 것입니다. 물론 이것을 하는 것은 CPU가 스스로 하겠지만요.. 어찌되었든 변조장치 입장에서 입력으로 들어오는것은 데이터인지 시그널인지 구분하기가 애매하고 상관도 없습니다. 

 

사실 여기서 라인 코딩이라는 이름이 생겨나기도 했습니다. 디지털 데이터를 전송하기 위해 직접 전깃줄로 이었더니 3가지 문제(기준선 흔들림, 시간 동기화, DC 컴포넌트 문제)가 생기더라는 것이죠. 그래서 회선 자체에 걸리는 전압을 어떤 알고리즘을 이용해 변환하자라는 아이디어가 나왔고 결국 이게 말 그대로 라인 코딩인 것입니다.

 

처음부터 해당 부분에 대해 크게 짚고 넘어가지 않았던 것은 데이터와 시그널의 구분이 상당히 애매하기 때문입니다. 위 이야기는 결국 디지털 데이터는 디지털 시그널과 같다는 의미를 내포하기도 합니다. 하지만 디지털 데이터가 유의미하게 전송되기 위해서느 ㄴ반드시 라인코딩을 거쳐 약속된 형태의 시그널로 바뀌어야하기에 우리가 앞서 이야기한 데이터와  시그널의 의미에서는 디지털 데이터가 디지털 시그널과 같다는 말은 분명 틀린 것입니다.

이러한 것들이 처음 접하는 사람으로서 너무나도 당황스럽게 느껴질 수도 있습니다만, 7강까지 달려 오신 분들이라면.. 이해가 가시겠죠..?

그러리라 믿습니다..

 

주파수변조(FSK)

 

그 다음은 주파수 변조를 통해 디지털 데이터를 아날로그 시그널로 바꾸는 방법입니다. 

8-4 주파수 변조

그론데 이 방식은 사용되지 않습니다. 왜냐하면 똑같은 데이터를 전송하기 위해 더 많은 대역폭을 필요로 하기 때문입니다. 위의 진폭변조와 비교해본다면 진폭으로 구분하기에 주파수는 특정 값만 가지면 됩니다. 물론 정확히 특정 주파수만 가지는 것은 오차를 수용할 수 없어서, 특정 대역폭을 가지기는 합니만, 주파수 변조의 경우 전혀 다른 2개의 주파수의 신호를 구분하기 위해 더 많은 대역폭을 필요로합니다.

 

따라서 같은 비율로 같은 정보를 전송하는데 필요로하는 대역폭이 더 많다는 것은 낭비이기 때문에 이 방법을 주로 사용하지는 않습니다.

 

위상 변조(PSK)

또 다른 방법이 위상을 변조하는 것입니다. 최대 진폭수나 주파수는 일정한 상태에서 신호의 위상들로 여러개의 신호를 구분합니다.

 

구상 진폭 변조(QAM)

구상 진폭 변조는 ASK와 PSK를 조합하여 수 많은 변형조합을 만들어낼 수 있게한다.

 

 

이렇듯 진폭과 위상을 섞어서 조합을 만들어내는 이유는 무엇일까요? 하나의 시그널 엘레멘트를 보낼 때 더 많은 비트를 보낼 수 있기 때문입니다.

 

만약 2개의 voltage 준위를 가지도록한다면, 하나의 시그널 엘리멘트가 의미하는 것은 0 혹은 1일수 밖에 없어서 1비트가 전송됩니다. 그런데 만약 4개의 voltage 준위를 가지도록한다면, 하나의 시그널 엘리멘트가 의미하는게 4가지이므로 00,01,10,11 을 의미하도록 지정해서 2개의 비트씩 보낼 수 있습니다. 그러나 이러한 방식의 한계도 존재합니다. 이렇게 voltage 준위나 위상 준위들을 엄청나게 많이 구분하면, 하나의 시그널 엘리멘트를 전송하는데 엄청나게 많은 비트를 보낼 수 있을거라고 생각 할 수도 있지만 실상은 아닙니다.  노이즈가 존재하기 때문입니다. 너무 많이 세분화 해놓으면 그만큼 노이즈에 취약해집니다.

 

그리하여 하나의 시그널 엘리멘트를 보내는데 최대한 많은 비트를 보낼 수 있게하기 위해 진폭과 위상을 섞어 조합을 만들어내는 것입니다.

예를들어 voltage 레벨을 8개로 구분하고나서 위상 변조는 사용하지 않는다면, 하나의 시그널 엘리멘트당 3비트를 보낼 수 있지만 여기에 위상 변조도 추가로 사용해서 위상도 8개로 구분한다면, 하나의 시그널 엘리멘트 당 6비트를 보낼 수 있게되는 것입니다.

 

 

728x90
반응형