8  LoRa Modulation and Spreading Factors

Chirp Spread Spectrum, Symbol Time, Airtime Evidence, Spreading-Factor Choice, and ADR Handoff

lorawan
lora
modulation

8.1 Start Simple

Imagine turning one radio knob and getting two effects at once: a weaker signal may become readable, but the message occupies the channel for longer. That is the central LoRa modulation tradeoff. Spreading factor, bandwidth, coding rate, payload size, and regional limits are not isolated facts. They become airtime and link-margin evidence that the network must be able to defend.

Phoebe the physics guide

Phoebe’s Why

The LoRaWAN Introduction chapter already derives symbol time, processing gain, and the Shannon ceiling for spreading factor – that ground does not need retracing here. What that chapter treats as a black box (“\(2^{SF}\) possible chirps”) is exactly what this chapter’s own dechirp figure draws out step by step: data symbol, chirp offset, swept signal, receiver dechirp, frequency peak, decoded symbol. The physical mechanism behind that picture is a linear-FM sweep whose starting frequency – not its amplitude, not its phase – carries the data. A receiver recovers that offset with one clean trick: multiply the received chirp by a locally generated sweep running the opposite way, and the matching sweep rates cancel algebraically, collapsing a signal that swept across the whole channel into one steady tone. An FFT then reads which bin that tone lands in, and the bin number is the symbol.

The Derivation

Instantaneous frequency of the base up-chirp over one symbol period \(T_{sym}\), sweeping the full channel bandwidth \(BW\):

\[f(t) = -\frac{BW}{2} + \frac{BW}{T_{sym}}\,t, \qquad 0\le t<T_{sym}\]

Chirp slope – the sweep rate that defines “how bits map onto the waveform,” since a data symbol \(s\) cyclically shifts the start frequency by \(s/2^{SF}\) of the band:

\[k = \frac{BW}{T_{sym}} = \frac{BW^2}{2^{SF}}\]

Dechirping (multiplying by a conjugate reference sweep) cancels the ramp and leaves a tone whose frequency lands on FFT bin \(s\), spaced by the symbol rate itself:

\[\Delta f_{bin} = \frac{BW}{2^{SF}} = \frac{1}{T_{sym}}\]

Worked Numbers: This Chapter’s Own SF10 Example

  • This chapter’s own SF10 figure: \(T_{sym}=2^{10}/125{,}000=8.192\) ms at 125 kHz – deliberately a different spreading factor than the Introduction chapter’s SF7/SF12 processing-gain examples.
  • Chirp slope at SF10: \(k=BW/T_{sym}=125{,}000/0.008192=15{,}300{,}000\) Hz/s, or \(15.3\) MHz/s – how fast the transmitted tone sweeps across the 125 kHz channel within one symbol.
  • FFT bin spacing after dechirp: \(\Delta f_{bin}=125{,}000/1{,}024=122\) Hz, and \(1{,}024\) such bins exactly tile the 125 kHz channel (\(122\times1{,}024=125{,}000\) Hz) – confirming the receiver only has to resolve 122 Hz steps to separate all \(2^{10}\) symbol values.
  • Worked example symbol \(s=256\) (a quarter of the \(2^{10}=1{,}024\) possible values at SF10): its chirp starts offset by \(256\times122=31{,}250\) Hz \(=31.25\) kHz above the base chirp’s start frequency, exactly \(256/1{,}024=25.0\%\) of the channel bandwidth – this is literally “how the bits map onto the waveform”: ten data bits choose one of 1,024 equally spaced starting frequencies, not an amplitude or phase state.

Overview: LoRa Modulation Turns Radio Settings Into Airtime Evidence

LoRa is the physical radio modulation used by LoRaWAN. It sends symbols as chirps: controlled sweeps across a channel span. LoRaWAN adds the network behavior around that radio, but modulation review starts with radio settings, payload size, observed link evidence, and time on air.

The beginner mistake is choosing the highest spreading factor by habit. Higher spreading factors can help weak links, but they also keep the channel occupied longer. A defensible choice records why the setting fits the device group, message schedule, gateway evidence, regional profile, and ADR handoff.

If you only need the intuition, this layer is enough: spreading factor is not a quality slider. It is a tradeoff between link margin and airtime, and the release decision needs evidence for both sides.

A simple scale check keeps the tradeoff concrete. With a 125 kHz LoRa bandwidth, symbol time is about 1.024 ms at SF7 because 2^7 / 125,000 seconds is 0.001024. At SF12 it is about 32.768 ms, or 32 times longer before payload, preamble, header, coding-rate, and retry details are counted. If 200 sensors all default to the slowest setting, the release problem is no longer only "can one device be heard"; it becomes whether the shared channel, gateway duty, retry pattern, and application schedule still fit.

LoRa modulation boundary map with radio settings, airtime evidence, link evidence, channel use, ADR handoff, and release review.
LoRa modulation review keeps radio settings, link evidence, airtime pressure, ADR policy, and release decisions in separate lanes.

Spreading Factor

Controls symbol duration. Lower settings reduce airtime; higher settings can support weaker links when the evidence justifies the cost.

Bandwidth

Defines the channel span used by the chirp. It interacts with sensitivity, data-rate choices, and regional profile constraints.

Coding Rate

Adds redundancy for error tolerance. More redundancy can help robustness, but it also adds transmitted symbols.

Payload Fit

Payload length, headers, joins, MAC commands, retries, and acknowledgements all affect the channel budget.

Overview Knowledge Check

