LoRa Modulation
Contents
- Introduction
- Wireless Sensor Networks and LPWAN
- LoRa Basics
- LoRa Parameters
- Summary and Outlook
Part 4 — LoRa Parameters
So far, we have treated LoRa modulation as if every chirp had fixed characteristics. In practice, however, LoRa is highly configurable. A small number of physical-layer parameters determine how quickly the chirp sweeps, how long each symbol lasts, how much redundancy is added, and how much power is transmitted.
These parameters are not independent settings that can simply be maximized. Each one introduces a trade-off. A configuration that improves receiver sensitivity may also increase airtime. A configuration that increases data rate may reduce communication range. Higher transmit power may improve the link budget, but it also increases energy consumption and may be limited by regional regulations.
For this reason, choosing LoRa parameters is fundamentally an engineering problem. The appropriate configuration depends on the application, the propagation environment, the required reliability, the permitted latency, and the available energy source.
In this part, we will first examine what the main LoRa parameters physically mean:
- carrier frequency,
- spreading factor,
- channel bandwidth,
- coding options,
- and transmit power.
We will then study how they affect the main performance characteristics of a LoRa link, including:
- data rate and airtime,
- noise immunity and interference resilience,
- receiver sensitivity and link budget,
- indoor and outdoor range,
- network capacity,
- and battery life.
The objective is not merely to learn that increasing the spreading factor improves range, or that increasing the bandwidth raises the data rate. We want to understand why these effects occur, and how the parameters interact when designing a real LoRa system.
Center frequency
In the previous page, we represented LoRa chirps as frequency sweeps between a lower and an upper limit. In a real radio transmission, however, this sweep does not start from zero frequency. It occupies a channel centred around an RF frequency, which we call the center frequency . For a channel bandwidth (BW), the chirp ideally sweeps between:
When it reaches one edge of this interval, it wraps around to the other, as we saw on the previous page.
LoRa modulation can operate across different RF bands, but the permitted frequencies depend on the country or region. Commonly encountered sub-GHz operating regions include:
- around 433 MHz in many European, Middle-Eastern, and other regions, subject to local regulations;
- 863–870 MHz in Europe;
- 902–928 MHz in North America;
Choosing a frequency range not only affects propagation and link budget, but also entails different antenna designs. Higher frequencies experience more path loss than lower frequencies. However, in indoor situations, propagation depends strongly on wall materials, building geometry, antenna placement, polarization, multipath, and the presence of people and objects.
Another use of the center frequency is to avoid interference. This can have a major effect if another transmitter uses the selected channel.
Spreading factor (SF)
This is probably the most important parameter of the LoRa modulation, because it directly affects the battery life and reliability of the communication.
On the previous page, we saw that LoRa represents each symbol using a cyclically shifted chirp. The spreading factor (SF) is the parameter that controls the time scale of that chirp. For a fixed channel bandwidth: A small SF produces a fast chirp, while a large SF produces a slower chirp. Each time SF is increased by one, LoRa doubles the symbol duration. Therefore, an SF8 chirp takes twice as long as an SF7 chirp, SF9 takes four times as long, and SF12 takes 32 times as long.
The term spreading factor can be misleading if we come from classical spread-spectrum systems. For example, in DSSS, a spreading factor of usually indicates that the signal has been spread by approximately a factor of in bandwidth, or equivalently that about chips are used per information symbol. LoRa uses the term differently: SF does not determine the occupied bandwidth. The channel bandwidth is configured independently. Instead, SF controls the chirp time scale (and as we will se later in this page, the number of possible cyclic symbol positions). Thus, increasing SF in LoRa spreads the symbol primarily in time, not by increasing the configured RF bandwidth.

