무선 링크의 특성과 CDMA 원리
무선 링크는 유선 링크에 비해 여러 가지 본질적인 어려움을 안고 있다. 가장 먼저, 전파는 공간을 이동하면서 점점 신호 세기가 약해지는데, 이는 매질을 통과할 때 발생하는 감쇠(path loss)에 기인한다. 예를 들어 벽, 창문, 사람 몸과 같은 물리적 장애물들은 전파를 흡수하거나 반사하여 신호의 세기를 감소시킨다.
그뿐만 아니라, 2.4GHz처럼 많이 쓰이는 무선 주파수 대역은 Wi-Fi, 블루투스, 전자레인지, 모터 등 다양한 장치들이 공유하고 있기 때문에 서로 간섭(interference)을 일으키는 일이 빈번하다.
또 다른 중요한 문제는 다중경로 전파(multipath propagation)다. 전파는 장애물에 반사되어 여러 경로를 통해 수신 지점에 도달하는데, 이로 인해 동일한 신호가 시간차를 두고 겹쳐 도달하게 되어 신호 왜곡이 발생한다. 이러한 요소들은 단순한 포인트 투 포인트(point-to-point) 통신조차도 무선 환경에서는 유선보다 훨씬 더 복잡하고 어렵게 만든다.
이러한 문제 속에서 중요한 개념이 SNR (Signal-to-Noise Ratio), 즉 신호 대 잡음비다. SNR이 클수록 잡음에 비해 신호가 더 강하므로, 수신 측에서는 원래의 신호를 더 쉽게 분리해낼 수 있다. 따라서 SNR은 높을수록 좋은 것이고 BER(Bit Error Rate)과 밀접한 관계가 있다. 특정한 물리 계층 조건에서 송신 전력을 높이면 SNR이 올라가고, 그에 따라 BER은 낮아진다. 반대로 주어진 SNR 수준에서는 그 조건을 만족하면서 BER을 낮추는 가장 높은 속도의 물리 계층 모드를 선택해야 한다.
예를 들어 낮은 SNR 환경에서는 단순한 변조 방식(BPSK)을 쓰는 것이 좋고, SNR이 높을수록 더 복잡한 변조 방식(QAM16, QAM256 등)을 써서 더 높은 속도를 낼 수 있다. 중요한 것은 SNR은 사용자가 이동함에 따라 계속 변하기 때문에, 실제 네트워크에서는 동적으로 변조 방식이나 전송 속도를 바꾸어 가며 적응(adaptation)하는 기술이 필요하다는 점이다.
여기에 더해, 무선 환경에서는 여러 송수신 노드들이 동시에 존재할 때 발생하는 고유한 문제들도 있다. 대표적인 예가 Hidden Terminal Problem이다. 예를 들어 노드 A와 B는 서로의 신호를 들을 수 있고, B와 C도 서로 들을 수 있지만, A와 C는 서로의 존재를 전혀 인식하지 못한다면, A와 C가 동시에 B로 데이터를 보낼 경우 충돌이 발생하지만, 정작 A와 C는 서로 간섭하고 있다는 사실을 알 수 없다.
이처럼 무선의 공간성과 감쇠 특성으로 인해, 유선 네트워크에서는 발생하지 않는 새로운 충돌 문제가 등장하게 되며, 이는 단순한 다중 접속(MAC) 문제를 넘어서 무선 링크의 신뢰성과 성능을 더욱 어렵게 만드는 요소로 작용한다.
CDMA는 여러 사용자가 동일한 주파수 대역을 동시에 사용하는 환경에서도 서로 간섭 없이 통신할 수 있게 해주는 다중 접속 방식 중 하나다. 여기서 핵심은 각 사용자에게 고유한 코드(chipping sequence)를 할당한다는 점이다.
이 코드는 일종의 수학적 서명과 같아서, 같은 전파 공간을 공유하면서도 서로의 신호를 구분할 수 있게 만든다. 모든 사용자는 동일한 주파수를 공유하지만, 자신만의 고유 코드를 사용해 데이터를 인코딩하기 때문에 이론적으로는 여러 사용자가 동시에 데이터를 보내더라도 서로 간섭하지 않고 공존할 수 있다. 단, 이 때 사용되는 코드들이 서로 직교(orthogonal)해야 한다.
직교성은 수학적으로 볼 때 두 코드의 내적(inner product)이 0이 되도록 설정되는 특성이다.
이것이 보장될 경우 다른 사용자의 신호는 자신에게 잡음처럼 작용하고, 수신자는 자신의 코드만을 사용하여 정확히 원하는 데이터만 추출해낼 수 있다.
CDMA에서의 인코딩은 원래의 데이터 비트에 자신의 고유 코드를 곱하는 방식으로 수행되고 수학적으로 내적(inner product) 연산으로 표현된다. 예를 들어 원래 데이터 비트가 1이라면 고유 코드를 그대로 사용하고, -1이라면 부호를 반전시켜 사용한다. 수신 측에서는 전송된 전체 신호를 다시 자신의 코드와 내적해 자신에게 해당하는 데이터만을 합산된 내적(sum of inner products) 방식으로 추출하게 된다. 이 덕분에 CDMA는 서로 다른 사용자가 동시에 통신하더라도 신호를 분리할 수 있는 능력을 갖추게 된다.
CDMA에서의 인코딩 과정은 다음과 같이 이루어진다. 각 데이터 비트는 해당 사용자의 고유 코드(chipping sequence)와 원소별 곱(inner product)을 수행해서 전송할 신호로 바뀐다. 예를 들어, 데이터 비트가 1이면 코드를 그대로 사용하고, -1이면 코드의 부호를 반전시킨다. 이 과정을 수식으로 표현하면 송신자가 전송하는 신호 는
로 정의된다. 여기서 d_i는 i번째 데이터 비트, c_m은 m번째 코드 비트다.
수신자는 전체 수신 신호를 자신의 코드와 다시 내적하여 원래의 데이터를 복원한다. 이 과정을 수식으로 쓰면,
이며, 이 연산 결과가 크면 1, 작으면 -1로 해석하여 원래 데이터를 복원할 수 있다.
슬라이드 17의 예시는 이 과정을 시각화하고 있다. 송신자는 두 개의 비트 을 갖고 있고, 코드 시퀀스는 이다. 인코딩을 거친 신호는 각각의 슬롯(slot 0, slot 1)에 대해 계산되어 전송된다. 수신자는 이 시퀀스를 받아 동일한 코드로 디코딩을 수행하면 원래 비트를 정확히 복원할 수 있다.
하지만 이 자체로는 그다지 흥미롭지 않다. 왜냐하면 단일 송신자만 존재할 경우에는 그냥 선형 곱만 하면 되기 때문이다. 진짜 CDMA의 위력은 두 명 이상의 송신자가 동시에 전송할 때 드러난다.
위에서는 두 송신자가 동시에 같은 채널을 사용할 때를 보여준다. Sender 1과 Sender 2가 동시에 데이터를 전송하면, 채널에서는 이 둘의 인코딩된 신호가 단순히 더해진 형태로 전송된다. 그러나 수신자가 Sender 1의 코드만 알고 있을 경우에도, 이 더해진 신호에서 여전히 Sender 1의 데이터를 정확히 추출할 수 있다. 이것이 바로 CDMA의 핵심 장점이다. 각 사용자의 코드가 충분히 직교(orthogonal)하면, 다른 사용자의 신호는 잡음처럼 작용하며 제거가 가능하기 때문에, 동시에 전송하더라도 간섭 없이 통신이 가능해진다.
CDMA는 단순히 주파수를 분할하거나 시간을 나누는 게 아니라, 코드로 사용자를 구분한다는 점에서 차별화된다. 여러 사용자가 동시에 같은 채널을 써도 문제없다는 점에서 매우 강력한 다중 접속 방식이다.