Homemade GPS Receiver (2013)
DSSS [1] is really interesting and worth reading up on if you’re already familiar with LFSRs. To summarize, you start by generating a deterministic, pseudorandom, periodic sequence. You then take your message and modulate (bitwise XOR) each bit of the message by the entire sequence e.g. if my sequence is 31 bits long, then my message modulated is now 31x long.The receiver just correlates the received message by the pseudorandom sequence. The correlation gives me what each bit is and a belief/probability for that bit.This works really well because the sequence is orthogonal to just about every other sequence (it’s white noise!). It’s even orthogonal to time shifted versions of itself, meaning that it does well at rejecting multipath distortion.1: https://en.m.wikipedia.org/wiki/Direct-sequence_spread_spect...