Practitioner: Write the Modulation Review Record

A practical modulation record ties the setting to one message class and one deployment condition. The reviewer should not approve "LoRa works" as a broad claim. The record should say which payload, which message schedule, which regional profile, which gateway evidence, which data-rate or ADR policy, and which retest trigger are in scope.

LoRa chirp spread spectrum decoding flow with data symbol, chirp offset, swept signal, receiver dechirp, frequency peak, and decoded symbol.
Chirp spread spectrum explains the radio mechanism; the release record still needs observed link and airtime evidence.
Record Field
Evidence To Capture
Common Gap
Review Action
Payload and cadence
Encoded payload size, normal cadence, alarm cadence, join behavior, retries, and maintenance traffic.
The review tests one small message but approves every message pattern.
Split message classes or revise the scope.
Radio setting
Spreading factor, bandwidth, coding rate, transmit setting, preamble, and regional profile.
The chosen data rate is not tied to observed link evidence.
Require a measured or explicitly bounded assumption.
Gateway evidence
Gateway hearing path, packet metadata, field location, antenna condition, and expected movement or obstruction.
One lab point is treated as field coverage evidence.
Record where the evidence applies and where it does not.
ADR handoff
Whether ADR owns the final data-rate adjustment, what history it can trust, and when manual override is allowed.
ADR is enabled without a device profile that makes historical evidence useful.
Define the ADR suitability boundary.
Release trigger
Payload, firmware, placement, antenna, gateway, regional profile, ADR policy, or message-schedule change.
The release record has no condition that reopens the review.
Add a retest trigger before approval.

Accept

The selected setting has enough link evidence, payload evidence, airtime evidence, regional fit, ADR ownership, and retest boundaries.

Revise

The setting may be plausible, but the record lacks payload, airtime, field, or ADR evidence for the reviewed scope.

Defer

The reviewer cannot tie the radio setting to a real device group, regional profile, gateway path, or release owner.

Practitioner Knowledge Check

Under the Hood: Symbol Time Drives the Tradeoff

LoRa symbols are represented by chirps. Spreading factor changes how many possible symbol states are represented and how long each symbol occupies the channel. A higher spreading factor can make weak-link decoding more practical, but it also extends the time on air for the same payload family.

That is why modulation review is a system decision, not only a radio decision. Airtime affects channel occupancy, retries, downlink opportunities, regional profile fit, battery behavior, and gateway capacity. ADR can help only when the device pattern gives it useful, recent evidence.

The useful under-the-hood shortcut is Tsymbol = 2SF / bandwidth. At 125 kHz, SF10 gives 1024 / 125,000 = 8.192 ms per symbol, while SF12 gives 4096 / 125,000 = 32.768 ms. That fourfold jump from SF10 to SF12 happens before counting low-data-rate optimization, coding-rate overhead, preamble, headers, acknowledgements, or retries. A field record that says "SF12 worked once" therefore proves only a narrow reception event unless it also shows the payload family, traffic count, retry rate, gateway diversity, and regional airtime headroom.

The same shortcut can be written as a rate check. Symbol rate is Rs = bandwidth / 2SF, and an uncoded bit-rate intuition is Rb = SF x bandwidth / 2SF. With 125 kHz bandwidth that puts SF7 near 5.5 kbit/s before the full LoRaWAN packet and coding details, while SF12 is only a few hundred bit/s. Coding rate, commonly 4/5 in introductory examples, adds redundancy; whitening, interleaving, headers, preamble, MAC commands, acknowledgements, and retries then decide the delivered application throughput.

Use that arithmetic when checking ADR too. If a fixed meter has weeks of stable uplinks, ADR may be able to move it toward a lower spreading factor and return channel capacity. If a tracker moves between basements, loading docks, and outdoor yards, old uplinks can overstate the current margin. The review should name when ADR owns the decision, when a manual boundary is safer, and which movement or gateway change reopens the calculation.

LoRa symbol-rate equation showing symbol rate as bandwidth divided by two raised to the spreading factor.
The spreading-factor tradeoff comes from the symbol-rate equation: increasing SF lowers symbol rate and lengthens airtime for the same channel bandwidth.

Symbol Duration

Longer symbols can support weaker links, but every longer frame also consumes more shared channel time.

Payload Coupling

Headers, MAC commands, joins, retries, acknowledgements, and encoded payload size all change the airtime record.

ADR Limits

ADR is strongest for relatively stable devices with useful history. Mobile or bursty devices may need narrower review boundaries.

Retest Boundary

Antenna, gateway, firmware, payload, schedule, region, or ADR-policy changes can make the modulation record stale.

LoRa modulation release record with payload, radio setting, link evidence, airtime evidence, ADR handoff, decision, and retest trigger.
The release record turns radio evidence into an approval, revision, exception, or retest decision.

Under-the-Hood Knowledge Check

8.2 Summary

LoRa modulation review connects radio settings to evidence. Spreading factor, bandwidth, coding rate, payload size, regional profile, gateway evidence, and ADR policy all affect whether a LoRaWAN message pattern is fit for release.

The safest review habit is to avoid broad claims. Approve one message class, one deployment condition, one regional profile, and one retest boundary at a time. Higher spreading factors can support weak links, but they also increase airtime pressure and must be justified by observed need.

8.3 Key Takeaway

Treat spreading factor as a tradeoff, not a guarantee. The release record should prove enough link margin while keeping airtime, payload, ADR, and retest limits visible.

8.4 See Also