Direct sequence spread spectrum is used in radio communication systems, such as IEEE802.11-compliant wireless LANs, in order to allow many different stations to use the same frequency band simultaneously with a minimum of interference.
The idea is quite simple: for every baseband bit (zero or one) that we want to transmit, we replace the bit by an entire bit sequence, the so-called chipping sequence. In this example, we will use an 11-bit sequence, similar to 802.11. For ones, we take the sequence's original, e.g., 00010010111, for zeros, we use the inverted sequence (11101101000 in this case). Of course that means that we now have more bits to transmit than before. So, to keep up with our baseband bit rate, we need to signal faster - 11 times faster in our case.
If you paid attention to the lectures, you will know that signaling faster means having to use higher frequencies with which to modulate our carrier frequency (we'll assume for the moment that we use simple ASK here, which strictly speaking is not true for 802.11 - but we could and the effect is the same). That means that the sidebands will be further away from the carrier - our signal spectrum will be spread out.
OK, now we have our signal in the air - but how do we recover the bits? This is where the chipping sequence comes in. It isn't just any odd 11-bit sequence. In fact, the only 11-bit sequences you can and should pick are those that have an autocorrelation that has a distinct feature: if you line up the sequence with a shifted and "wrapped-around" copy of itself, then the number of matching bit pairs (columns with matching bits) should be about the same as the number of non-matching bit pairs. This feature must hold for any shift other than 0. E.g., for our sequence:
Original sequence: | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 |
Sequence shifted by two bits to the right and wrapped around: | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
It is easy to see that this shift yields 5 matching and 6 non-matching bit pairs. You might want to convince yourself that this is also the case for all other shifts from 1 bit to 10 bits.
The receiver listens to the incoming bit stream from the channel and compares it to a copy of the chipping sequence in a so-called correlator. The correlator just counts the matching and the non-matching pairs, and calculates the difference between the counts. If we have a one, then there are only matching pairs, and the count difference is 11. If we have a zero, no pair matches, and the count difference is -11. If the count difference is around 0 (i.e., 1 or -1 in our case), then we are in the middle of a baseband bit transmission. That is: if there is no noise that corrupts the transmission.
Noise basically causes bits on the channel to flip, i.e., a 0 might become a 1, or a 1 might become a 0. What does this do to our transmission? Say, we are in the middle of a baseband bit. Flipping a single channel bit then changes the count difference to 3 or -3, or 1, or -1. Still, that's a long way away from the 11 or -11 count differences that we need to detect a one or a zero. Similarly, if we have, say, just received the last channel bit of a zero or a one, the count difference will still be 9 or -9. What does this mean? Simple: it means that we can easily corrupt a channel bit and still receive our baseband bit correctly.
If we want to operate several stations on the same channel simultaneously, then we need to have a set of several sequences that are not only each suitable for the above trick, but that also yield near-zero count differences when compared with other shift-wrapped sequences from the set. Unfortunately, there aren't any other such sequences of length 11... However, as sequences get longer, it becomes easier to find such groups and thus it becomes possible to operate several stations simultaneously on the same channel. You can't do that with 802.11 though - at least not without a protocol that avoids mutual jamming (which is part of 802.11). The spread-spectrum properties here are merely used to beat the noise!