Figure 6 — Effect of spreading factor on chirp duration. For the same bandwidth, increasing SF slows the frequency sweep and increases the symbol duration.
This is the fundamental trade-off of LoRa communications: increasing SF improves sensitivity, but approximately doubles the symbol period at each step. This is because the slower chirp is observed over a longer period. As we saw on the previous page, the LoRa receiver does not make its decision from a single instantaneous measurement. It dechirps the received signal and accumulates information over the symbol before identifying the corresponding frequency bin. Increasing SF therefore provides a longer observation and correlation interval. The desired chirp structure contributes coherently over this interval, providing greater processing gain and allowing the receiver to recover signals at lower SNR. Semtech explicitly associates higher SF with increased processing gain and improved receiver sensitivity.
Semtech also made a design choice: For a spreading factor , the number of possible LoRa symbols is:
Remember that on the previous page, we saw that a LoRa symbol is represented by a cyclically shifted chirp. The transmitted symbol determines where the chirp begins within its cyclic frequency sweep. The spreading factor determines how many different starting positions are available. This means that with SF=7, one chirp can represent one of 128 different symbol values, while with SF=12, it can represent one of 4096 values. Equivalently, each LoRa symbol carries SF bits of uncoded symbol information:
- SF7 → 7 bits per symbol
- SF8 → 8 bits per symbol
- …
- SF12 → 12 bits per symbol
This connects directly to the M-ary modulation concept introduced on the previous page.
Note that:
There is no fundamental property of chirps saying that a slower chirp must have more possible starting positions.
LoRa has been designed so that these properties are linked through SF: increasing SF both lengthens the symbol and increases the number of possible cyclic positions. The designers could, in principle, have defined a different modulation in which the chirp duration and the number of possible symbol positions followed different rules. The relationship above is therefore a property of LoRa modulation, not a universal law of chirp signals.
Let us normalize the duration of an SF7 symbol to 1. Then we have the following table about LoRa bit rates for different spreading factors.
| Spreading factor (SF) | Possible symbols | Bits per symbol | Relative symbol duration | Relative raw information rate |
|---|---|---|---|---|
| 7 | 128 | 7 | 1 | 7 |
| 8 | 256 | 8 | 2 | 4 |
| 9 | 512 | 9 | 4 | 2.25 |
| 10 | 1024 | 10 | 8 | 1.25 |
| 11 | 2048 | 11 | 16 | 0.6875 |
| 12 | 4096 | 12 | 32 | 0.375 |
Thus, although an SF12 symbol contains more information, its much longer duration dominates. For fixed bandwidth, the uncoded raw information rate therefore follows the proportionality:
before coding and packet overhead are considered.
It is important to note that increasing SF does not change the way radio waves propagate. Walls do not become less attenuating, free-space path loss does not decrease, and the antenna does not become more efficient. Instead, the receiver becomes capable of correctly demodulating a weaker signal. The additional receiver sensitivity therefore provides more link-budget margin, which can be used to tolerate:
- greater outdoor path loss,
- walls and floors,
- shadowing and foliage,
- fading,
- or poorer antenna placement.
This is why higher SF is commonly associated with longer range even though the propagation channel itself has not changed. Semtech likewise recommends lower SF when little link budget is needed and higher SF for more distant nodes because of the additional processing gain and sensitivity.
The price of this additional sensitivity is airtime.
A higher-SF packet occupies the radio channel for much longer. Semtech’s example for an 11-byte payload at 125 kHz illustrates the effect clearly: its reported time on air increases from about 61 ms at SF7 to 371 ms at SF10.
Longer airtime generally means:
- more energy consumed for each transmission;
- longer occupation of the radio channel;
- greater probability of collisions in a busy network;
- and lower overall network capacity.
Therefore, the highest SF is not automatically the best SF.
A useful engineering rule is:
Use the lowest spreading factor that still provides sufficient link margin and reliable communication.
If SF7 already provides a robust link, moving to SF12 gains little but costs considerable airtime and energy. Conversely, if the link cannot reliably be closed at SF7, the additional processing gain of a higher SF may be well worth that cost.

