Also known as: DSSS, direct sequence
Direct-sequence spread spectrum (DSSS) multiplies each data symbol by a much faster pseudo-random chip sequence, spreading the signal’s energy across a bandwidth many times wider than the data rate would require.1 Because the receiver knows the exact code, it can despread the wanted signal back to a narrow band while smearing any interferer out into the noise — buying interference rejection, a low probability of intercept (LPI), and multi-user separation from what looks, on a spectrum analyzer, like a raised noise floor.
How it works
Each information bit is XORed (or BPSK-multiplied, mapping 0/1 to +1/−1) with a spreading code running at the chip rate, which is an integer multiple of the bit rate. A single bit therefore becomes a burst of many chips. The transmitted bandwidth grows in proportion to the chip rate, so the same energy is spread thinner in frequency — often below the ambient noise floor.
At the receiver, the incoming samples are multiplied by a locally generated replica of the same code, aligned in time. For the wanted signal the code multiplies by itself (±1 × ±1 = +1 everywhere), so its chips coherently add back up into full-amplitude data symbols — this is a matched-filter/correlation operation. Any signal not correlated with the code — narrowband jammers, thermal noise, other users’ codes — gets multiplied by the pseudo-random pattern and spread out, so only a small fraction of its power lands in the despread bandwidth.
The key figure of merit is processing gain, Gp = chip rate ÷ data rate (often quoted in dB as 10·log₁₀ Gp). It quantifies how much the despreading lifts the wanted signal above interference: a 1023-chip GPS C/A code over a 50 bit/s data stream is roughly 43 dB of gain, which is why GPS works from signals ~20 dB below the noise floor.
In practice
- Code choice matters. The spreading sequence needs a sharp autocorrelation peak (so timing alignment is unambiguous) and, for multi-user systems, low cross-correlation with other codes. Maximal-length sequences, Gold codes, and short Barker codes are the common families.
- Acquisition and tracking. The receiver must first find the code phase (a search over chip offsets) and then keep the replica aligned as Doppler and clock drift move it — the classic acquisition-then-tracking loop of a GPS or CDMA receiver.
- Near-far problem. A strong nearby transmitter can overwhelm a weak far one even after despreading, which is why CDMA cellular systems add tight power control.
Relevance to SDR
DSSS underpins several everyday RF systems: GPS and other GNSS civil signals, the original 802.11b Wi-Fi (Barker-coded 1–2 Mbit/s and CCK), and IS-95 / cdmaOne / UMTS cellular via CDMA. Military links use it for LPI/anti-jam. It is closely related to scrambling, which whitens data with a PN sequence but without the bandwidth expansion.
None of GopherTrunk’s target land-mobile trunking protocols (P25, DMR, NXDN, TETRA) use DSSS — they are narrowband FDMA/TDMA voice systems — so GopherTrunk does not implement a despreading correlator. DSSS is documented here as the foundational spread-spectrum technique that GNSS and cellular receivers depend on, and as context for the code families (m-sequences, Gold, Barker) that the scanner does touch elsewhere.
Sources
-
Direct-sequence spread spectrum — Wikipedia, for the chip-multiply mechanism, processing gain, and despreading. ↩