I am banging my head against (specific aspects of) CDMA for a few days. At the basic level I am confused about the interrelation between implementations that are modeled as mixing and fully digital implementations. Example:

  1. Mixing could use the the matrix $[ 1, 1 ; 1, -1]$ (appears in the example of https://en.wikipedia.org/wiki/Code-division_multiple_access#Example and https://en.wikipedia.org/wiki/Walsh_matrix). These matrices have elements -1 and 1 and flip signs and can be interpreted as mixing/multiplication. Makes sense

  2. Other sources show these matrices as $[ 0, 0 ; 0, 1]$ (e.g. https://www.tutorialspoint.com/cdma/cdma_techniques.htm). My understanding is that these setups assume bit streams (as opposed to more general sample streams) and for each data "1" they would just send the normal PN sequence (e.g. $[ 0, 1 ]$) and for each data "0" they would send the 1's complement $[ 1, 0]$. Makes sense too.

Now I found a paper with yet another setup:

  1. In the example station one has code $01$ and station two has code $10$. Station one sends $111001$ and station two sends $100111$. After CDMA code injection, station one transmits $010101000001$ and station two transmits $100000101010$. It should be noted that if these two transmissions are summed in the shared channel, the result is still a two-level waveform (=binary): $110101101011$! Demodulation is performed again by multiplying (=ANDing) the chip code and then OR-ing each bit. For example, station two would multiply/AND the received signal $110101101011$, and it with $10$ to get $100000101010$. OR-ing two adjacent bits gives the original sequence $100111$.


  • Is #3 a valid CDMA modulation/demodulation scheme?
  • How does it relate to the setups #1 and #2 ?
  • How do setup #1 and #2 relate? (I would expect multiplication in $GF(2)$ is AND and addition is XOR ... but 2. is different)
  • How would setup #3 extend to code lengths $\gt 2$?
  • Why would someone use setup #3 and call it "CDMA" (instead of setup #2)? Do I miss the relationship to #2?

One one hand #3 would provide a more logical match with #1 because AND is a multiplication in $GF(2)$. However, addition would correspond to XOR instead of OR and I don't know where OR comes from.

On the other hand, I cannot make setup #3 work with codes that resemble normal Walsh matrices (e.g. $[ 1, 1 ; 0, 1]$. All that works are codes like $[ 1, 0, 0, 0 ; 0, 1, 0, 0 ; 0, 0, 1, 0; 0, 0, 0, 1]$. Yes, they are orthogonal but somewhat miss the point of CDMA: code spreading. They implement more time division.


1 Answer 1


I think you are trying to mix orthogonality for $GF(2)$ and $R^n$. For the sequence $010101000001$, if station 2 had tried to demodulate it, he will have to take groups of 2 bits, multiple (AND) and add(XOR) them, to decode whether bit 0 or 1. Station 2 would have got all 0s because $10$ and $01$ is 'orthogonal' for station 1 and 2. So yes, #3 is indeed a valid CDMA scheme in $GF(2)$. I stress, it is a valid CDMA scheme only in $GF(2)$. It is not related to #1 and #2 (see below why).

Setups #1 and #2 are valid CDMA schemes in $R^n$ (real number vectors) because orthogonality is validated by $x_1^Tx_2$. For #2, you cannot validate orthogonality by dot product of vectors containing 0 and 1. Because for $W_4$, rows 3 and 4 are not orthogonal. So, $0$ has to be represented by $-1$. Even though logically we switch $0$ and $1$ as NOT operator while forming Walsh matrices, orthogonality is not valid in $GF(2)$.

On the other hand, I cannot make setup #3 work with codes that resemble normal Walsh matrices

$[1,1;0,1]$ would not correspond to CDMA because whether in $GF(2)$ or $R^2$, they are not orthogonal. $[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1]$ is orthogonal in $GF(2)$ as well as in $R^2$ which is same as your multiplexing in time but it is still technically a CDMA scheme (if you transmit each bit at 4x higher rate).

  • $\begingroup$ Great answer, clarifies indeed a lot! Regarding the last question: Is it possible to implement a scheme with Walsh-like matrices in GF(2) (i.e., scheme #3)? Or does scheme #3 strictly only work with codes that "multiplexing in time [...] at Nx higher rate", i.e., have diagonal form? In other words, is scheme #3 always also "multiplexing in time" at the same time? If this is the case, is #3 relevant anywhere in practice? $\endgroup$
    – divB
    Apr 17, 2020 at 18:12
  • 1
    $\begingroup$ I believe that is not possible. I think it would work with either the above kind of diagonal schemes or something like this $[1,0,1,0;0,1,0,1]$, both orthogonal in GF(2) and R^4 but still kind of multiplexed because when one station transmits 0, other is 1. $\endgroup$
    – jithin
    Apr 17, 2020 at 18:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.