So when we multiply these out let's think about what we get.

Well the first one is just 1 times 1, which is going to give us a one, and then

we have one times one again which is going to give us one.

Then we have one times negative one which will give us negative one and then one

times one again which gives us one. Then we have, then we have negative one.

So basically on the first end right here, we're just going to get the spreading

code back. So basically, we're just going to be

transmitting the spreading code because its data signal's a 1, and 1 times

anything is just whatever the other number is.

Now, for the negative 1, then we have to multiply the data signal by each of

these. So we have negative 1 times negative 1

gives us 1. It's going to basically invert the

spreading code on this side, so 1, 1, negative 1 minus one.

And this is what we actually transmit, we transmit the multiplication of the data

signal, and the spreading code. Then the receiver has a form of the

spreading code that they will invert, and then use to recover the original data

signal translated back down to its original form before it was spread out.

So this may seem easy in that you just give each receiver a separate spreading

code and it should work out. But it turns out that designing spreading

codes is actually a very complicated process, because the spreading codes have

to have a property, which is called being orthogonal.

Orthogonal really means that they will cancel out.

And so the idea is that if this receiver over here wants, is trying to receive

this message, that even when this person's message is going to come in,

that while His spreading code will be exactly the same as his transmitters,

which is what it needs in order to recover it.

The spreading code of this link, and the spreading code of this link, will cancel

each other out, so that when he applies his spreading code to this signal, it

will cancel out and basically give him nothing.

So he won't be able to recover any signal.

And that's exactly what you want, that's that self canceling property of the

orthogonal spreading codes, as we would say.

So designing spreading codes that have this property of being orthogonal is not

an easy task and that's what's really complicated about the idea of CDMA.

So now you're probably wondering, well why do we even bother using.

CDMA to begin with, and what did Qualcomm find so attractive about it?

It's just some complicated thing that maybe doesn't give us much improvement.

Well, it turns out that it actually does give many advantages.

The first is that the frequency reuse factor is now 1.

Do you remember the frequency reuse factor is the number of bands that we

have to use? Well, now, everyone's transmitting on

every single frequency, so we have no division there anymore, which makes that

factor Just one. So the frequency reuse is going to be

equal to one. Clearly that's desirable because that's

especially efficient in terms of the frequency sense.

Well the other thing that they found really, really enticing is that it was

expected to have like a forty times improvement.

Or with the existing analog capacity so greater then 4 times that 10 times

improvement that they that the CTIA was asking for for the next 2 use standard.

At least in their initial simulation so it came out to be 40 times what was

actually realized was not anywhere near as high as that but still 40 times is

very very enticing. So despite Qualcomm's claims, most

engineers at the time resisted the idea of code-based wireless.

First of all, it was a radical shift from the more intuitive TDMA type.

Secondly, Qualcomm really hadn't had a demonstration of CDMA on a large scale

yet, one that would show this 40 times improvement.

And so in 1989 the CTIA voted and approved TDMA as the first 2G digital

standard in the United States. But CDMA did have its share of problems,

and we'll look at those problems which had to be overcome before it did become

the cellular standard.