Modulation & LPWAN

Chirp Spread Spectrum

/cherp spred spek-truhm/ (CSS)
A spread-spectrum modulation technique that encodes data symbols as cyclic time-shifted linear frequency chirps spanning the full channel bandwidth. Each symbol encodes SF bits (spreading factor, 7 to 12 in LoRa) by starting the chirp at one of 2SF possible frequencies. CSS provides processing gain of 10 to 20 dB, enabling reliable demodulation at SNR as low as -20 dB. The LoRa implementation on sub-GHz ISM bands (868/915 MHz) achieves ranges of 5 to 15 km in rural environments at data rates of 0.3 to 50 kbps, making it the dominant physical layer for LPWAN IoT networks.
Category: Modulation & LPWAN
SF Range: 7 to 12
SNR Floor: -20 dB (SF12)

Understanding Chirp Spread Spectrum

CSS was originally developed for radar applications, where the linear chirp's time-bandwidth product provides processing gain for target detection. Semtech adapted this principle for communications in the LoRa modulation scheme, patented in 2014. Instead of encoding information in amplitude or phase of a carrier, CSS encodes it in the starting frequency of a linear up-chirp that sweeps across the entire channel bandwidth B (typically 125, 250, or 500 kHz). With spreading factor SF, each symbol carries SF bits of information and consists of 2SF chips (frequency steps), with the symbol duration Ts = 2SF/B.

Demodulation is elegantly simple: the receiver multiplies the received signal by a conjugate base down-chirp, converting the frequency-varying chirp into a single-frequency tone. The tone frequency directly indicates which of the 2SF possible starting frequencies was transmitted, and thus which SF-bit symbol was sent. An FFT of size 2SF identifies the peak bin. This de-chirping process provides processing gain proportional to the time-bandwidth product, enabling operation at very low SNR. Different spreading factors are quasi-orthogonal, so a single gateway can simultaneously receive signals at SF7 through SF12 on the same frequency channel, with each SF occupying a different time-bandwidth space. The key engineering trade-off is that higher SF increases range (better sensitivity) but decreases data rate and increases time-on-air, which affects battery life and regulatory duty-cycle compliance.

CSS / LoRa Key Equations

Symbol Duration:
Ts = 2SF / B   [seconds]

Bit Rate:
Rb = SF · B / 2SF · CR   [bps, CR = coding rate 4/5 to 4/8]

Processing Gain (approximate):
Gp ≈ 10 · log10(2SF / SF)   [dB]

Where SF = spreading factor (7 to 12), B = bandwidth (125/250/500 kHz), CR = forward error correction coding rate. At SF12 with 125 kHz BW and CR 4/5: Ts = 32.77 ms, Rb = 293 bps, Gp ≈ 25.1 dB.

LoRa Spreading Factor Performance

SFBit Rate (125 kHz)SNR SensitivityTime-on-Air (50 B)Approx. Range
SF75,470 bps-7.5 dB72 ms2 to 5 km
SF83,125 bps-10 dB134 ms3 to 7 km
SF91,758 bps-12.5 dB247 ms4 to 9 km
SF10977 bps-15 dB452 ms5 to 11 km
SF11537 bps-17.5 dB824 ms7 to 13 km
SF12293 bps-20 dB1,483 ms10 to 15 km
Common Questions

Frequently Asked Questions

How does CSS encode data in frequency chirps?

The channel bandwidth is divided into 2SF frequency bins. Each symbol starts an up-chirp at one of these frequencies, sweeps to the upper edge, wraps to the lower edge, and continues back to start. The receiver multiplies by a conjugate down-chirp (de-chirping), converting each symbol into a single tone. An FFT of size 2SF identifies the peak bin, completing demodulation with inherent resilience to multipath and Doppler.

What is the trade-off between spreading factor, range, and data rate?

Each SF step adds roughly 2.5 dB of processing gain (30% more range) but doubles symbol duration, halving data rate. SF7 at 125 kHz gives 5.5 kbps and -7.5 dB SNR sensitivity. SF12 drops to 0.3 kbps but reaches -20 dB, enabling 15+ km rural links. Gateway receivers demodulate all SFs simultaneously because each SF is orthogonal to the others.

How does CSS compare to direct-sequence spread spectrum?

Both spread signals for processing gain, but CSS uses frequency chirps that are Doppler-tolerant and synchronize easily via FFT, while DSSS requires tight chip-level timing. CSS handles multipath better (reflections appear as additional FFT bins) but supports fewer simultaneous users (6 SFs vs unlimited PN codes). DSSS supports full CDMA; CSS relies on SF orthogonality.

IoT & LPWAN Components

Request a Quote

Need RF components or test equipment for LoRa, LPWAN, or sub-GHz IoT system development? Contact our engineering team.

Get in Touch