왈시 코드

From CS Wiki

Walsh Code

왈시 코드는 CDMA에서 사용되는 직교 코드 중 하나로, 서로 다른 사용자 간의 신호 간섭을 방지하기 위해 사용된다. CDMA 시스템에서 여러 사용자가 동시에 같은 주파수 대역을 사용할 때, 각 사용자가 고유한 직교 코드를 사용해 데이터를 인코딩하고, 이를 통해 여러 사용자가 신호 간섭 없이 데이터를 전송할 수 있다.

특징[edit | edit source]

직교성:

  • 왈시 코드는 서로 직교(orthogonal)한 특성을 가지고 있다.
  • 이는 두 코드 간의 내적(inner product)이 0이 된다는 뜻이다.
  • 즉, 두 사용자가 서로 다른 왈시 코드를 사용할 때, 그들의 신호는 서로 간섭하지 않고 구분될 수 있다.

코드 생성:

  • 왈시 코드는 특정 규칙에 따라 만들어지는 2의 제곱수 크기의 행렬에서 파생된다. (재귀적)
  • 왈시 행렬(Walsh matrix)라는 행렬에서 각 행(row)이 서로 직교하는 코드로 사용된다.
  • 예를 들어, 길이가 4인 왈시 코드 집합은 다음과 같은 형태로 만들어질 수 있다.
    • 먼저, 길이가 1인 W1 = [1]
    • 길이가 2인 W2부턴 아래와 같은 규칙으로 늘어난다.
      • [W1, W1] [W1, -W1] 즉,
      • [ 1 1] [ 1 -1]
    • 길이가 4인 W4는 W2로 동일하게 만든다.
      • [W2, W2] [W2, -W2] 즉,
      • [  1   1   1   1 ] [  1  -1   1  -1 ] [  1   1  -1  -1 ] [  1  -1  -1   1 ]
    • 즉, 종합하면, Wn
      • [Wn/2, Wn/2] [Wn/2, -Wn/2]

코드 길이와 사용자 수:

  • 왈시 코드의 길이가  N 일 때, 최대 N명의 사용자가 동시에 통신할 수 있다.
  • 예를 들어, 길이 4의 왈시 코드는 4명의 사용자가 동시에 직교 상태로 통신할 수 있게 한다.

데이터 인코딩 및 디코딩:

  • CDMA에서 사용자가 데이터를 전송할 때, 각 사용자는 자신의 데이터를 고유한 왈시 코드로 인코딩해 전송한다.
  • 수신 측에서는 해당 사용자의 왈시 코드를 사용해 데이터를 디코딩하고, 다른 사용자의 신호는 직교 상태이므로 간섭하지 않는다.

예시[edit | edit source]

길이가 4인 왈시 코드를 예로 들면, 다음과 같이 직교하는 4개의 코드가 생성될 수 있다.

  • W_4 =
    • +1 +1 +1 +1 +1 -1 +1 -1 +1 +1 -1 -1 +1 -1 -1 +1
  • 이 왈시 행렬에서 각 행은 서로 직교하는 코드로 사용될 수 있다. 각 사용자는 이 코드 중 하나를 할당받고, 이를 사용해 데이터를 전송한다. 예를 들어
    • 사용자 1은  (+1, +1, +1, +1) 을 사용하고,
    • 사용자 2는  (+1, -1, +1, -1) 을 사용한다.
  • 수신기는 각 코드에 따라 데이터를 구분해 디코딩할 수 있으며, 두 사용자의 신호는 서로 간섭하지 않는다.

왈시 코드의 장단점[edit | edit source]

장점[edit | edit source]

  • 완전한 직교성: 왈시 코드는 완전히 직교 상태이기 때문에 신호 간섭을 최소화할 수 있다.
    • 이는 다수의 사용자가 동시에 같은 주파수 대역을 사용할 때 중요한 특성이다.
  • 간단한 생성 방식: 왈시 코드는 규칙적으로 확장 가능하므로, 사용자가 많아지더라도 새로운 직교 코드를 쉽게 생성할 수 있다.

단점(한계)[edit | edit source]

  • 사용자 수 제한: 왈시 코드는 코드 길이에 따라 지원할 수 있는 최대 사용자 수가 제한된다.
    • 예를 들어, 길이 8의 왈시 코드는 최대 8명의 사용자만 지원할 수 있다.
  • 멀티패스 환경에서의 성능 저하: CDMA에서 신호가 멀티패스 페이딩(multipath fading)과 같은 환경에 놓이면, 신호 간 간섭이 발생해 성능이 떨어질 수 있다.