Figure 7 — Effect of increasing the spreading factor on other performance metrics of a LoRa communication system.
Channel bandwidth (BW)
The channel bandwidth is the frequency band swept by each LoRa chirp. If a LoRa channel has center frequency and bandwidth , the chirp sweeps approximately betweenSo a 125 kHz LoRa channel centered at 433 MHz sweeps across roughly 125 kHz of spectrum around 433 MHz. SF primarily changes how slowly or quickly we traverse the chirp in time; BW changes how far we travel in frequency. However, LoRa does not keep the chirp duration fixed when BW changes. For a given SF, LoRa defines the symbol duration asTherefore, increasing BW does two things simultaneously:
- the chirp sweeps across a larger frequency interval;
- it does so in a shorter time.
For example, doubling BW from 125 kHz to 250 kHz halves the symbol duration. So the chirp becomes substantially steeper. This is again a LoRa design relationship, not a fundamental requirement of chirp modulation. One could design a chirp system in which bandwidth changes while duration remains fixed. LoRa simply does not define its symbols that way.

Figure 8 — Effect of channel bandwidth on a LoRa chirp at fixed spreading factor. Increasing the bandwidth widens the frequency sweep while shortening the symbol duration. The center frequency remains unchanged.
For the same SF, a larger bandwidth means a shorter symbol. For example, at SF10:
| BW | Symbol duration |
|---|---|
| 125 kHz | 8.192 ms |
| 250 kHz | 4.096 ms |
| 500 kHz | 2.048 ms |
The number of information bits represented by each symbol has not changed: an SF10 symbol still represents 10 uncoded bits. Consequently, increasing bandwidth generally:
- increases throughput;
- reduces packet airtime;
- reduces channel occupancy;
- and reduces the energy required for one transmission, thus increasing the battery life.
But on the other hand, noise power that is collected by a receiver is directly proportional to its bandwidth. So increasing BW increases the total noise power collected by the receiver and worsens sensitivity. Doubling the bandwidth increases the integrated thermal-noise power by approximately 3 dB. This gives us the fundamental trade-off:
- Narrow BW → better sensitivity but slower communication.
- Wide BW → faster communication but poorer sensitivity.
However, there are situations where having a wider bandwidth might actually help the reception:
- Narrowband interference: A LoRa chirp sweeps across the channel. If an interferer occupies only a small slice of that channel, it disturbs only part of the chirp. A wider LoRa bandwidth can therefore mean that the interferer occupies a smaller fraction of the complete chirp spectrum.
- Carrier-frequency offset (CFO): The reference oscillators in the transmitting and receiving modules do not have exactly the same frequency, particularly when inexpensive uncompensated crystals are used.. What matters is not the absolute frequency error but the error relative to the LoRa bandwidth. Suppose the transmitter is 8 kHz above the receiver’s expected center frequency. At BW = 500 kHz, 8 kHz is only 1.6% of the channel width, but at BW = 15.625 kHz, it is more than half the channel width. So the same oscillator mismatch can be almost irrelevant for a wide channel and fatal for a very narrow one. Semtech gives a particularly useful rule of thumb: LoRa can tolerate frequency error on the order of 25% of the programmed bandwidth. Their example says that with BW = 125 kHz, an offset as large as roughly ±31 kHz can still be tolerated. That is quite a lot.
LoRa Coding
Communication links are never completely error-free. Noise, interference and fading may change some of the received bits, so communication systems usually add redundancy to the transmitted data. This is known as error-control coding or, more generally, channel coding. The redundancy may be used to detect that errors have occurred, or to correct some of them. When the receiver can correct errors directly from the information contained in the same transmission, this is called Forward Error Correction (FEC). A CRC is another form of channel coding, normally used for error detection rather than correction. If a detected error causes the packet to be transmitted again, that retransmission mechanism belongs to a higher-level strategy such as ARQ (Automatic Repeat reQuest).
LoRa uses both approaches:
First, the payload is protected by FEC. LoRa adds redundant bits according to a configurable Coding Rate (CR). These redundant bits allow the receiver to recover from some transmission errors without requesting another copy of the packet.
Separately, LoRa can add a CRC to the payload. After reception and FEC decoding, the CRC provides a final check on whether the recovered payload is consistent with what was transmitted.
A useful practical picture is therefore:and at the receiver the process is reversed.
The two mechanisms have different purposes:
- FEC attempts to repair errors.
- CRC attempts to detect errors that remain after reception and decoding.
The CRC does not itself cause retransmission. If a protocol requires reliable delivery, it may use the CRC result to reject the packet and request or wait for another transmission.
Coding Rate (CR):
The amount of FEC redundancy is selected using the LoRa Coding Rate. The standard settings are:
| Coding rate | Coded bits for 4 information bits | Redundancy |
|---|---|---|
| 4/5 | 5 | 25% |
| 4/6 | 6 | 50% |
| 4/7 | 7 | 75% |
| 4/8 | 8 | 100% |
For example, with CR = 4/5, four information bits are represented using five coded bits. With CR = 4/8, four information bits require eight coded bits.
Increasing the redundancy gives the decoder more information with which to recover corrupted data. The price is that more coded bits must be transmitted for the same useful payload.
Therefore, increasing the FEC redundancy generally:
- improves robustness against transmission errors;
- increases packet airtime;
- increases energy used per transmission;
- reduces effective data throughput;
- increases channel occupancy.
Unlike SF and BW, changing CR does not change the duration or frequency sweep of an individual chirp. It changes how much coded information must be carried by the sequence of LoRa symbols.
Payload CRC:
The LoRa payload CRC is optional and can be enabled or disabled. With the CRC enabled, additional check bits are appended to the payload. After the packet has been received and decoded, these bits allow the receiver to determine with very high probability whether the resulting payload contains residual errors. With the CRC disabled, those extra bits are not transmitted. This slightly reduces packet overhead and airtime, but the receiver loses this final payload-level error check.
Importantly: Disabling the CRC does not disable LoRa’s FEC.
The Coding Rate and payload CRC are independent settings. A packet can therefore use, for example, CR = 4/7 while having its payload CRC either enabled or disabled.
Likewise, the normal LoRa Coding Rate cannot simply be set to “no coding”: one of the supported CR settings is used, with 4/5 providing the smallest amount of FEC redundancy.
Practical trade-off:
The choice of coding rate is therefore another balance between robustness and efficiency.
More redundancy may allow a packet containing some corrupted bits to be recovered successfully, avoiding a complete packet loss. But the same redundancy also lengthens every transmission.
The CRC has a different trade-off: it adds only a small amount of overhead, but provides an independent check that the final decoded payload is valid. Whether a corrupted packet is simply discarded or later retransmitted is a decision made above the LoRa physical layer.
Transmit power
The transmit power determines how much RF power the transmitter delivers to the antenna. It is normally specified in dBm. Because dBm is logarithmic, an increase of 3 dB approximately doubles the transmitted power, while 10 dB corresponds to ten times more power.
Increasing transmit power directly improves the link budget: increasing the transmitted power by 1 dB ideally increases the received signal power by 1 dB. This can increase range or provide additional margin against obstacles, fading and interference. Unlike SF or BW, transmit power does not change the LoRa waveform, data rate or packet airtime.
The cost is mainly energy consumption. Higher transmit power requires more transmitter current, so battery-powered nodes should not transmit at unnecessarily high power. It can also increase interference to other users of the same spectrum.
Some LoRa transceivers provide more than one RF output path. For example, the widely used SX1276/77/78/79 family provides an RFO output for lower transmit powers and a PA_BOOST output for higher powers. Selecting PA_BOOST changes which internal power amplifier and RF output path are used; it is therefore more than simply changing a numerical power setting. Typical programmable ranges are approximately 0 to +14 dBm on RFO and +2 to +17 dBm on PA_BOOST. A special high-power configuration can extend PA_BOOST to about +20 dBm, at the cost of higher current consumption and additional operating restrictions.
Finally, noyte that transmit power may also be limited by both the radio hardware and local regulations.