spread spectrum 통신방식을 위해서 psudo noise 를 만드는 code 중에 m-sequence(maximal length sequence, 보통 PN code) 가 있어요.
이것은 autocorrelation 이 chip의 sync 가 맞지 않으면 낮게 나오죠. 맞으면 높게 나오고요. 그래서 psudo noise 래서 spread spectrum 만들면서도 받는 쪽에서도 동일한 code를 사용하면 chip 의 동기를 만드는데 이용하게 됩니다.
그런데 corosscorrelation 의 값은 어쩔 때 보면 내우 큽니다. 그래서 그냥 m-sequence 이용하다가는 동기가 안 맞은 경우에도 crosscorrelation 값 중에 peak가 클 경우는 동기가 맞은 것으로 오인할 수 있습니다(false alarm probability가 큼)
다수의 사용자가 있는 reverse link 나 여러 인공위성에서 쏘는 GPS 신호 같은 경우에 문제가 될 수 있죠.
이런 MA(multiple access) 시스템의 경우에 crosscorrelation 의 값이 큰 것이 문제가 되어 Gold 라는 아저씨가 1967년에 crosscorrelation 값이 작은 code 만드는 법을 발견할 걸 논문으로 발표했어요.
그것이 gold codes 혹은 gold sequences 입니다.
만드는 방법은 두개의 PN code generator(m-sequence)를 이용해서 각각의 generator 에서 나온 bit를 modulo-2 add 해서 만듭니다.
그러면 crosscorrelation 값이 작아 지고 주기적이 됩니다.
그렇게 만들때도 서로 이용할 두개의 PN code 가 서로 맞아야(preferred pair)가 되야 어느 m-sequence 의 가장 작은 crosscorrelation 보다 항상 작은 crosscorrelation 값을 보여주는 것을 만들 수 있는데요. 어떻게 preferred pair 인 m-sequence를 찾을 것인가는 책보시면 되겠습니다.
- IEEE에서 1994년에 나온 Alex W. Lam외 1인의 "Theory and applications of spread-spectrum systems" 책의 7.2절에 보면 설명이 잘 나와 있습니다.
- 또한 Artech House에서 1998년에 나온 Jhong Sam Lee의 "CDMA Systems Engineering Handbook" 책의 6.6절 부터 보시면 정리가 잘되어 있구요.
- 논문에서 찾으면 상당히 많구요.
- 222번 글에도 답을 했었었군요.