DSSS (Distributed Frequency Spread Spectrum): We multiply the message signal which is a bit stream with a PN sequence (Pseudo Noise). So we are ideally increasing the redundancy. Instead of one data bit we will be sending 64 chip codes (64 bits) or 32 Chip codes. Why do we do this and reduce our data rate? In wireless communication reliability of data transfer is our prime concern. So we need to have very less noise. DSSS averages out the noise over the entire spectrum. We will see how in the following steps
Let us consider a modulated signal S(t) to be transmitted. This message is multiplied by the pseudo noise P(t) at the transmitter. The property of P(t) is that P(t) * P(t) =1. At the receiver end a noise N(t) gets added to the signal. So the signal present at the receiver is (S(t)*P(t) + N(t)). We multiply the received signal with P(t) at the receiver, the output of this stage is (S(t) + N(t)*P(t)). (Since P(t) * P(t) = 1 , * represents multiplication). If we multiply two signals in time domain they convolve in the frequency domain hence the noise signal N(t) is spread out over the bandwidth of P(t). So we choose the bandwidth of pseudo noise signal comparably high to signal S(t) and thereby spreading the noise and reducing background noise power.
GFSK(Gaussian Frequency shift Keying): GFSK makes use of a Gaussian filter after the FSK modulation stage. This filter is more like a narrow band pass and the roll off is very fast. As our message bandwidth is very small compared to noise bandwidth in DSSS. we make sure that we accumulate our message signal in the narrow band and the noise gets more attenuated. The fall in the noise power level using GFSK will be proportional to (1/f^4) whereas without GFSK it is (1/f^2).