How LoRa Chirp Spread Spectrum Works Below the Noise Floor
Long Range (LoRa) wireless technology revolutionizes telemetry electronics by enabling data transmission over vast distances while consuming minimal power, even when the incoming signal is significantly weaker than the surrounding background radio noise. This article provides a comprehensive overview of how LoRa utilizes Chirp Spread Spectrum (CSS) modulation, variable spreading factors, and Fast Fourier Transform (FFT) processing to achieve high processing gain and extract clear telemetry data from up to 20 decibels below the thermal noise floor.
The Mechanics of Chirp Spread Spectrum (CSS)
Traditional modulation schemes, such as Frequency Shift Keying (FSK) or Amplitude Modulation (AM), rely on sending a signal with enough concentrated power to sit visibly above the ambient RF noise floor. LoRa abandons this approach in favor of Chirp Spread Spectrum (CSS).
A "chirp" (Compressed High-Intensity Radar Pulse) is a sinusoidal signal whose frequency continuously increases (up-chirp) or decreases (down-chirp) linearly over a specific timeframe. In LoRa, this chirp sweeps across a predefined channel bandwidth—typically 125 kHz, 250 kHz, or 500 kHz. By spreading a narrowband telemetry data signal across a much wider frequency band, the transmission becomes inherently resistant to narrowband interference, multipath fading, and the Doppler effect.
Encoding Data with Cyclic Shifts
To transmit actual telemetry data, LoRa modulates the phase and frequency trajectory of the chirp. It does not change the bandwidth or the duration of the chirp for a given configuration; instead, it changes the starting frequency of the sweep.
A standard up-chirp sweeps from the lowest frequency of the bandwidth (\(f_{min}\)) to the highest (\(f_{max}\)). To encode a specific data symbol, the transmitter starts the chirp at a calculated frequency offset above \(f_{min}\). The frequency increases linearly until it hits \(f_{max}\), at which point it instantly wraps around to \(f_{min}\) and continues sweeping up until it reaches the initial starting frequency. The exact point where this frequency jump occurs represents the encoded digital value.
Processing Gain and Spreading Factors
The secret to operating below the noise floor lies in "processing gain." Derived from the Shannon-Hartley theorem, channel capacity can be maintained in extremely poor Signal-to-Noise Ratio (SNR) environments by trading data rate for bandwidth. LoRa controls this trade-off using a parameter called the Spreading Factor (SF), which ranges from SF7 to SF12.
The Spreading Factor determines how many bits are encoded into a single symbol and how long the chirp lasts in time:
- A symbol encodes \(SF\) bits of information, meaning there are \(2^{SF}\) possible cyclic shifts per chirp.
- Increasing the SF by one step (e.g., from SF7 to SF8) doubles the time duration of the chirp while halving the data rate.
Because the signal energy is spread over a longer duration at higher Spreading Factors, the receiver has more time to integrate the signal energy. At SF12, a single chirp lasts much longer than at SF7, providing the maximum processing gain and allowing the receiver to detect signals as low as -20 dB below the noise floor.
De-chirping: Extracting the Signal from Noise
When a LoRa telemetry packet arrives at the receiver, its instantaneous power is buried beneath thermal and ambient RF noise. A standard power detector cannot see it. To extract the data, the LoRa receiver performs a mathematical operation called "de-chirping."
- Multiplication: The receiver generates a local, unmodulated base down-chirp (a signal whose frequency decreases linearly at the exact same rate the transmitted up-chirp increases). The incoming noisy signal is multiplied by this local down-chirp.
- Frequency Compression: Because the transmitted signal's frequency is rising at the exact rate the local signal's frequency is falling, multiplying them together cancels out the frequency sweep. This collapses all the spread-out energy of the incoming chirp into a single, continuous, fixed frequency tone.
- Fast Fourier Transform (FFT): The receiver then applies an FFT to the de-chirped signal.
While the white noise remains distributed evenly and randomly across the entire bandwidth during the FFT process, the telemetry signal's energy—which was previously spread across the whole bandwidth over time—is now concentrated into a single FFT frequency bin. This concentrated spike of energy easily pokes out above the flat noise floor. The specific frequency bin where this spike appears corresponds directly to the starting frequency offset used by the transmitter, allowing the receiver to successfully decode the telemetry data.
Forward Error Correction (FEC)
As a final layer of reliability, LoRa incorporates Forward Error Correction. Before modulation, redundant error-checking bits are added to the telemetry payload at a configurable Coding Rate (4/5, 4/6, 4/7, or 4/8). If a sudden burst of interference corrupts a portion of a chirp while it is below the noise floor, the receiver uses these redundant bits to mathematically reconstruct the lost data on the fly without requesting a retransmission, ensuring reliable telemetry links in the harshest RF environments.