Content uploaded by Georgios Z. Papadopoulos
Author content
All content in this area was uploaded by Georgios Z. Papadopoulos on Jun 11, 2019
Content may be subject to copyright.
Investigating Theoretical Performance and
Demodulation Techniques for LoRa
Alexandre Marquet, Nicolas Montavont, and Georgios Z. Papadopoulos
Abstract—LoRa is a popular low-rate, low-power wide area
network technology providing long range wireless access over
unlicensed sub-GHz frequency bands to the Internet of Things
(IoT). It has been used in many applications ranging from smart
building to smart agriculture. LoRa is a patented modulation, but
preliminary reverse-engineering efforts documented parts of it. In
this paper, we first present the LoRa modulation architecture. We
then tackle with channel coding, whitening and interleaving with
reverse-engineering in mind. Based on these early developments,
we derive closed-form expressions of the different stages of
the LoRa transceiver which, in turn, allows us to assess the
performance of LoRa under known channels using simulations.
Index Terms—LoRa, Internet of things, chirp spread spectrum,
reverse engineering, low-power wide area networks, software
defined radio, cognitive radio.
I. INTRODUCTION
The Internet of Things (IoT) is a general concept of
connecting “things” to a global network using standardized
protocols and following the principles of the Internet. For ex-
ample, it is considered in smart city to equip buildings, roads,
infrastructures with smart objects. These objects have different
purposes: they can monitor, gather data or activate / de-activate
systems. In Industry 4.0, IoT is considered for production
chain, or simply to monitor / control factories. Because one
can not fit all, several technologies have been developed to
address specific requirements in terms of radio range, bit error
rate, and latency. Rather than seeing one technology imposing
itself for the IoT, it is a mix of technologies that will allow
inter-connecting objects, and Internet Protocol (IP) is the glue
among all these technologies to provide a standard method to
access data, whatever the network used to gather them.
LoRa is a long range, low data rate and low power
technology designed for constrained devices [1]. On top of
this physical layer, the LoRaWAN protocol was developed to
provide access to the medium. The medium access is based
on the ALOHA protocol, and is organized in a star topology,
where devices directly transmit their traffic to a gateway that
is connected to a core network.
LoRa is however a closed physical layer, which prevents
studying the technology, and developing various optimizations
likely to be proposed by the community. Furthermore the ISM
band, used by many consumer devices ranging from WiFi-
enabled products to wireless doorbell and LoRa IoT devices, is
an overcrowded physical resource. In this kind of environment,
cognitive radio (i.e., smart radios, able to cooperatively share
physical resource) is a promising technology. Now, an effective
M. Alexandre Marquet, Nicolas Montavont and Georgios Z. Papadopoulos
are with the IMT Atlantique, IRISA, UBL, F-35576 Cesson S´
evign´
e, France.
way of implementing cognitive radio strategies is to use
software radios. Thus, having a proper description of a LoRa
transceiver could leverage research and development around
smart LoRa radios.
Prior works have been done towards open source LoRa
decoders. [2] and [3] are the only two reports, to the best of
our knowledge, which document a reverse engineering work
on LoRa and provide open source implementations. However,
[3] provided a sub-optimal Chirp Spread Spectrum (CSS) de-
modulator which requires high Signal-to-Noise Ratio (SNR).
The implementation of [2] uses an optimal demodulator, how-
ever, the authors wrongly assumed that dewhitening should
be performed prior to deinterleaving. This make the retro-
engineering process more difficult (for instance, they need dif-
ferent whitening sequences depending on the spreading factor
and the coding rate). Other implementations exist, but are not
properly documented and hard to set up (e.g., [4]). Regarding
the CSS modulation, [5] gave a continuous-time expression of
CSS signals. More recently, [6] derived the optimal receiver
over Additive white Gaussian Noise (AWGN), and [7] found
out that CSS modulation is an instance of orthogonal signaling,
and used this result to give closed-form formulas of bit-error
probability over AWGN and Rayleigh fading channels.
In this paper, we propose a detailed analysis of the LoRa
physical layer, formally describing all the steps to encode
and modulate the signal. We compare different modulation
strategies for CSS, and assess the performance of the whole
LoRa system over classical channels by means of simulations.
The performance assessment shows that LoRa is indeed a
good candidate for long range transmissions over time and/or
frequency selective channels.
This article is organized as follows. Section II formally
details the LoRa architecture, gives methods to reverse-
engineering individual components of the transceiver, and
derives a discrete-time complex baseband equivalent of CSS
modulated signals. Then, section III gives closed-form ex-
pressions for various CSS demodulation strategies. Finally,
simulations in section IV allows to compare demodulation
strategies, as well as to assess CSS and LoRa performance
over AWGN, time selective and frequency selective channels.
II. SYSTEM ARCHITECTURE AND REVERSE-ENGINEERING
This section details all the algorithms involved when trans-
mitting and receiving data over LoRa, as originally described
in [3] (see Fig. 1). We also provide instructions on how to
reverse-engineering key parameters for these algorithms.
bChannel
coding
w
Interleaving Bits to
symbols
CSS
modulator
Channel
CSS
demodulator
Symbols
to bits Deinterleaving
w
Channel
decoding ˆ
b
bcbwbi
c
s(t)r(t)
ˆc
ˆ
biˆ
bwˆ
bc
Fig. 1. Architecture of a LoRa transceiver.
The message consists in Lbits, and is modeled as a binary
vector of independent and identically distributed bits: b∈
{0; 1}L.
Channel code is introduced to improve reliability to noise.
This step introduces redundancy, and yields a (longer) binary
sequence denoted bc∈ {0; 1}L/η, with 0< η < 1the coding
efficiency.
Channel coding introduces correlation between bits, which
is usually unwanted for designing the receiver. Reducing this
correlation is the goal of the whitening algorithm, which
computes an exclusive-OR of bcwith a whitening sequence
w∈ {0; 1}L/η, which possesses good statistical properties.
This results in a sequence of whitened bits bw∈ {0; 1}L/η.
Then, the interleaver scatters the coded sequence in time, in
order to reduce the impact of impulsive noise [8, Chap. 14.6].
The output of the interleaver is a deterministic shuffle of the
bits in bw, which is denoted as bi∈ {0; 1}L/η.
Next, groups of SF bits are made in order to produce
symbols taking their values in A= [0; 2SF −1], yielding
a sequence of symbols c∈ AL/(SF.η). The correspondence
between groups of SF bits and values in Afollows a Gray
mapping, so that adjacent symbol values encode binary values
that only differ by one bit.
Finally, the CSS modulator translates cinto a physical
signal s(t), which is observed as a corrupted signal r(t).
The receiver basically revert every steps done in the trans-
mitter.
In the following subsections, the reader will find more
information on how each step actually work, as well as the
methods used to reverse-engineer their parameters (if needed).
A. Channel coding and decoding
The goal of any channel code is to make transmissions more
robust to the noise introduced by communication channels,
using redundancy. In LoRa, the amount of redundancy is
controllable by the parameter “coding rate” [9], denoted as
CR ∈[1; 4] in the following. In [2] and [3], authors have
determined that LoRa uses systematic block codes acting on
blocks of 4 bits, and producing codewords of (4 + CR)bits,
giving a code efficiency η= 4/(CR + 4).
Let us denote bk= (b4k. . . b4k+3)Tthe kth block of 4 bits
in b, and bc
k=bc
(4+CR)k. . . bc
(4+CR)(k+1)−1T
the associated
codeword, where ·Tdenotes vector transposition. Then, the
coding process can be described by the following equation:
bc
k=Gbk,(1)
where Gis the binary generator matrix, with size ((CR +
4) ×4). Note that (1) and following equations in this part
use arithmetics over GF(2), which means that additions use
exclusive-OR and multiplications use logical AND. Given that
the block size is 4, and that the code is systematic, we have:
G=P
I4,(2)
where I4is the (4 ×4) identity matrix, and Pis a (CR ×4)
binary matrix to be found.
Given the small size of P, its value can be easily brute-
forced by testing every possible matrix Pagainst a received
sequence ˆ
bc. Note that this strategy needs working implemen-
tations of the dewhitening and the deinterleaving, and assumes
an error-free transmission.
With Gcompletely determined, we implement a syndrome
decoding algorithm for our simulations in section IV. This
algorithm allows hard-value maximum-likelihood decoding [8,
Chap. 7.5].
B. Whitening and dewhitening
The whitening operation adds (in GF (2)) a known pseudo-
random sequence to the output of the channel coder (coded
bits bc):
bw=w+bc.(3)
Thanks to the property that a+a= 0 ∀a∈[0; 1] in GF (2),
whitening and dewhitening are similar operations. The only
difference being that the later takes a whitened sequence
(estimates of the whitened sequence ˆ
bw, in the case of LoRa)
and outputs the original sequence (estimates of the coded
sequence ˆ
bc, here).
The whitening sequence can be easily recovered by exploit-
ing the linearity of the channel code. Indeed, according to
(1), the codeword associated to the all-zeros block is the all-
zeros codeword. So, when sending b=0L×1, the whitened
sequence reduces to the whitening sequence: bw=w. In
this case, assuming that we have a working implementation of
the deinterleaver, and an error-free transmission, the whitening
sequence can be retrieved as w=ˆ
bw.
Note that having an error-free transmissions is hard to
obtain, which explains why open-source implementations [3]
[2] [4] found different whitening sequences.
C. Interleaving and deinterleaving
LoRa is an instance of Bit-Interleaved Coded Modulations
(BICM), known to be able to provide robust performance
under both fading and AWGN channels. With this kind of
modulation, interleaving is used to scatter the individual bits
of each codeword in time, providing better immunity to noise
bursts (or, equivalently, fadings) [8, Chap. 14.6].
The interleaver used in LoRa have successfully been retro-
engineered in [3], and is described bellow. It acts on a block of
SF whitened codewords (with size CR+ 4 bits), and outputs a
block of (CR+4)×SF interleaved bits, ready to be mapped to
CR + 4 symbols. We denote Bthe k-th block of SF whitened
codewords, defined as:
B=
bw
k. . . bw
k+(CR+4)−1
.
.
.· · · .
.
.
bw
k+(SF−1)(CR+4) . . . bw
k+SF(CR+4)−1
,(4)
with bw
kthe k-th element of bw. From there, denoting Bi,j the
element of Bat line index iand column index j, the k-th
block of interleaved bits IB is defined element-wise by:
IBi,j =BSF−1−((j−i)mod SF),(CR+4)−1−i
∀i∈[0; (CR + 4) −1], j ∈[0; SF −1].(5)
Finally, each line of IB contains SF interleaved bits to be
mapped to symbols later on:
bi
k+l.SF . . . bi
k+(l+1).SF−1=δl.IB
∀l∈[0; (CR + 4) −1],(6)
where δlis a line vector of size (CR+4) whose l-th entry has
value 1, and every other entry has value 0. This process can
be decomposed in several elementary operations, as explained
in Fig. 2.
01110010
11101000
10100011
00000000
00101110
11010001
11111111
Input: B
11111111
10001011
01110100
00000000
11000101
00010111
01001110
11000111
11010001
00100100
01011100
10101111
01011111
00000010
1100100
1101010
0010100
0101010
0001110
1011110
1000111
1100110
Output: IB
180° rotation
Transposition
Downward circular
shift by
column index.
Fig. 2. Decomposition of the interleaving process. Example with SF = 7 and
CR = 4.
The deinterleaving process is formally described as follows.
The k-th matrix of estimated interleaved bits ˆ
IB is constructed
as follows:
ˆ
IB =
ˆ
bik. . . ˆ
bik+SF−1
.
.
.· · · .
.
.
ˆ
bik+(CR+4−1)SF . . . ˆ
bik+(CR+4)SF−1
.(7)
From there, the k-th block of SF whitened codewords ˆ
Bis
defined element-wise by:
ˆ
Bi,j =ˆ
IB(CR+4)−1−j, [SF−1−i+(CR+4)−1−j]mod SF
∀i∈[0; SF −1], j ∈[0; (CR + 4) −1].(8)
Where each line of ˆ
Bis an estimated whitened codeword:
ˆ
bwk+l.(CR+4) . . . ˆ
bwk+(l+1).(CR+4)−1=δl.ˆ
B
∀l∈[0; SF −1].(9)
This deinterleaving process corresponds to the same steps as
in Fig. 2, but in reverse.
D. Chirp spread spectrum modulation
CSS uses linear chirps (see Fig. 3) to spread information
carried by each symbol in the time-frequency plane. This
allows good resilience to time (as implied, for instance, by
Doppler shifts) and frequency selective channels (as implied,
for example, by multipath signal propagation) [10]. It is an
index-based modulation, which uses the initial frequency shift
of the chirp carrying a symbol to encode its value (see Fig.
3) [5].
Let us denote Bthe bandwidth of the signal, Tthe time
to transmit a symbol, then log2(B.T ) = SF is the spreading
factor. As for Direct Sequence Spread Spectrum (DSSS) sys-
tems, SF characterizes the increase in bandwidth occupation
for a fixed value of T. As seen in the previous parts, in the
case of the LoRa modulation, SF also gives the number of
bits carried by a single symbol, meaning that a symbol can
take M=B.T = 2SF values.
0T
−1
0
1
Time
s(t)
R{s(t)}
I{s(t)}
0T
−B
2
0
B
2
c. B
M
Time
Frequency of s(t)
Fig. 3. Transmission of one chirp corresponding to symbol c= 50,
with M=128. R{·} and I{·} denote the real part, and the imaginary part,
respectively.
Using these notations, we define the expression of the
complex baseband equivalent of the base chirp, that is the
chirp that encodes the symbol 0. This base chirp g0(t)has
a frequency that linearly grows from −B/2at t=−T/2to
B/2at t=T /2(as to span the whole available bandwidth B
during the time of a symbol T):
g0(t) = ejπ B
Tt2ΠT(t)∀t∈R,(10)
where ΠT(t)is the rectangular window of size T:ΠT(t)=1
for all t∈[−T/2; T/2[, and ΠT(t)=0otherwise. In order to
modulate a symbol c∈ A = [0; 2SF−1], the initial frequency of
g0(t)is shifted by c.B/M =c/T Hz, and extra steps are taken
to make sure that the chirp is wrapped between [−B/2; B/2]
as illustrated in Fig. 3:
gc(t)=ΠT(t).ej2π(B
2Tt+c
T)t
.(1if B
Tt+c
T∈[−B/2;B/2]
e−j2πlBt if B
Tt+c
T∈[(l−1)B/2;(l+1)B/2] ,∀t∈R, l ∈Z.
(11)
Finally, the modulated signal consists in multiple symbols sent
sequentially, with a time spacing of Tseconds:
s(t) =
L/(SF.η)
X
n=0
gcn(t−nT )∀t∈R,(12)
where cndenotes the n-th element of c.
To obtain a discrete-time expression for s(t), we sample at
the Shannon-Nyquist rate : Fe= 1/Te=B. Consequently,
using the relation B.T =M, we also have T=M.Te
and Te/T = 1/M. This gives the following discrete-time
expression for s(t):
s[k] = s(kTe) =
L/(SF.η)
X
n=0
gcn(kTe−nT )(13)
=
L/(SF.η)
X
n=0
gcn((k−nM)Te)(14)
=
L/(SF.η)
X
n=0
gcn[k−nM],∀k∈Z.(15)
Let us now derive the discrete-time expression of a modulated
chirp:
gc[k] = gc(kTe)=ΠT(kTe).ej2π(B
2TkTe+c
T)kTe
.(1if B
TkTe+c
T∈[−B/2;B/2]
e−j2πlBkTeif B
TkTe+c
T∈[(l−1)B/2;(l+1)B/2] ,∀k , l ∈Z,
(16)
where ΠT(kTe) = Π T
Te
(k) = ΠM(k) = ΠM[k], and
e−j2πlBkTe=e−j2πlk = 1 ∀l, k ∈Z. Thus, the expression
of gc(t)is simpler in the discrete-time domain:
gc[k]=ΠM[k].ej2π(B
2TkTe+cn
T)kTe(17)
= ΠM[k].ej2πTe
T(BTe
2k+cn)k(18)
= ΠM[k].ej2π1
M(1
2k+cn)k(19)
= ΠM[k].ejπ k2
Mej2πcn
Mk,∀k∈Z.(20)
Now, incorporating (20) in (15), we obtain:
s[k] =
L/(SF.η)
X
n=0
ΠM[k−nM].ejπ (k−nM )2
M.ej2πcn
M(k−nM)
(21)
=ejπ k2
M
|{z}
Chirp
L/(SF.η)
X
n=0
ΠM[k−nM].ej2πcn
Mk
| {z }
M-FSK
,∀k∈Z,(22)
which shows that CSS modulations are basically chirped
versions of M-arry Frequency Shift Keying (M-FSK) mod-
ulations.
III. CHIRP SPREAD SPECTRUM DEMODULATION
In this section, we introduce three demodulation strategies:
quadrature demodulation, as used in [3], coherent and non-
coherent receivers. These strategies will be assessed later on,
in Section IV. In order to present the three demodulation
strategies of this part, we consider an AWGN channel:
r[k] = s[k] + z[k],∀k∈Z(23)
where z[k]is a zero-mean, complex-circular white Gaussian
noise.
The three following demodulators use the same dechirping
operation, described as:
rd[k] = r[k]e−jπ k2
M,∀k∈Z,(24)
where rd[k]is the dechirped observed signal. This operation
does not change the statistical properties of the noise, thus this
system model, involving rd[k]instead of r[k]is equivalent to
M-FSK over AWGN.
A. Quadrature demodulation
Quadrature demodulation is a technique that is usually
applied to analog Frequency Modulated (FM) signals. It was
retained by Robyns et al. [3] in their software-defined radio
implementation, because of its low-complexity. Its use in M-
FSK demodulation comes from the fact that these modulations
can be seen as frequency modulated M-arry Amplitude Shift
Keying (ASK) modulations. Thus, it is actually a two-stage
demodulation process. The first stage performs quadrature
detection of the frequency variation in rd[k], and the second
performs M-ASK demodulation on this frequency variation.
Quadrature detection reads as follows:
Q{rd[k]}= arg {rd[k]r∗
d[k−1]},∀k∈Z,(25)
where (·)∗denotes the complex conjugation. As frequency is
the derivative of the phase, this detector corresponds to the
digital derivative of the phase of the received signal. After
quadrature detection, the signal is analogous to an M-ASK
modulated signal:
Q{rd[k]}=2π
M
L/(SF.η)
X
n=0
ΠM[k−nM]cn+z0[k],∀k∈Z,
(26)
but corrupted by a noise z0[k]that has no guarantee to be
Gaussian nor white.
Nevertheless, symbols ccan be demodulated with matched
filtering:
ˆcn=1
2π(ΠM∗rd) [n](27)
=
L/(SF.η)
X
n0=0
+∞
X
k=−∞
ΠM[k−nM]ΠM[k−n0M]cn0(28)
+ (ΠM∗z0)[n]
=cn+ (ΠM∗z0)[n],(29)
where ΠM[k]is the matched filter of itself as it is real and
symmetrical.
This technique is suboptimal due to the fact that (i) quadra-
ture detection is not an optimal frequency detector in presence
of AWGN, and (ii) ASK demodulation is performed using
matched filtering (which is a maximum likelihood detector
in presence of AWGN) even though the noise z0[k]is not
AWGN [8, Chap. 4.4]. However, transposing the demodulation
problem from M-FSK to M-ASK allows using standard and
well studied techniques for various channel impairments such
as clock drift, CFO and channel selectivity.
B. Coherent receiver
A maximum likelihood demodulation strategy for M-FSK
in presence of AWGN is to find the symbols c∈ A whose
associated signal e2πc
Mkcorrelates the best with the observed
signal rd[k][8, Chap. 4.4]. This is expressed as follows:
ˆcn= argmax
c∈A
R(+∞
X
k=−∞
ΠM[k]e−2πc
Mkrd[k+nM]).
(30)
One can observe the term in the real part is actually the M
point Discrete Fourier Transform (DFT), denoted as FM{·}[·],
of the received signal:
ˆcn= argmax
c∈A
R {FM{rd[k+nM]}[c]},(31)
which can be efficiently implemented thanks to the Fast
Fourier Transform (FFT) algorithm [11].
Expanding the correlation term in (31) allows to understand
why M-FSK modulations are effective in low SNR conditions,
especially as Mgrows bigger:
FM{rd[k−nM]}[c0](32)
=FM{s[k−nM]}[c0] + FM{z[k]}[c0]
=
L/(SF.η)
X
n0=0
FM{ΠM[k−(n−n0)M].ej2πcn
Mk}[c0](33)
+FM{z[k]}[c0]
=M.δn−n0δcn−c0
n+FM{z[k]}[c0],(34)
where δn= 1 if n= 0 and zero otherwise. As we can
see, the correlator output corresponding to the symbol that
was sent has its amplitude augmented by M, as opposed to
the other correlators. This means that this modulation along
with coherent demodulation gets more robust to noise as M
increases. However, as B.T =M, this comes at the expense
of either an increased bandwidth or a decreased symbol rate.
C. Non-coherent receiver
While effective, the coherent receiver is very sensitive to
channel impairments other than white noise. In particular, due
to the real part in (31), any channel impairment that translates
to a phase shift in (32), results in a loss of reliability.
Non-coherent detection is a computationally efficient way
to tackle this issue, as it only replaces the real part operator
by the magnitude operator in (31):
ˆcn= argmax
c∈A
|FM{rd[k+nM]}[c]|.(35)
However, this comes at the expense of a reduced noise
immunity.
IV. SYS TE M SI MU LATI ON S
In the following, we assess the performance of CSS and
LoRa over three channels: AWGN, frequency selective, and
time selective. We implemented channel coding, whitening and
interleaving as described in previous sections using GNURa-
dio, and the source code is available in [12].
The frequency selective channel is Proakis B [8, chap.
9.4]: r[k] = (0.407δk−1+ 0.815δk+ 0.407δk+1)s[k] +
z[k]. The time selective channel is cosined-shaped: r[k] =
[(cos(2πk/M) + 1) /1.5] s[k] + z[k]. Both channels are non-
invertible, which means that part of the information carried by
s[k]is lost during the transmission.
Finally, performance in each scenario is assessed with
respect to the per-bit SNR of the transmission, denoted as
Eb/N0. SNR and per-bit SNR are related by the spectral effi-
ciency α(in bits/s/Hz) of the modulation: SN R =αEb/N0.
In the case of LoRa and M-FSK, the spectral efficiency is
given by: α=ηSF/M = 4.SF/(M.(CR + 4)).
0 5 10 15 20 25 30
10−4
10−3
10−2
10−1
Eb/N0(dB)
BER
Coherent
Non-coherent
Quadrature
Quadrature (oversampled)
Fig. 4. Comparison of coherent, non-coherent, and quadrature receivers over
AWGN with SF = 9.
We first compare the three demodulation techniques pre-
sented in III on Fig. 4. As expected, quadrature demodulation
has the worst performance, which can however be improved
by oversampling the received signal. However, even with an
oversampling factor of 2, quadrature demodulation suffers
from an Eb/N0difference as high as 23dB at BER = 10−4
with respect to coherent demodulation. The difference between
coherent and non-coherent demodulation is much less, in the
order of magnitude of 1dB.
0 2 4 6 8 10
10−4
10−3
10−2
10−1
Eb/N0(dB)
BER
CSS
M-FSK
AWGN
Frequency selective
Time selective
Fig. 5. Performance of CSS in comparison with M-FSK, using coherent
demodulation over AWGN, frequency selective, and time selective channels,
with SF = 9.
CSS modulations promises to be resilient to channels ex-
hibiting time and frequency selectivity. This is confirmed by
Fig. 5. When compared to M-FSK, CSS modulation presents
much better performance over frequency selectivity, while
retaining the same performance over AWGN (as expected, see
part III) and time-selective channels.
0 2 4 6 8 10
10−4
10−3
10−2
10−1
Eb/N0(dB)
BER
LoRa
CSS
AWGN
Frequency selective
Time selective
Fig. 6. Performance of LoRa in comparison with CSS, using coherent
demodulation and SF = 9, CR = 4 over AWGN, frequency selective, and
time selective channels.
Finally, in Fig. 6, we compare CSS and our LoRa imple-
mentation with the most robust channel coding (CR = 4). We
observe that the additional steps taken to improve robustness to
time and frequency selectivity are effective for high values of
Eb/N0. In this configuration, as one can see on Fig. 6, LoRa
outperforms regular CSS at Eb/N0>8dB for the selected
time selective channel, and at Eb/N0>7.5dB for the selected
frequency selective channel. Note that LoRa effectiveness
could be furthered improved by using soft-decoding, at the
price of a greater complexity in the receiver.
V. CONCLUSION
In this paper, we presented the LoRa modulation architec-
ture. We discussed channel coding, whitening and interleaving
with reverse-engineering in mind. In particular, we identified
the challenges for determining correct whitening sequences,
and gave closed-form expression for interleaving and dein-
terleaving. We derivated the discrete-time expression of the
CSS modulated signal, and used it as a basis to express and
study several demodulation strategies. By means of simulation,
we showed that quadrature demodulation of CSS modulateed
signal is outperformed by coherent and non-coherent receivers.
We confirmed that CSS modulation has good properties for
transmissions over time and frequency selective channels.
Finally, we observed that the three extra stages used in LoRa
show a moderate benefice compared to standalone CSS.
This benefice could be improved by using soft-decoding,
which implies a greater receiving complexity, and could be
relevant, in particular, for base stations.
REFERENCES
[1] O. Seller and N. Sornin, “Low power long range transmitter,” European
Patent EP 2 763 321 A1, 2014.
[2] M. Knight and B. Seeber, “Decoding LoRa: Realizing a Modern
LPWAN with SDR,” Proceedings of the GNU Radio Conference, vol. 1,
no. 1, 2016.
[3] P. Robyns, P. Quax, W. Lamotte, and W. Thenaers, “A Multi-Channel
Software Decoder for the LoRa Modulation Scheme,” in Proceedings of
the 3rd International Conference on Internet of Things, Big Data and
Security - Volume 1: IoTBDS,, INSTICC. SciTePress, 2018, pp. 41–51.
[4] Myriad RF. (2018, June) An SDR LoRa implementation for R&D. Com-
mit 52ec64d. [Online]. Available: https://github.com/myriadrf/LoRa-
SDR/
[5] C. Goursaud and J.-M. Gorce, “Dedicated networks for IoT : PHY /
MAC state of the art and challenges,” EAI endorsed transactions on
Internet of Things, Oct. 2015.
[6] L. Vangelista, “Frequency Shift Chirp Modulation: The LoRa Modula-
tion,” IEEE Signal Processing Letters, vol. 24, no. 12, pp. 1818–1821,
Dec 2017.
[7] T. Elshabrawy and J. Robert, “Closed-Form Approximation of LoRa
Modulation BER Performance,” IEEE Communications Letters, vol. 22,
no. 9, pp. 1778–1781, Sep. 2018.
[8] J. Proakis and M. Salehi, Digital Communications, ser. McGraw-Hill
International Edition. McGraw-Hill, 2008.
[9] SX1276/77/78/79 Datasheet, Rev. 5 ed., Semtech, August 2016.
[10] AN1200.22 LoRa Modulation Basics, Rev. 2 ed., Semtech, May 2015.
[11] R. Singleton, “A short bibliography on the fast Fourier transform,” IEEE
Transactions on Audio and Electroacoustics, vol. 17, no. 2, pp. 166–169,
June 1969.
[12] A. Marquet, “GNURadio implementation of a LoRa transceiver,” Apr.
2019. [Online]. Available: https://doi.org/10.5281/zenodo.2653546