
Bandwidth, coding and the packet
A packet is a preamble, a header, a payload and a check, and every part has a time on the air. This lesson widens the band, adds coding and drops the header, and reads the total off the timeline.
Bandwidth
The chirp sweeps across the bandwidth, so the bandwidth sets how fast the sweep can be. LoRaWAN regions use 125, 250 and 500 kHz, and the chips offer more, down to 7.8 kHz. Doubling the bandwidth halves the symbol time, so the same packet takes about half the time and the nominal bit rate doubles. It also lets twice the noise into the receiver, about 3 dB of sensitivity, which is the price.
Coding
The coding rate is 4/5, 4/6, 4/7 or 4/8: for every four data bits the radio sends five to eight. The extra bits let the receiver repair a few damaged ones. Nothing is free. Stronger coding makes the payload longer, in steps, so it costs airtime for robustness against errors.
The packet
A packet is a preamble, a header, the payload and, optionally, a 16-bit check. The preamble is a programmable number of plain chirps, eight in LoRaWAN, followed by the sync word and delimiter, 4.25 symbol times more. In the default explicit mode the header says how long the payload is, how it is coded and whether a check follows, and it has its own protection. In implicit mode there is no header, which saves a little airtime, but both ends must already agree on length, coding and check, because nothing in the packet says.
The check and the coding are different operations. The check detects that the payload was damaged. The coding repairs a few bits. With the check on, a damaged payload is flagged as damaged. With it off, a damaged payload looks like any other.
A rate is not throughput
Nominal bit rate is the spreading factor times the coding fraction times the bandwidth over 2^SF. It is a rate for the modulation alone. The preamble, the header, the check, and in LoRaWAN the protocol's own overhead all take airtime that carries none of your bytes, so the bits that arrive per second are lower, and on a six byte report they are far lower.
Common mistakes
- Treating the check as error correction. The check only detects damage. Repair is the coding's job, and it costs time.
- Reading the nominal rate as throughput. Preamble, header and check come out of the airtime before any payload does.
- Switching to an implicit header on one end. The two ends must agree on length, coding and check beforehand, or the receiver reads nothing.
Edit this page — content/fundamentals/lora/bandwidth-coding-and-the-packet.mdx
Discuss this article
Ask about this page. The answer stays here, on the page it belongs to, for whoever hits the same wall next.