hybrid arq scheme using in-band full-duplex...
TRANSCRIPT
GRADO EN INGENIERÍA DE TECNOLOGÍAS Y
SERVICIOS DE TELECOMUNICACIÓN
TRABAJO DE FIN DE GRADO
Hybrid ARQ scheme using
in-band full-duplex LoRa
Realizado en École Polytechnique Fédérale de Lausanne
Director: Prof. Andreas Burg, EPFL-STI-IEL-TCL
Supervisor: Orion Afisiadis, EPFL-STI-IEL-TCL
UNIVERSIDAD POLITÉCNICA DE MADRID
ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE
TELECOMUNICACIÓN
JUAN GUIRADO LÓPEZ-PUIGCERVER
2018
TRABAJO FIN DE GRADO
TITLE: Hybrid ARQ scheme using in-band full-
duplex LoRa
TÍTULO: Sistema ARQ Híbrido utilizando Full-
Duplex dentro de banda en redes LoRa
AUTOR: D. Juan Guirado López-Puigcerver
DIRECTOR: Prof. Andreas Burg
SUPERVISOR: Mr. Orion Afisiadis
CENTRO: EPFL-STI-IEL-TCL
TRIBUNAL:
Prof. Andreas Burg
Dr. Olivier Lévêque
LUGAR DE LECTURA: EPFL, Lausana (Suiza)
FECHA DE LECTURA: 22/06/2018
CALIFICACIÓN: 5,75 sobre 6
It always seems impossible until it’s done.
— Nelson Mandela
This Bachelor Thesis is dedicated to my father, for being my mentor and advisor during the
whole degree and giving me his best to help me to succeed; and to my mother, for all the
support that she has always given to me and for having always trusted me.
I would also like to thank Orion Afisiadis, my supervisor, for being available whenever I was
stuck and for trusting me this project; as well as to Pascal Giard, because without him it would
have been impossible to implement the Polar Code scheme to this project in such a short
period of time.
AbstractMarket studies have projected that there will be around 20-30 billions of objects connected
to the Internet in 2020 (McKinsey [1]). LPWAN networks offer a solution for low-power and
long-range requirements. This solution is attracting a lot of users and the prospective state
that there will be around 3.1 million SIGFOX, LoRa and NB-IoT devices in 2024 (Analysis
Mason [2]). One of the main attractions of this technology is that they operate in unlicensed
sub-GHz frequency bands.
However, in the case of LoRa, the networks might get saturated if the growth projections are
fulfilled, because of the constraints that ISM bands impose. This problem is worse if ARQ
schemes are required. The reason for these problems is that LoRaWAN standard and ISM band
constraints limit the downlink traffic and make it dependant on the uplink traffic.
This project presents a new scheme that would reduce the impact of the uplink traffic on the
downlink one: using in-band full duplex communications. We build an ARQ LoRa full-duplex
system that proves the concept of using full-duplex with LoRa.
The system is based on an end-node that sends longer frames than usual that are composed of
a normal LoRa frame and redundancy bits, that are sent while listening for an Acknowledgment
(ACK) that comes from the gateway. Then, as soon as the end-node detects the ACK, it stops
the transmission. This project uses PHY-layer ACK messages and a modern channel coding
scheme: polar codes.
As the PHY-layer ACK message, a series of LoRa downchirps was selected, so that another LoRa
channel is not occupied but the signal is still orthogonal to the LoRa data frames.
The results show that we can have an ARQ system that would potentially increase the capacity
of the system and reduce the time for transmission (if we consider the time for retransmissions
in a normal ARQ scheme).
KeywordsWireless Communications, Internet of Things (IoT), LoRaWAN, LoRaTM, in-band full-duplex,
ARQ
v
ResumenRecientes estudios de mercado (McKinsey [1]) prevén que en 2020 habrá alrededor de 20-30
mil millones de objetos conectados a Internet. Las redes LPWAN ofrecen una solución para
aplicaciones que requieren cubrir grandes distancias con un bajo consumo. Estas redes están
atranyendo a muchos usuarios y se prevé que en 2024 haya alrededor de 3,1 mil millones de
dispositivos SIGFOX, LoRa y NB-IoT (Analysis Mason [2]), que son algunos de los sistemas
que englobados en las redes LPWAN. Una de las razones que motivan el crecimiento de estas
redes es que operan en bandas de uso común.
Sin embargo, en el caso de LoRa, las redes podrían llegar a saturarse si las previsiones de
crecimiento se cumplen, en gran medida por las restricciones que impone la utilización de
bandas de uso común. Este problema empeora si se requiere el uso de esquemas ARQ. La
razón es que el estándar LoRaWAN en el que se basa LoRa, y las restricciones impuestas
en las bandas ISM hacen que el tráfico descendente quede limitado y dependa del tráfico
ascendente.
En este proyecto, se presenta un nuevo esquema que reduciría el impacto del tráfico ascen-
dente en el descendente utilizando comunicaciones full-duplex dentro de banda. Para ello, se
ha construido un sistema ARQ full-duplex basado en LoRa que es una prueba de concepto
sobre el uso de comunicaciones full-duplex con LoRa.
El sistema consiste en un nodo que envía tramas más largas de lo normal que están com-
puestas por una trama estándar de LoRa y bits de redundancia. El nodo envía esta trama al
mismo tiempo escucha al canal en busca de una confimación (ACK) enviada por la pasarela
(gateway). Entonces, en cuanto el ACK es detectado, el nodo para la transmisión dejando
bits de redundancia sin enviar, pues ya no serían necesarios. En este proyecto se ha utilizado
mensajes de confirmación generados en la capa física y un esquema de codificación de canal
moderno: códigos polares.
Para el mensaje de confirmación en la capa física, se ha seleccionado una serie de "down-
chirps", de tal forma que no se ocupa otro canal a la vez que dicho mensaje es ortogonal a una
trama de LoRa.
Los resultados muestran que el sistema puede potencialmente incrementar la capacidad
del sistema y reducir el tiempo de transmisión (si se considera el tiempo necesario para las
retransmisiones en un sistema ARQ estándar).
Palabras ClaveComunicaciones inalámbricas, Internet de las cosas (IoT), LoRaWAN, LoRaTM, full-duplex
dentro de banda, ARQ
vii
RésuméDes études de marché récentes (McKinsey [1]) prévoient qu’en 2020, il y aura environ 20-30
milliards d’objets connectés à Internet. Les réseaux LPWAN offrent une solution pour les
applications qui nécessitent de couvrir de grandes distances avec une faible consommation.
Ces réseaux attirent de nombreux utilisateurs et c’est prevu qu’il aura en 2024 d’environ 3,1
milliards appareils SIGFOX, Lora et NB-IdO (analyse Mason [2]), qui sont quelques-uns des
systèmes englobés dans les réseaux LPWAN. Une des raisons qui motivent la croissance de ces
réseaux est qu’ils fonctionnent dans des bandes sans licence.
Cependant, dans le cas de LoRa, les réseaux pourraient devenir saturés si les prévisions de
croissance sont remplies, en grande partie en raison des restrictions imposées par l’utilisation
de bandes sans licence. Ce problème s’aggrave si l’utilisation de schémas ARQ est requise. La
raison en est que le LoRaWAN standard dans lequel LoRa est basée et les restrictions sur les
bandes ISM font le liaison descendente limitée et être dépendants du liaison ascendent.
Dans ce projet, un nouveau schéma est présenté. Ce schéma permettrait de réduire l’impact
du trafic dans la liaison ascendent en utilisant les communications en full-duplex. Ce projet
a construit un système ARQ full-duplex basé sur LoRa qui est une preuve de concept sur
l’utilisation des communications en full-duplex avec LoRa.
Le système consiste en un noeud qui envoie des trames composées d’une trame LoRa standard
et de bits de redondance. Le noeud envoie cette trame en même temps à l’écoute du canal
à la recherche d’une confirmation (ACK) envoyée par la passerelle. Ensuite, dès que l’ACK
est détecté, le noeud arrête la transmission en laissant des bits de redondance sans envoi,
puisqu’ils ne seraient plus nécessaires. Dans ce projet, nous avons utilisé des messages de
confirmation générés dans la couche physique et un schéma de codage de canal moderne :
les codes polaires.
Pour le message de confirmation dans la couche physique, une série de "downchirps" a
été sélectionnée, donc aucun autre canal est occupé en même temps que ce message est
orthogonal à une trame LoRa.
Les résultats montrent que le système peut potentiellement augmenter la capacité du système
et réduire le temps de transmission (si le temps requis pour les retransmissions dans un
système ARQ standard est pris en compte).
Mots-clésCommunications sans fil, Internet des objets (IoT), LoRaWAN, LoRaTM, full-duplex, ARQ
ix
Contents
Abstract (English/Spanish/French) v
List of figures xii
List of tables xiii
1 Introduction and Objectives 1
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Objectives and contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Structure of the report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Background: LoRa and full-duplex 5
2.1 LoRa PHY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 LoRa parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2 LoRa modulation and demodulation scheme . . . . . . . . . . . . . . . . 6
2.1.3 Physical frame format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 LoRaWAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Class of devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Full-duplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 State of the Art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Regulatory Framework 13
3.1 European Union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 Spain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 Switzerland . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4 Acknowledge signal 17
4.1 Theoretical analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.2 Simulations performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5 System design 23
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Polar codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.4 Frame format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6 System implementation 29
6.1 End-node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.1.1 Terminal with MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
6.1.2 PXI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2 Gateway . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
xi
Contents
6.2.1 Finite State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.2.2 Phase Correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.2.3 Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7 Results 39
7.1 Performance analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.2 Comparison between 2GHz and 868MHz . . . . . . . . . . . . . . . . . . . . . . . 40
7.3 Virtual downchirps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
8 Conclusion 43
8.1 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
A Project impacts 45
A.1 Social and economic impacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
A.2 Environmental impacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
A.3 Ethics impacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B Budget 47
C Resumen del proyecto 49
C.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
C.2 Contribución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
C.3 Diseño del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
C.4 Implementación del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
C.5 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
C.6 Conclusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Bibliography 55
Glossary 58
xii
List of Figures
1.1 Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.1 LoRa frame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2 LoRaWAN network diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 LoRaWAN communications stack . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
4.1 Dechirped upchirp using a downchirp as a reference . . . . . . . . . . . . . . . . 19
4.2 Result of ACK simulation 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Result of ACK simulation 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
5.1 LoRa transmitter block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.2 System block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5.3 Punctured hard-decision polar codes performance . . . . . . . . . . . . . . . . . 26
5.4 Frame format and receive windows . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.1 PXI layout and connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
6.2 End-node control panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.3 End-node states diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6.4 Gateway states diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
6.5 Gateway control panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
7.1 Performance of the system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7.2 Spectrogram of the received signal by the end-node with an ACK . . . . . . . . . 40
7.3 Received ACK symbol after dechirping . . . . . . . . . . . . . . . . . . . . . . . . 40
7.4 Spectrum of the received signal at the end-node . . . . . . . . . . . . . . . . . . . 41
7.5 Addition of Tx and Cx signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.6 Spectrograms of the received signal at the end-node . . . . . . . . . . . . . . . . 42
xiii
List of Tables
2.1 LoRa typical parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1 Frequency Allocation per regions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 ERC 70-03 non-specific short range devices specifications . . . . . . . . . . . . . . . . . . . . 15
6.1 STM Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
6.2 Gateway FSM states . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
B.1 Equipment and Software budget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
xv
1 Introduction and Objectives
1.1 Introduction
Internet of Things is one of the trending technologies that is called to change the world in the
upcoming years. Its aim is to connect billions of devices and sensors to the Internet, collecting
and exchanging data. Large-scale IoT networks are becoming a reality in applications such
as smart cities, smart power grids, intelligent transportation systems, or environmental or
agriculture monitoring systems.
Traditionally, wireless technologies based on cellular networks (e.g. GSM, UMTS, LTE) and
short-range links (e.g. IEEE 802.11, 802.15.4, Bluetooth) [3] have been used to connect sensor
devices. However, many IoT applications are characterized by low-cost sensors with constraint
battery life or by being located in remote locations. That makes the reduction in the number
of maintenance operations highly desirable, namely because of the high number of end-nodes
that these networks would have. In addition, star topologies and long-range links are desirable
in order to reduce the network management complexity [4]. For that reason, 5G cellular
networks represent a viable solution [5]. However, the IoT market is already exponentially
growing and 5G is still in the standardisation process. In this scenario, Low-Power Wide Area
Networks (LPWANs) are emerging as an alternative solution.
LPWAN technologies were designed to connect a massive number of geographically dispersed
devices at a low cost. Among these technologies, LoRaWAN, SIGFOX, Ingenu RPMA and
Weightless can be highlighted. LPWAN networks are based on the star topology and long-
range links, although they operate in unlicensed sub-GHz frequency bands.
LoRaWAN is one of the most popular. It is developed by the LoRa Alliance and it is based on
LoRa, a spread spectrum proprietary modulation. This modulation technique gives LoRa a
good robustness from interference, multipath and Doppler effects [6]. LoRaWAN standard
describes the Media Access Control and it is open access, but LoRa modulation (the PHY layer)
is patented by Semtech [7].
LoRa networks have been designed to operate in the unlicensed shared spectrum (863 MHz
to 870 MHz in Europe) using random access protocols. However, due to the high number of
devices, a great number of collisions can happen and many packets lost. Therefore, a repeat-
request scheme and acknowledgement (ACK) mechanism can be adopted, although this
scheme is not very effective because of the strict duty cycles limits and the high interference
in the shared bands [8]. This is one constraint that really limits the scalability of the networks.
1
Chapter 1. Introduction and Objectives
Meanwhile, there is a type of transceiver, called a full-duplex transceiver, that uses the same
frequency band to transmit and receive at the same time. One of the main properties of
this type of transceiver is that it can double the capacity. Therefore, full-duplex transceivers
are interesting for applications such as cognitive radio, cooperative communications or to
improve medium access protocols.
In this project we propose to use full-duplex to improve the performance of the repeat-request
and acknowledgement mechanism of LoRa. This approach would avoid collisions as it reduces
the time needed for transmissions and retransmissions.
1.2 Objectives and contributions
The project is based on a scenario where a LoRa transmitter, e.g. an IoT sensor, wants to send
some data to a gateway. In this scenario (See Fig. 1.1), we assume that there will be several
end-nodes (LoRa devices) trying to transmit, thus the number of collisions will be high. In
order to avoid classical retransmissions, we propose the full-duplex scheme with channel
encoding.
In this scheme the end-node will transmit a frame that is composed of a normal LoRa frame
and redundancy bits. The gateway tries to decode the message several times and it sends an
ACK when it finally does. The end-node, at the same time that it is transmitting, is listening for
the ACK. As soon as the gateway identifies the ACK, it stops the transmission.
The objective of this project was to design and build a full-duplex LoRa system composed by a
full-duplex LoRa end-node and a gateway that follow the scheme presented in the previous
paragraph. The result of this project is a proof-of-concept demo that shows the utility of
in-band full-duplex combined with modern channel codes for LoRa-based systems.
Figure 1.1 – General block diagram.
1.3 Structure of the report
This report is organized as follows: Chapter 2 presents the background of the project: an intro-
duction to LoRaTM PHY, LoRaWAN networks and in band Full-Duplex transceivers. Then it
2
1.3. Structure of the report
also introduces the State of art. Chapter 3 presents the regulatory framework for the European
Union, Spain and Switzerland. Chapter 4 shows the results of the Physical-Layer Acknowledge
(ACK) study. Then, in chapter 5 the design of the system is presented and in chapter 6 the
implementation of the system is shown. In chapter 7, the results of the demo are given and,
finally, chapter 8 is the conclusion.
3
2 Background: LoRa and full-duplex
2.1 LoRa PHY
LoRa is a proprietary wireless physical-layer scheme developed by Semtech. It employs
a spread spectrum modulation, that is a derivative of Chirp Spread Spectrum modulation
(CSS) [6]. The spreading is achieved with a chirp signal that continuously varies in frequency.
Like FSK, LoRa is a constant envelope modulation scheme. This modulation enables the
system to communicate over long distances due to the processing gain, being able to decode
transmissions 19.5 dB below the noise floor. For that purpose, LoRa trades data rate for
sensitivity within a fixed channel bandwidth. With LoRa, a single gateway can cover entire
cities or hundreds of square kilometres.
Apart from the processing gain, LoRa offers a high robustness and resistance to multipath
fading, Doppler Shift and narrowband interferences. The narrowband interferences are due
to the high Bandwidth-Time product and their asynchronous nature. LoRa is very resistant
to both in-band and out-of-band interference mechanisms. In addition, as the chirp pulse
is relatively broadband, LoRa is robust to multipath and fading. Furthermore, time and
frequency offsets between transmitter and receiver are equivalent, which reduces complexity.
For that reason, Doppler shift causes a small frequency shift and, thus, the timing shift in the
LoRa pulse is relatively negligible.
LoRa PHY can be used with any MAC layer and any higher-level implementations. Thus, LoRa
can coexist and interoperate with other existing network architectures. However, the optimal
MAC layer for LoRa is LoRaWAN, which was designed specifically for the LoRa deployment.
LoRa transceivers can operate between 137 MHz to 1020 MHz, but they usually operate in
Industrial, Scientific and Medical (ISM) bands: in Europe 868 MHz and 433 MHz and in the
USA 915 MHz and 433 MHz.
2.1.1 LoRa parameters
A typical LoRa radio provides five configuration parameters which determine, all together, the
transmission range, energy consumption and error rate [8].
Transmission Power (TP): It can be selected from -4 dBm to 20 dBm in 1dB steps. However,
due to hardware limitations, power levels higher than 17 dBm can only be used on a 1% duty
cycle.
5
Chapter 2. Background: LoRa and full-duplex
Bandwidth (BW): It can be selected in a range of 7.8 kHz to 500 kHz, but typically LoRa
networks operate at either 500 kHz, 250 kHz or 125 kHz. Higher bandwidth gives a higher
data rate but a lower sensitivity, because of the integration of additional noise. However,
lower bandwidths require more accurate crystals. The data is sent at a chip rate equal to the
bandwidth.
Carrier Frequency (CF): It can be selected in steps of 61 Hz between 137 MHz to 1020 MHz.
Spreading Factor (SF): It is the parameter that relates the symbol rate with the chip rate. The
number of chips per symbol is calculated as 2SF. A higher spreading factor increases the Signal
to Noise Ratio but also increases the time to transmit a packet: each increase in SF doubles the
transmission duration and the energy consumption. This parameter can be selected between
6 to 12, and signals with different spreading factor are orthogonal to each other.
Coding rate (CR): It is the Forward Error Correction (FEC) rate, which offers protection against
interferences. It can be chosen between 4/5, 4/6, 4/7 or 4/8. A higher coding rate offers more
protection, but decreases the data rate.
Typical parameters Min value Max value
Transmission Power (TP) -4 dBm 20 dBmBandwidth (BW) 125 kHz 500 kHzFrequency (CF) 125 kHz 500 kHz
Coding rate (CR) 4/8 4/5
Table 2.1 – LoRa typical parameters
2.1.2 LoRa modulation and demodulation scheme
Chirp Spread Spectrum (CSS) was originally developed for RADAR applications in the 1940s.
This kind of modulation uses wideband linear frequency modulated chirp pulses to encode
information. A chirp is a sinusoidal signal whose frequency increases or decreases over time,
following the following equation:
x(t ) = exp( jφ(t )) (2.1)
where φ(t) represents the phase and can be related to the instantaneous frequency with
equation 2.4.
φ(t ) = 2π∫
f (t )dx (2.2)
In LoRa, the frequency increases linearly with time. The symbols are encoded depending on
the frequency from which a symbol starts ( fo f f set )[9]. If that start frequency is not −BW2 there
will be a point where the frequency is BW2 and then a frequency shift equal to the sampling
6
2.1. LoRa PHY
frequency happens. Since the sampling frequency is set to be equal to the bandwidth the
frequency shifts from BW2 to −BW
2 . The dependency of the modulated symbol and the start
frequency ( fo f f set ) comes from:
fo f f set =BW
2SF•S − BW
2(2.3)
In this expression, the S represent the unsigned integer symbol that represents the information
and takes values between 0 and 2SF .
Thus, we can express the instantaneous frequency in the base-band domain:
f (t ) =BW
Tst + fo f f set if Tk−1 ≤ t < t f ol d
BWTs
t + fo f f set −BW if t f ol d ≤ t < Tk
(2.4)
Finally, if we apply equation 2.4 to equations 2.1 and 2.2, we obtain the expression for a
modulated symbol:
y(t ) =e j 2π( BW
2Tst 2+ fo f f set t ) if Tk−1 ≤ t < t f old
e j 2π( BW2Ts
t 2+( fo f f set−BW )t ) if t f ol d ≤ t < Tk
(2.5)
And the sampled version of the expression:
y[n] =e j 2π( BW
2Ts( n
fs)2+ fo f f set ( n
fs)) if Nk−1 ≤ n < n f old
e j 2π( BW2Ts
( nfs
)2+( fo f f set−BW )( nfs
)) if n f ol d ≤ n < Nk
(2.6)
The demodulation scheme is straightforward and is based on finding the start frequency of
a symbol, where the information lies. The first step is to multiply the receive signal with the
complex conjugate of a reference symbol. This reference symbol must be the same for all the
symbols. For the sake of simplicity, we choose here an upchirp where the start frequency is
-BW/2, so that the frequency does not fold:
x̄r e f (t ) = e j 2π( BW2Ts
(t )2− BW2 t ) f or Tk−1 ≤ t < Tk (2.7)
Thus, we get the following:
zdechi r ped (t ) = zRx (t )• x̄r e f (t ) =e j 2π( fo f f set+ BW
2 )t if Tk−1 ≤ t < t f ol d
e j 2π( fo f f set− BW2 )t if t f old ≤ t < Tk
(2.8)
This way, the chirping term, i.e., the term multiplying t 2 is cancelled. Besides, a frequency
7
Chapter 2. Background: LoRa and full-duplex
shift equal to the value of the sampling frequency will not appear due to aliasing. So, as the
sampling frequency is equal to the bandwidth, the frequency domain will show only one peak
at ( fo f f set ), which is the frequency that contains the symbol information.
In practice, we compute the Discrete Fourier Transform (DFT) and we take the index of the
maximum to obtain the transmitted symbol, as it is demonstrated in [10] or in [9].
2.1.3 Physical frame format
The architecture of a LoRa symbol is composed of a preamble (synchronization upchirps +
frame delimiters), a header, payload and a CRC (Cyclic Redundancy Check); as we can see in
Figure 2.1 [11]
Figure 2.1 – LoRa frame.
The preamble is firstly composed of a series of N consecutive upchirps and its aim is to
determine where is the beginning of the data. N can be set from 6 to 65545. Those upchirps
are followed 2 symbols that, carry information about the network, and 2.25 downchirps that
are called frame delimiters and are used to separate the preamble from the data. The number
of the first series of upchirps is variable, but the other 4.25 symbols are fixed. The time on air
of all those chirps is given by:
TPRE AMBLE = Ts ym(npr eambl e +4.25) (2.9)
The header contains information about the length of the payload, the presence of the CRC
and the coding rate of the rest of the message (CR). The header is encoded with a 4/8 code
and it also has its own CRC to allow the receiver to discard invalid headers. The header can be
removed from the packet, what is called header implicit mode.
Semtech has published a formula [11] with which we can calculate the number of payload
symbols, including the header:
npayload = 8+max(d (8PL−4SF +28+16C RC −20I H)
4(SF −2DE)e(C R +4),0) (2.10)
Where PL is the number of bytes of payload, SF is the spreading factor, I H = 1 when implicit
header mode is enabled and I H = 0 when explicit header mode is used. DE set to 1 indicates
8
2.2. LoRaWAN
the use of the low data rate optimization, 0 when disabled. C RC indicates the presence of the
payload C RC = 1 when on 0 when off. C R is the programmed coding rate from 1 to 4.
2.2 LoRaWAN
LoRaWAN defines the communication protocol and system architecture for the network
while the LoRa physical layer enables the long-range communication link. This protocol is
standardized by the LoRa alliance and specifies how end devices should connect to one or
more always-on LoRa gateways using the unlicensed radio spectrum in the sub-GHz ISM
bands (medium access, frame formats, provisioning and management messages, security
mechanisms...) [12]. It ensures interoperability between the IoT objects without the need for
complex local implementations.
LoRaWAN Networks form one-hop star topologies around gateways (Fig. 2.2) instead of
mesh networks, which add complexity, reduce the network capacity and reduces the battery
lifetime. Besides, the end nodes are not associated with a specific gateway, but the data is
received by multiple gateways (frontend). In the frontend, rates range between 0.3 and 50
kbps [13]. Each gateway will forward the received packet to the network server through the
backend using an IP connection (cellular, Ethernet, satellite...). Then, the Network Server (NS)
will be responsible for filtering redundant received packets, performing security checks and
scheduling acknowledgements. It is also responsible for the MAC layer processing, while the
end devices do not have any routing capabilities. In addition, with this topology, there is no
need for handover of mobile nodes.
Figure 2.2 – Network diagram (image courtesy of Semtech).
The nodes in LoRaWAN networks are asynchronous and communicate when they have data
ready to send. They use a simple, ALOHA based, scheme, without any carrier sensing or
Listen Before Talk (LBT) scheme. Synchronization consumes significant energy. As LoRaWAN
link layer do not need synchronization, LoRaWAN can consume 3 to 5 times less than other
9
Chapter 2. Background: LoRa and full-duplex
technology options.
The gateways must support a very high volume of end nodes. LoRaWAN gateways do it by
using adaptive data rate and multichannel multi-modem transceiver in the gateway. The
critical factors that affect capacity are the data rate, the number of concurrent channels, the
payload length and the frequency that the nodes transmit (messages per hour). As explained
in the previous section, signals with different spreading factor are orthogonal and the effective
data rate increase with lower spreading factors. Thus, if an end node is close to a gateway
and has a good link, it will be assigned a lower spreading factor to reduce the time on air.
Communication parameters, such as the spreading factor, can be set at design time or changed
at run-time with the Adaptative Data Rate (ADR) algorithm of LoRaWAN. ADR requires the
network server and end-devices to monitor the quality of the uplink and update parameters.
This algorithm also optimizes the battery lifetime of a node.
LoRaWAN uses two layers of security: network and application. The network one ensures
the authenticity of the node in the network while the application layer one ensures that the
network operator does not have access to the end user’s data. AES encryption is used with the
key exchange using an IEEE EUI64 identifier. Frame error detection is achieved with a 32-bit
message integrity code (MIC), that is also the one which guarantees the message authenticity
with a cipher-based message authentication code (CMAC).
Figure 2.3 – LoRa communications stack.
The upstream and downstream packets can be confirmed or unconfirmed. The typical best-
effort operation of LoRa uses unconfirmed packets. However, if it is required certain reliability,
a retransmission scheme is used.
10
2.3. Full-duplex
2.2.1 Class of devices
End devices serve different applications, so they have different requirements. For that rea-
son, the standard defines three classes of devices. These classes trade off network downlink
communication latency versus battery lifetime.
CLASS A: This class provides the longest battery life. The devices are in sleep mode most of the
time and they wake up to transmit in slots based on their own communication needs with a
small variation based on a random time basis (ALOHA scheme). Each end-device uplink is
followed by two short downlinks receive windows (1 and 2 seconds after). Therefore, Class A
devices are unreachable most of the time. When an end node receives a downlink transmission
in the first window, it is freed from opening the second window, in which a different channel
and spreading factor are used. If the Network Server wants to send data to an end node, it
will have to wait until the end node wants to transmit in the uplink. For that reason, timing is
controlled by the upstream traffic timing.
CLASS B: This class extends class B adding a series of downlink slots at scheduled times. These
slots can be activated by a beacon sent by the gateway.
CLASS C: In this class, the end node opens receive windows continuously and the only time
this devices cannot receive information is when they send a frame.
2.3 Full-duplex
In-band full-duplex is a novel approach that enables simultaneous transmission and reception
in the same frequency band. Most contemporary terminals function as both transmitter
and receiver, but they operate in half-duplex or out-of-band full-duplex. In-band full-duplex
(hereinafter just "full-duplex") offers the potential to double the spectral efficiency of a wireless
link [14]. Besides, it can also be useful beyond the physical layer, such as the access layer, as
we are going to use this concept in this project.
Full-duplex has, until now, not been widely deployed because of self-interference [15]. Self-
interference refers to the interference that the transmitting chain causes to the receiver chain,
being orders of magnitude higher than the desired received signal. Self-interference arises
from the physical closeness of the transmitting and receiving antennas. Even if we used only
one antenna and one circulator, there would be self-interference due to the imperfect isolation
leakages in the circulator.
As the transmit signal is known within the full-duplex receiver, it is possible to generate an
appropriate cancellation signal that would ideally suppress the self-interference below the
noise-floor. However, this cannot be done completely in the digital domain, because the
ADC dynamic range would be a bottleneck [15]. For that reason, part of the cancellation
must be done in the RF/analog domain. To this end, there are two architectures options:
regeneration-based and circuit-based. The former consists on building a separate RF chain
11
Chapter 2. Background: LoRa and full-duplex
where an RF cancellation signal is directly synthesized from the digital domain. The latter
consists on taking an appropriately attenuated and phase-shifted (via delay lines) replica of
the transmitted signal that then is coupled into the received signal.
However, the actual self-interference signal is a complicated function of the base-band trans-
mitted signal with many effects that are only partially known. In addition, imperfections
in the receiver circuitry can further distort the signal prior to digital self-interference can-
cellation. Thus, full-duplex systems require a detailed characterisation and modelling of
those non-idealities. The importance of those imperfections depends on the specific system
implementation.
2.4 State of the Art
Market studies have projected that there will be around 20-30 billions of objects connected to
internet in 2020 (McKinsey [1]). Other studies focused on LPWAN networks state that there
will be around 3.1 billions SIGFOX, LoRa and NB-IoT devices in 2024 (Analysis Mason [2]).
LPWAN Networks use the free-use frequency bands, so everyone is allowed to use those
frequency bands with some constraints but without paying taxes. Because of the growing
prospective, some governments have already shown concern about this issue. For instance,
the Dutch Radio-communications agency published in 2016 a report that analyses the impact
of these technologies in the use of spectrum below 1GHz and possible solutions to overcome
the issues arising from that impact [16].
In addition, some universities have also shown LoRa scalability limitations due to the legal
constraints imposed using ISM bands, especially with downlink traffic. Floris Van den Abeele
et al. showed in [17] the detrimental impact downstream traffic has on the delivery ratio
of confirmed upstream traffic, and that increasing gateway density can meliorate but not
eliminate this effect. Then, Alexandru-Ioan Pop et al. showed in [18] that the introduction of
downlink traffic can have a significant impact on the uplink throughput and that the number
of transmit attempts recommended in the LoRaWAN specification may not always be the best
choice.
However, to our knowledge this is the first proposed system applying a full-duplex scheme
in a LoRa-inspired setup. The contribution of this project is apply this idea jointly with polar
encoding, as a proof of concept.
12
3 Regulatory Framework
As stated in the previous chapter, LoRa networks operate in ISM bands. The allocation of
these bands depend on the region where the system is deployed and they are defined by the
International Telecommunication Union (ITU) Radio Regulations (RR), specifically in the
Article 5, Nos. 5.138, 5.150, and 5.280 [19].
The International Telecommunication Union Radiocommunication Sector (ITU-R) allocates
worldwide frequencies to radio services in accordance with the Radio Regulations. The RR
is an international agreement which regulates the use of frequency resources for all radio
applications, as well as the orbital positions of geostationary and non-geostationary satellites.
This agreement is binding for ITU member states. The RR are revised in the World Radiocom-
munication Conferences (WRC) to adapt the existing framework to spectrum requirements in
order to refine existing applications or facilitate the introduction of new applications.
ISM bands are reserved internationally for the use of radio frequency energy for industrial,
scientific and medical purposes rather than telecommunications. Some examples of appli-
cations of these bands are medical diathermy machines or microwave ovens. The powerful
emissions of these devices can create electromagnetic interference and disrupt radio com-
munication using the same frequency. For that reason, these devices were limited to certain
bands of frequency. Communications devices that operate in these bands, must tolerate the
interference caused by ISM equipment. Unlicensed operations are typically permitted in these
bands, since unlicensed operation typically needs to be tolerant of interference from other
devices anyway.
As ISM bands are unlicensed but the devices must tolerate interference, there has been rapid
growth in the use of these bands for low-power, short-range communications platforms. Some
examples are Bluetooth devices, Wi-Fi Networks, near field communication (NFC) devices or
LoRa Networks. The devices that operate in ISM bands are regulated by different organizations
depending on the region, for instance, the Federal Communications Commission (FCC) in the
United States.
Due to the differences from region to region in the frequency allocation, LoRaWAN standard
specifications vary based on the regional spectrum allocations and regulatory requirements.
In Table 3.1 the different frequency bands where LoRa works are shown.
In the following sections, the institutions that regulate the frequency bands and the devices
and the regulation framework that apply for the case of the European Union and Spain are
13
Chapter 3. Regulatory Framework
EuropeNorth
AmericaChina Korea Japan India
FrequencyBand
867-869MHz
902-928MHz
470-510MHz
920-925MHz
920-925MHz
865-867MHz
Table 3.1 – Frequency Allocation per regions
presented. In this area the frequency band that is specified in the LoRaWAN standard is
867-869 MHz.
3.1 European Union
LoRa devices are considered, in terms of regulation, as short range devices. Short Range
Devices (SRD) are defined, according to the European Telecommunications Standards Institute
(ETSI), as radio devices that offer a low risk of interference with other radio services, usually
because their transmitted power, and hence their range, is low.
The bands in which license-free ISM band short range devices are permitted to operate are
defined by the Electronic Communications Comittee (ECC) for countries within the European
Conference of Postal and Telecommunications Administrations (CEPT) with the Recommen-
dation ERC 70-03 [20]. In the annex 1 we find the specifications for non-specific short range
devices, like LoRa devices. Non specific SRDs category is defined by the EU Commission
Decision 2013/752/EU as all kinds of radio devices, regardless of the application or the purpose,
which fulfil the technical conditions as specified for a given frequency band. Typical uses include
telemetry, telecommand, alarms, data transmissions in general and other applications. The
mentioned specifications for non-specific short range devices are shown in table 3.2.
The Recommendation ERC 70-03 is brought to the European Union Law through the European
Union decision (EU) 2017/1483 "harmonisation of the radio spectrum for use by short-range
devices", which amends Decision 2006/771/EC.
The legislation for the 868 MHz band has been recently changed taking into account new
opportunities in the 863-868 MHz band already harmonised for short-range devices. These
possibilities apply mainly to new types of machine-to-machine (M2M)/IoT applications
in short-range device networks which can benefit from economies of scale as a result of
harmonisation at Union level.
Besides, short range devices operating in the frequency range 25 MHz to 1 000 MHz usually
follow the harmonised standard ETSI EN 300 220-2 [21], which specifies technical characteris-
tics and methods of measurements for Non-specific Short Range Devices category equipment
types. Semtech LoRa devices are made following this harmonised standard, as it is shown in
the application note [22].
Finally, the directive 2014/53/EU regulates all the equipment which intentionally emits or
14
3.2. Spain
BandEdge
FrequenciesPower
Spectrum accessand mitigationrequirements
Modulation/maximum
occupied bandwidthNotes
h1.1863-870
MHz25 mW e.r.p.
≤ 0.1% duty cycle orLBT
≤ 100 kHz for 47 ormore channels
FHSS
h1.2863-870
MHz
25 mW e.r.p.Power density:-4.5 dBm/100
kHz
≤ 0.1 % duty cycle orLBT+AFA
Not specified DSSS
h1.3863-870
MHz25 mW e.r.p.
≤ 0.1% duty cycle orLBT+AFA
≤ 100 kHz, for 1 ormore channels
modulationbandwidth ≤ 300 kHz
Narrowband /wideband
modulation.
h1.4868-868.6
MHz25 mW e.r.p.
≤ 1% duty cycle orLBT+AFA
Not specified for 1 ormore channels
Narrowband /wideband
modulation.
h1.5868.7-869.2
MHz25 mW e.r.p.
≤ 0.1% duty cycle orLBT+AFA
Not specified for 1 ormore channels
Narrowband /wideband
modulation.
h1.6869.4-869.65
MHz500 mW e.r.p.
≤ 10% duty cycle orLBT+AFA
Not specified for 1 ormore channels
Narrowband /wideband
modulation.
h1.7869.7-870
MHz5 mW e.r.p.; 25
mW e.r.p.
No requirement for 5mW e.r.p.; ≤ 1% dutycycle or LBT+AFA for
25 mW e.r.p.
Not specified for 1 ormore channels
Narrowband /wideband
modulation.
Table 3.2 – ERC 70-03 non-specific short range devices specifications
receives radio waves for the purpose of radio communication, in order to ensure an efficient
use of radio spectrum so as to avoid harmful interference.
3.2 Spain
In most cases, the decisions in term of spectrum allocation and harmonization are taken at
the European Union level, so what the Spanish Law does is basically apply the European Law
to the National Law.
Spanish Law regulates the spectrum allocations through the Royal Decree 123/2017 and the
National Table of Frequency Allocations (NTFA) [23]. The spanish NTFA is the application of
ITU Regulations [19] to the Spanish Law and the corresponding European Union decisions.
For the 863-868 MHz frequency band, the specifications are the same that were previously
shown in table 3.2.
3.3 Switzerland
The frequency allocation in Switzerland is regulated through the "Swiss National Frequency
Allocation Plan and Specific Assignments" [24]. The Telecommunications Act includes a direct
15
Chapter 3. Regulatory Framework
mandate for the body responsible for frequency management to take appropriate measures in
order to ensure efficient and interference-free use. The Federal Office of Coommunications
(OFCOM in french, BAKOM in german and UFCOM in Italian) and it is the responsible for
frequency management.
As stated before, within the European Union (EU), the European Commission’s decisions
are binding in all countries neighbouring Switzerland. Switzerland is not obliged to comply
with EU spectrum regulations. In most cases, however, harmonisation of frequencies with
neighbouring countries is necessary in order to meet the needs of the internal Swiss market.
Besides, Switzerland actively participates in the activities of the ECC (CEPT). OFCOM conducts
its own investigations and submits the results to the various working groups. Swiss delegates
also take part in debates during the respective meetings. The main aim is to safeguard Swiss
interests in the reports and resolutions of the ECC.
Particulary for the 863-868 MHz frequency band it assumes the harmonised bands for short
range devices (SRD) from the CEPT(Recommendation ERC 70-03 [20]), as the European Union
does.
16
4 Acknowledge signal
The motivation of this chapter is to find PHY-layer acknowledge signal to confirm when a
packet has been correctly decoded. We want a PHY-layer ACK so that the capacity of the
system is increased with respect a normal ARQ system. In addition, the full-duplex transceiver
generates self-interference that can affect to the detection of the ACK. Therefore, we want to
find a signal that is orthogonal to the data LoRa frames.
In chapter 2.1.1 we have stated that LoRa symbols are based in a chirp that continuously varies
in frequency. We know that chirps with different spreading factors are orthogonal to each other
but finding another signal that is orthogonal and not used in the LoRa PHY standard would
be interesting in terms of a multi-user system capacity. It is straightforward to think about a
downchirp instead of an upchirp, as the basis of the signal. In downchirps, the frequency also
depends linearly with time, but the slope of the dependency is negative.
Downchirps are used in LoRa frames after the preamble, but only in 2 and ¼ symbols. Conse-
quently, it could be a good option to use it as an acknowledge, because we cannot find a series
of downchirps longer than 2 and ¼ symbols.
Nevertheless, if we want to make this ACK compatible with a multi-user system, we would
have to generate different ACK sequences based on downchirps, so that they carry information
about the transmission that is acknowledged. However, in this project this is not considered.
4.1 Theoretical analysis
In this section, a mathematical derivation of the interference that the end-node messages
(LoRa data frames based on upchirps) would cause to the acknowledge sequence sent by the
gateway (downchirps) is made.
As stated in chapter 2.1, an upchirp with fo f f set = 0 follows equation 2.7. A downchirp with
fo f f set = 0 is define this way:
xr e f (t ) = e− j 2π( BWTs
t 2− BW2 t )forTk−1 ≤ t < Tk (4.1)
Nevertheless, the value of fo f f set depends on the sampling start point of the receiver, but for
the sake of simplicity we simplify taking fo f f set = 0.
17
Chapter 4. Acknowledge signal
In section 2.1 the dechirping process was presented. The one to identify an ACK is the same,
but the reference symbol is a downchirp instead of an upchirp. In order to analyse the effect
of the interference, we are going to look to the shape of an interference symbol after the
dechirping chain.
z(t ) = zi nter f er ence (t )• x̄AC K ,r e f (t )
=e j 2π( BW
2Tst 2+ fo f f set t ) •e j 2π( BW
2Tst 2)− BW
2 t if Tk−1 ≤ t < t f old
e j 2π( BW2Ts
t 2+( fo f f set−BW )t ) •e j 2π( BW2Ts
t 2− BW2 t ) if t f ol d ≤ t < Tk
=
=e j 2π( BW
Tst 2+( fo f f set− BW
2 )t ) if Tk−1 ≤ t < t f old
e j 2π( BWTs
t 2+( fo f f set−3 BW2 )t ) if t f old ≤ t < Tk
(4.2)
Now, we obtain the frequency applying the equation 2.2
f (t ) = 1
2π
dφ(t )
dt=
2 BWTs
t + ( fo f f set − BW2 ) if Tk−1 ≤ t < t f old
2 BWTs
t + fo f f set −3 BW2 if t f old ≤ t < Tk
(4.3)
As the slope of the relation frequency-time is now double, there is another fold, so the equa-
tions and the limits must be re-defined. This limits are obtained finding the value of t for
which the instantaneous frequency is equal to BW2 . Then we have a leap of −BW .
t f ol d1 =Ts
2BW(BW − fo f f set ) (4.4)
t f ol d2 =Ts
2BW(2BW − fo f f set ) (4.5)
Now, with this new two limits, we can re-define the expressions:
f (t ) =
2 BW
Tst + fo f f set − BW
2 if Tk−1 ≤ t < t f old1
2 BWTs
t + fo f f set −3 BW2 if t f old1 ≤ t < t f old2
2 BWTs
t + fo f f set −5 BW2 if t f old2 ≤ t < Tk
(4.6)
From this expression and figure 4.1 we know that the power is equally distributed in all the
frequencies, so the maximum of the FFT will be a random number that depends on the noise.
Therefore, we can state that LoRa data frames don’t influence the downchirp demodulation.
However, they will make the noise floor higher, so SINR of the system will be lower than the
SNR.
18
4.2. Simulations performance
(a) FFT (b) Spectrogram
Figure 4.1 – Dechirped upchirp using a downchirp as a reference
4.2 Simulations performance
To test the performance of these ACK sequences with different channels, we have made
some Monte-Carlo simulations in MATLAB. All of them assume a simplified version of LoRa
PHY, where only the modulation and the preamble are considered (including the 2 and ¼
downchirps). The aim of this simulation is not to evaluate how the capacity of the whole
system varies, which is out of the scope of this project, but evaluate the robustness of the ACK
signal in presence of interference.
The first simulation tries to determine how the ACK decoding is affected by the presence of a
variable but deterministic number of LoRa frames. The information bits are set to be random
with 50% of probability of ‘1’ and 50% of probability of ‘0’, as that would be the output of the
omitted whitening block. In addition, the position of the preamble is uniformly randomized.
The ACK symbol length is a fixed variable.
In this simulation the ACK message starts at the first sample and the receiver knows it, so the
receiver just looks for the N first symbols and calculates the FFT to find the indexes of the
maximums. If those maximums are all higher than a threshold and they have the same index,
then an ACK has been detected. The goal of this simulation is to decide which is the optimum
ACK symbol length given a certain number N of interference frames.
The result of this simulation is the percentage of correctly decoded ACK. Figure 4.2 shows the
dependency of the percentage of decoded ACK in an AWGN channel with the SNR. The graph
also shows the performance of different ACK symbol lengths.
N represents the number of symbols that form the ACK frame. In this simulation the number
of ACK symbols sent and the number of ACK symbols that have to be identified to detect an
ACK is the same. The graph shows that the percentage of identified ACK take off around an
SNR of -15dB. In addition, the percentage remains stable for each n after an SNR of -10dB.
19
Chapter 4. Acknowledge signal
-30 -25 -20 -15 -10 -5 0 5
SNR
0
20
40
60
80
100
%Percentage of ACK identified
N=1
N=2
N=3
N=5
N=7
N=10
Figure 4.2 – Simulation 1 - Percentage of identified ACK frames.
Besides, bigger frames imply that the percentage is stabilized in a lower value than smaller
frames. This is expected because the probability of finding N not-corrupted symbols decreases
as N increases.
The second simulation is based on the first one but now the beginning of the ACK is uniformly
randomized and the receiver doesn’t know where it starts, so it uses the decoding algorithm
that is implemented in the actual system that is described in the next chapter. Besides, the
self-interference and the cancellation signal generated by the full-duplex transceiver are
added.
The decoding algorithm that is used is the same as the one for the preamble detection: the
receiver looks for L successive peaks in the FFT of the dechirped signal, where L is the ACK
symbol length fixed in the transmitter. These peaks have to be higher than a threshold and
have the same index to be considered.
The result of this simulation is also the percentage of correctly decoded ACK and the percentage
of false alarms, and it is shown in figure 4.3. A false alarm is defined as the case where the
decoder identifies one ACK frame where there is no ACK.
In this simulation, N also represents the number of symbols that form the ACK frame. In
addition, the number of ACK symbols sent and the number of ACK symbols to be identified
to detect an ACK is the same. The results of this simulation are consistent with the ones of
the previous simulation. However, as there are 2 and ¼ downchirps, if we choose an n lower
than 2, we can observe a high percentage of false alarms. Besides, if n=3 the graphs shows that
there is still a small probability of false alarm.
As a conclusion for this study, we can say that n should be bigger than 3 to avoid false alarms.
20
4.2. Simulations performance
-30 -25 -20 -15 -10 -5 0 5
SNR
0
10
20
30
40
50
60
70
80
90%
Percentage of ACK identified
N=1
N=2
N=3
N=5
N=7
N=10
(a) Identified ACK frames
-30 -25 -20 -15 -10 -5 0 5
SNR
0
20
40
60
80
100
%
Percentage of false alarms
N=1
N=2
N=3
N=5
N=7
N=10
(b) False alarms
Figure 4.3 – Result of ACK simulation 2
However, the bigger this number is, the lowest the percentage of detected ACK will be. A
compromise solution would be to choose n = 5 or to send more ACK symbols than the number
that the receiver is expecting.
21
5 System design
5.1 Introduction
The goal of the system designed and implemented in this project is to prove that collisions
can be reduced using full-duplex communications in a LoRa system. It is aimed to show that
it is possible to build a system based on LoRa PHY that combines modern channel coding
schemes, e.g. Polar Codes, and full-duplex communications.
The scenario will be composed by a single full-duplex end-node and a gateway. Both devices
are placed physically very close, so the channel is considered to be AWGN.
As there are no interferences from other users and the data used as the payload is random, a
simplified version of LoRa PHY is used, so some blocks of the LoRa PHY block diagram are not
implemented. Besides, some LoRaWAN constraints are not considered.
The LoRa parameters that are used in this demo are variables, so they can be changed for each
experiment. However, the polar code encoder takes frames of 128 bits and gives as an output
512 bits. As the output of the polar encoder is 512 (29), Spreading Factors that are powers of 2
are preferred, i.e. SF=8.
The gateway receiver will try to decode every 128 bits (4 times per frame) and it will send an
ACK to the gateway when it correctly decodes the message. The end-node will then stop the
transmitting frame as soon as it detects the ACK.
In this chapter, we first introduce the block diagram of the system. Secondly, the channel
encoder based on Polar codes that is used in this system is presented. Thirdly, we describe the
frame format used.
5.2 Block diagram
In real LoRa transmitters, the payload is passed through a chain of blocks that change the
statistics of the data and add redundancy before the LoRa modulation, that was described in
Chapter 2. These blocks transform the data into code words, and they are shown in Figure 5.1.
Firstly, there is a Forward Error Correction (FEC) block, which adds redundancy bits to the
data to allow the receiver to correct the information in case of errors.
23
Chapter 5. System design
Forward Error Correction Interleaving Whitening Gray indexing LoRa encoder Tx
Figure 5.1 – LoRa transmitter block diagram.
Secondly, there is an interleaver that is in charge of shuffling bits to protect the data form burst
errors. This block improves the performance of the transmission because, on real applications,
the channel causes errors that typically happen in bursts because of a temporary, partial or
total breakdown of the communication link. Then, if errors happen in bursts, a single code
word will be affected by many errors and the correction mechanisms will not be able to recover
the original data. Using an interleaver, the errors are distributed in several code words, so that
the errors are distributed more uniformly, and correction mechanisms are more effective.
Thirdly, there is a whitening block, which induces randomness in the data. This is necessary
because the data to transmit is not totally independent, and we can find series of consec-
utive ’1’ or ’0’, which introduces a DC bias in the Tx signal that produces a non-uniform
power distribution. Besides, some types of channel codes work better if the data is randomly
distributed.
Then, there is a block that is described as ’gray indexing’ in Semtech’s patent [7]. This block
might refer to a version of Gray coding, which is in charge of ordering the transformation from
integer symbol to bits, so that two successive values differ in only one bit (binary digit).
Finally, we have the LoRa modulator that was described in Chapter 2.
In this project, the interleaver, the whitening and the gray indexing are not included. The
former because the channel is considered to be stable, as the environment of the demo is a
lab and the conditions are static. The whitening is not included because the payload data is
random, so it wouldn’t have any effect. Finally, the gray indexing block is not considered for
the sake of simplicity, but it could be added in future implementations.
In addition, the Hamming channel encoding is also not included. However, we add another
channel encoding based on Polar codes.
The block diagram used in the system of this project is shown in figure 5.2.
LoRaPolar
r = 1/4
128
SF = 8
nPreamble = 8
72 symb.TX
ACK detector
Preamble
LoRa CRC
LoRa ACK encoder
SF = 8
nACK = 5
TXDownchirp
FD-END-NODE GATEWAY
detector
encoderbits
512
bits modulator
demodulator
512
bits
128
bits
128
bits
Polar
r = 1/
decoder
Figure 5.2 – System block diagram.
24
5.3. Polar codes
5.3 Polar codes
A polar code is a linear block error correcting code which might attain the capacity of any
given binary input discrete memoryless channels (B-DMC) [25]. This family of codes admits
systematic encoding.
The code construction is based on what is called channel polarization. Firstly, the same
independent channels are transformed into two kinds of synthesized virtual channels with
slightly different reliabilities: the good and the bad channels. After applying recursively that
transformation over the resulting channels, the difference between the good channels and
the bad channels will increase. If the length of the code is sufficiently large, almost all these
synthesized channels tend to two extremes: the noisy channels and those almost free of noise.
Therefore, free bits (called information bits) are transmitted over the noiseless channels while
fixed bits (called frozen bits) are assigned to the noisy ones. The number of frozen bits is the
number of redundancy bits (N-k), where k is the number of input bits to the encoder and N is
the number of output bits.
One of the main advantage of polar codes with respect to other modern channel codes is
their modest encoding and decoding complexity (O{n logn}. The decoding algorithm borrows
many ideas from the decoding algorithm used for LDPC codes, but its complexity is lower.
However, the channel reliabilities should be calculated according to a specific channel type or
channel condition. Hence, code construction is channel dependent, although the encoder
structure is universal. For instance, given an AWGN channel, the channel selection is optimized
for the given SNR in order to achieve the optimal performance.
In the reference [26] a comparison between different modern channel codes is given.
In this system, a systematic polar code with rate 1/4 specified for AWGN is used. As soft
decisions are not implemented with LoRa (there is not a LoRa soft detector), hard decisions
are used. Besides, we use an innovative concept that consists of trying to decode the same
information bits with a different number of punctured bits. This means that we first receive
128 bits (the systematic information bits) and we check the sequence without applying the
decoder. If the frame was not correctly decoded, then we take another 128 bits and we try
to decode with 256 bits (the 128 systematic information bits plus 128 redundancy bits) and
256 bits punctured. As we are using hard decisions, an information bit will be 1 or –1 and the
punctured bits will be 0 (50% of probability for ’0’ and ’1’). If the result of the checking is again
negative, we receive another 128 bits and we try to decode with 384 bits and 128 punctured
bits. Finally, if the result is again negative, we receive the last 128 bits and we do a final attempt
with the 512 bits.
Figure 5.3 shows how this approach makes sense and the coding gain when we decrease the
number of punctured bits.
In this figure it is plotted the relation between the energy per bit and the Frame Error Rate.
25
Chapter 5. System design
Figure 5.3 – Punctured polar codes performance
There are three curves, in which the only parameter that changes is the number of punctured
bits, and one curve that represents the performance of uncoded frames. The other parameters
are fixed and set to: hard decisions, k = 128 and N = 512 (not for the uncoded performance). As
we can see in the graph, the curve that is on the right is the one with the worse performance:
the uncoded curve. Then, we can see that there is a gain, especially between the curves that
represent 128 punctured bits and 256 punctured bits. Finally, the best curve is the one that
uses the 512 bits (no punctured bits).
5.4 Frame format
In this section we show the format of the frame that is transmitted and when the gateway
decodes the message and sends and ACK. In addition, we also shown when the end-node
tries to detect an ACK to stop the transmission. Figure 5.4 is a schematic representation of the
frame format and the receive windows.
8 symbols 128 bits 128 bits 128 bits 128 bits
10 symbols
1st 2nd 3rd 4th
PXI TX
RX
USRP
RX
Figure 5.4 – Frame format and receive windows.
26
5.4. Frame format
The sent frame is composed of a 8 symbols preamble and 512 bits, which are the output of the
polar encoder. As stated in the previous section, the first 128 bits correspond to the data bits
and the 384 remaining bits are redundancy.
The gateway tries to decode the message four times, as it was also explained in the previous
section. In each one of those trials, the gateway uses 128 bits more. If the gateway is able to
decode the message, then it sends an ACK to the end-node.
Meanwhile, the end-node is listening to the channel and collecting samples in a buffer. When
the buffer contains 10 new symbols, the end-node looks for an ACK, and if it finds one, it
immediately stops the transmission.
27
6 System implementation
6.1 End-node
The full-duplex end-node is implemented in a NI FlexRIO PXIe-1082 chassis [27] with two
NI 5791R RF [28] transceiver adapter modules. This device is programmed in LabVIEW and
the code is executed in an embedded controller (NI PXIe-8135). This allows us to get closer
to a real-time device because we don’t depend on a computer to execute the code. Besides,
the transceiver is much better than the one of the USRP, which is the reason why we use the
PXI for the full-duplex node. The NI 5791R operates at Carrier frequencies of 400 MHz up to
4.4 GHz and provides peak output powers ranging from -24 to 8 dBm. The PXI handles all
analog frontend tasks (i.e. digital-to-analog conversion, mixing, amplification, RF filtering and
analog-to-digital conversion). In addition, it is responsible for generating a reference LoRa
symbol, looking for the ACK signal and taking a decision to stop the transmission. The layout
of the end-node can be seen in Figure 6.1a.
(a) End-node layout
Tx Tx
Rx Rx
Tx Cx
Self-interference
Splitter Splitter
Amplifier
Data Cancellation
(b) PXI RF connections
Figure 6.1 – PXI layout and connections
However, the digital baseband transmit samples are generated on a computer using MATLAB.
The computer sends the frame to the PXI using a TCP connection via Ethernet cable. Over
TCP the Simple Messaging communication Library (STM) of LabVIEW is used. Then, the
received data and the result of the ACK detection (true or false) is sent from the PXI to the
computer through the TCP connection. In addition, all the parameters of the PXI such as
power, bandwidth or carrier frequency are set in the computer and sent to the PXI.
In Figure 6.1b, a block diagram of the end node is shown, as well as how the two transceiver
29
Chapter 6. System implementation
adapter modules are connected to the antennas.
The module ’TX’ is the one that transmits the actual data through the TX antenna and is
connected to the receiver antenna to collect the receive data. On the other hand, the module
’CX’ generates the cancellation signal and captures the transmit signal from the module ‘TX’
to measure the power. The RX port of the ’CX’ card receives the signal from the output of the
amplifier to measure the power, so that we know the signal (and its spectrum) and the power
given to the transmit antenna.
As we can see in the image, the data comes out of the PXI from the TX port of the ‘TX’ module
and is amplified with a 30dB amplifier. Afterwards, the signal is divided with a splitter and half
of the signal is coupled to the RX port of the ‘CX’ module and the other half is coupled to the
transmitter antenna. The ‘CX’ module generates the cancellation signal that is guided to be
mixed with the received signal that comes from the RX antenna.
6.1.1 Terminal with MATLAB
The control terminal, running MATLAB, makes the channel estimation and generates the
transmit frame and the cancellation frame.
For generating the transmit frame the control terminal generates a sequence of bits, adds
polar code redundancy and produces the LoRa modulated samples.
Channel estimation
The signal that is generated in MATLAB and passed to LabVIEW to be transmitted and the one
that is received as self-interference are not exactly the same signal. There are some elements
in the Tx and Rx chain, apart from the channel, that introduce distortions to the signal. Some
of them are linear and they can be estimated to cancel them out.
Firstly, a transmission is made with random LoRa symbols (without preamble) from the TX
port of the ‘TX’ card and the samples received in the RX ports of the modules ‘TX’ and ‘CX’ are
recorded. The terminal also creates a frame filled with zeros that are sent to the ‘CX’ module
so that there is no cancellation signal.
Secondly, the same procedure is made but now sending the LoRa symbols from the ‘CX’
card and the empty frame form the ‘TX’ card. With the samples that we obtain with those
transmissions, we can calculate the power of the received signals. Both signals should have
the same power if we want to cancel the self-interference. If not, we should adjust the power
and start again the procedure.
Then, the MATLAB script makes a channel estimation for each channel (from the transmitter of
’TX’ module to receiver of ’TX’ module and from the transmitter of ’CX’ module to the receiver
of ’TX’ module. The technique that is followed is the Least Squares channel estimation.
30
6.1. End-node
These channels estimations will be used to generate the cancellation frame.
Data frame and polar encoder
After the channel estimation, the actual transmit frames are prepared. First, the payload
bits are generated following a pseudo-random uniform distribution. Those bits are then
encoded with a polar code with a rate 1/4, optimized for AWGN channels. After that, the data
is introduced in a LoRa packet similar to the model described in Chapter 2.
In this demo, the payload size is 512 bits with a preamble of 8 symbols but without CRC.
Once the data frame is created, the cancellation frame is generated using the data frame and
the two channel estimations. This formula shows how it is created:
Ht x ( f ) = 1pNt x
F {ht x } (6.1)
Hcx ( f ) = 1pNcx
F {hcx } (6.2)
xcx (t ) =F−1{F {xt x }•−HT x ( f )
HC x ( f )
}(6.3)
The addition is done in the splitter, so the self-interference will be affected by the channel
between the TX port of the ’TX’ card and the splitter. As we know the effect of that channel
because of the channel estimation, we can apply that effect to the cancellation signal. However,
this signal also is affected by another channel between the TX port of the ’CX’ card. Therefore,
we have to equalise that signal, as we also have that channel effect because of the channel
estimation. Finally, we have to add a phase offset of 180º so that their addition is a null signal.
Finally, the frames are scaled to fit on the DAC range and they are sent to the PXI
6.1.2 PXI
The PXI is the device where the actual wireless signal is generated and transmitted and where
the ACK is detected. It is implemented with LabVIEW code that runs in the internal controller
of the PXI. We can differentiate two functionalities in the PXI. In figure 6.2 the LabVIEW control
panel is shown. In this panel the user can check that the parameters are the same as the ones
fixed in the MATLAB terminal and the state of the machine.
There is a TCP unity that is in charge of communicating with the computer terminal where
the MATLAB code is running. The other unity is the one that controls the FPGAs and the RF
modules. It is the one that gives the functionality to the end-node. Both modules communicate
through LabVIEW queues.
31
Chapter 6. System implementation
Figure 6.2 – End-node control panel.
TCP unity
The TCP unity basically consists of two loops that are constantly running. The Simple TCP
Messaging communication Library (STM) of LabVIEW is used. The first loop listens to the TCP
port to receive the transmission parameters that controls the RF module settings and the Tx
and Cx frames to be transmitted. The second loop one sends to the computer terminal the
received frame and a flag that indicates if an ACK was received or not.
Using STM, you can specify a metadata name that allows the message receiver to identify what
parameters are being transmitted. The first loop takes the metadata name and the data and
adds that data to the associated queue. The possible data that can receive from the terminal
are shown in Table 6.1.
Metadata Description Associated queue
Set RF Param Parameters for the RF modules RF Params
StopStop command to stop the
transceiver and wait for the newparameters
Stop
StopAllStop command to stop the
transmitter and the TCP loopsSTOP_ALL Shared
VariableTXData TX data for the TX module Array TXCXData TX data for the CX module Array CXRMData Defined but not used Array RM
Table 6.1 – STM Metadata
The second loop is in charge of sending the received RX and CXOUT data to the terminal. It
also uses queues to communicate with the transceiver unity. The real and imaginary values of
each sample are interleaved in the array that is sent. CXOUT is sent right after RX.
32
6.1. End-node
Transceiver unity
This is the unity that controls the FPGAs and the RF modules. It gets activated when new
parameters are received. It starts setting the parameters and activating the RF-card’s FPGAs.
Then, it works as a Finite State Machine (FSM). The states are shown in Figure 6.3 and the user
can check at any time the state of the machine in the control panel (Figure 6.2)
10
2
else
Not ARQ transmission
ARQ transmission
Figure 6.3 – End-node states diagram.
State 0: Wait state
It is the default state. The RF parameters have been set, but there is no data to transmit yet. In
this state, the transceiver sends zeros (no power) and it discards the received signal.
State 1: Channel estimation / Not ARQ state
Some data has arrived from the TCP unity to be sent, but confirmation (ACK) is expected. The
received signal during the whole transmission is sent to the terminal without processing. This
state is used for the channel estimation or for noise measurements.
State 2: ARQ state
Similar to the previous one, but a confirmation (ACK) is expected. In this state, the received
signal is processed to identify the ACK (if an ACK is present) and as soon as it is identified, the
transmission is aborted. The received signal and the result of the ACK identification is sent to
the terminal.
The VI that controls this state is ReadWriteACKv2.vi. This VI creates a LoRa reference signal
that is used to look for the ACK. The LoRa parameters of this reference signal must correspond
to the ones set in the gateway. Besides, a receiver window size and a threshold are defined.
The receiver window size is the size of the frame that we take from the receiver buffer to be
processed and inspected for the ACK. This means that we will take decisions (ACK found) each
W •2SF samples, being W the size in symbols of the receiver window and SF the Spreading
Factor.
A threshold is used in the ACK detection algorithm. The threshold is used to avoid false alarms
due to the interference and it has to be fixed experimentally. The detection algorithm was
explained in chapter 3, and it is the same as the one used for the preamble detection. Each
33
Chapter 6. System implementation
2SF samples are multiplied by the complex conjugate of the reference symbol. Then we take
the FFT. If we find N successive peaks with the same index and higher than the threshold, then
we found an ACK. N is the length expressed in symbols of the ACK signal.
The Tx frame and Cx frame that were generated in the MATLAB terminal are sent without
interruption until an ACK is identified. If the ACK is found, then the transmission is auto-
matically aborted and the received signal until that moment together with the result of the
transmission: TRUE is queued to be sent via TCP to the terminal. If the ACK is not found, then
the transmission finishes when the whole frame has been transmitted and the result is FALSE.
6.2 Gateway
The gateway is implemented in a NI-USRP 2920 [29]. It operates at carrier frequencies of 50
MHz up to 2.2 GHz and provides peak output powers until 20 dBm.
In this case, the gateway is fully developed in LabVIEW code that runs in a computer connected
to the USRP. The gateway must be real-time as possible, so a different computer than the
MATLAB terminal that controls the end-node is used, and a direct Ethernet connection to the
USRP, so that the computer is exclusively dedicated to the LabVIEW code running.
The LabVIEW implementation is also based on a Finite State Machine (FSM). However, when
we run the LabVIEW code there are some steps before the FSM and after it. The first step is
the initialization of all the variables. After, the USRP is initialized, and the transmission and
reception start. Then, the FSM runs until there is an error or the error button is pushed.
To initialize the USRP there are some steps that need to be done. First, a Tx and a Rx session
must be created. Then, we must set the trigger time, internal timing and RF parameters. If
we set the same trigger, the Tx and the Rx will be synchronized, what is needed for the ARQ
implementation.
Then the Rx acquisition and the transmission start. The Tx buffer is filled with zeros because
of the latency that introduces the creation of the loop of the FSM. Besides, there is another
buffer implemented in a variable that is used as an intermediary between the Tx buffer and
the data processing. This buffer is needed because the Tx buffer sets the pace of the loop and
we need more flexibility for the data processing without losing the pace of the loop.
6.2.1 Finite State Machine
The states are shown in Figure 6.4 and Table 6.2.
State 0: Append Buffer
This state is used to fill the intermediary buffer with a specified number of symbols. This
number is specified with a variable that the user fixes before running the LabVIEW script.
34
6.2. Gateway
102
34
5
Pre-buffer
completed
else
ACK found
else
else
Symbol collection
completed
4th time result=false
result=
fals
e
result=true
ACK transmission
completed
else
Figure 6.4 – Gateway states diagram.
Number 0 1 2 3 4 5
DescriptionAppendbuffer
Look forpream-
ble
Collectdata
Channeldecoder
SendACK
signal
Resetvariables
Table 6.2 – Gateway FSM states
State 1: Look for preamble
In this state, we use the algorithm that was described in the previous section and in chapter 3,
to detect the preamble. Once it is found, the gateway also synchronizes the frame. The frame
synchronisation is made based on the index of the consecutives FFT peaks that the algorithm
has identified as an ACK. We know that index has to be 0, so we can get synchronized if we
delete 2SF − (i ndexF F Tmax ) samples.
State 2: Collect data
Once we have identified the beginning of a frame and we are synchronized, we can obtaint
the payload data. A phase correction is made to get rid of a phase error that can induce a one
or two bits error.
State 3: Channel decoder
In this state, we extract the bits from the encoded frames and the received sequence is checked
with the original sequence. We assume that we have the original sequence in this demo. In the
future, a CRC should be implemented. The channel decoder is implemented in C code that is
embedded in LabVIEW. The reason for this solution is that we need a fast implementation in
35
Chapter 6. System implementation
order to be Real-Time, and a polar decoder written in LabVIEW would not be fast enough. In
this state the intermediary buffer is filled by the Tx buffer but no data is processed.
State 4: Send ACK signal
In this state the ACK signal is sent. This state is repeated as many times as the number of
symbols of the ACK. The samples with which the intermediary buffer is filled are discarded,
because we don’t need the new redundancy symbols that the end-node is transmitting as we
already have decoded the message.
State 5: Reset variables
The goal of this state is to reset all the variables that have been used during the decoding
process and empty the intermediary buffer so that the delay induced by this buffer is the same
as after executing state 0.
6.2.2 Phase Correction
During the debugging process of the gateway, we realized that there was a 1 or 2 bits error in
the LoRa demodulation. We could observe that the decoded symbol was +-1 or +-2 the original
one.
This error could be due to different reasons (it is out of the scope of this project to identify the
origin of the error). However, it seems to be a sampling frequency offset in the USRP Local
Oscillator (LO).
To reduce the impact of this error we decided to do a phase correction since two LoRa symbols
with the same initial frequency, i.e. same symbol, must have the same phase in each i th
sample, being i the index of the sample inside the LoRa symbol.
We observed that there was a linear degradation in the preamble (same symbol), so we correct
the phase taking the phase difference between two consecutive preamble symbols for the
same i th sample. Besides, as the phase is very sensible, we take this difference for all the
preamble symbols and we calculate the average.
Finally, for each symbol that is introduced in the LoRa demodulator, we first correct the phase
following this expression:
y[n] = x[n]•exp(− j nφ) (6.4)
Where x[n] is the received signal, n is the number of sample since the first sample of the first
symbol after the preamble and φ is the phase that calculated during the preamble detection.
36
6.2. Gateway
6.2.3 Control Panel
While the parameters of the end-node are set with the MATLAB terminals, the parameters of
the gateway are fixed with the LabVIEW control panel that is shown in Figure 6.5.
Figure 6.5 – Gateway control panel.
On the left side of the figure, we can see the controls of the USRP RF parameters, such as the
Carrier Frequency, the TX and RX gain or the ports of the TX and RX antennas. The next box on
the right is used to fix the LoRa parameters. All these parameters (RF and LoRa) must match
with the ones that are specified in the end-node side.
In the middle of the figure we find some indicators of the execution of the LabVIEW process.
The timing benchmark is used to check that the system is real-time so that there is not a
growing latency. The execution parameters and the color indicators give us some real-time
information about the state of the execution of the process.
Finally, on the right side of the control panel we can find some indicators about the result of the
process. First, the ’decoder attempts’ shows, for each time that a frame was detected, in which
decoding attempt the frame was correctly decoded. Secondly, there are two array indicators
which show the values of the symbols that have been demodulated and the absolute value of
the max of the FFT. Then, the last column shows the bit values after the polar decoding.
37
7 Results
The experiments have been firstly done using 2GHz as a carrier frequency instead of the usual
LoRa carrier frequencies (868 MHz in Europe). This is because the amplifier that is represented
in figure 6.1b is not valid for the 868 MHz frequency band and the USRP does not support 2.4
GHz, which is another unlicensed frequency band. The selected spreading factor is 8, because
it is a power of 2 and we can easily fill the payload with 512 bits if the payload size is 64 symbols
and the gateway receiver window is 16 symbols (128 bits).
Then, a second experiment has been done removing the amplifier and using the 868 MHz
frequency band instead of the 2GHz one.
7.1 Performance analysis
In order to measure the performance of this system and evaluate if the concept is proven,
more than 100 experiments were run at 2GHz to check if the frame was correctly decoded and
how many redundancy bits the system needed to correctly decode the frame.
Decoding attempt where the frame was correctly decoded
0 1 2 3 4
# Attempt
0
5
10
15
20
25
30
35
40
45
50
%
Figure 7.1 – Performance of the system.
The results are presented in Figure 7.1. The number 0 represents the frames that were not
decoded, so no ACK was sent. The results show that a 50.68% of the transmissions would have
required a retransmission. With this scheme, at the 4th attempt, the 96.62% of the transmis-
sions were correctly decoded. However, in a classical ARQ system with 3 retransmissions, only
39
Chapter 7. Results
a 93.41% of the messages would be decoded. This is not a big difference (3.2%), but the time
on air, the latancy and the collisions are reduced with respect to a HARQ half-duplex system,
where the receive windows for the end-nodes are small (class A).
Besides, we can also see that there is a coding gain when we receive the new bits and that the
variable puncturing scheme makes sense.
Finally, there are some ACK frames that are not recognized by the PXI (5%). However, this is
due to the latency that is produced with the buffers in the USRP. In a real-time system this
would not happen.
In Figure 7.2, the spectrogram of the received signal by the end-node is shown. An ACK close
to the end of the frame can be clearly seen. In addition, in Figure 7.3, a received ACK symbol
after dechirping is plotted.
Spectrogram of the received sequence
10 20 30 40 50 60 70 80
Time (ms)
-100
-50
0
50
100
Fre
quency (
kH
z)
-150
-140
-130
-120
-110
-100
-90
-80
-70
-60
Po
we
r/fr
equ
ency (
dB
/Hz)
Figure 7.2 – Spectrogram of the received signal by the end-node with an ACK.
0 50 100 150 200 250 3000
5
10
15
20
25
30
35FFT of a dechirped received symbol Spectrogram of a dechirped received symbol
100 200 300 400 500 600 700 800 900
-100
-50
0
50
100
Fre
quency (
kH
z)
-140
-130
-120
-110
-100
-90
-80
-70
-60
Po
we
r/fr
eq
ue
ncy (
dB
/Hz)
Figure 7.3 – Received ACK symbol after dechirping.
7.2 Comparison between 2GHz and 868MHz
The system works at 2GHz, and at this frequency we can use the amplifier to achieve higher
power, which makes the system closer to the reality. Having high powers is important to test
the full-duplex cancellation, because its performance is not linear, and it gets worse when we
40
7.3. Virtual downchirps
increase the power.
On the other hand, the experiments at 868MHz show the same result than the ones a 2GHz,
but the transmitted power is much lower. The reason is that we have removed the amplifier.
However, the system also works for this frequency and we also see a coding gain. Therefore,
the results does not differ from the one obtained with 2 GHz, but as we are working with lower
powers, we can not evaluate if the full-duplex transceiver is correctly working.
-100 -50 0 50 100
Frequency (kHz)
-100
-80
-60
-40
-20
0
20
40
PS
D (
dB
m/H
z)
Transmitted Signal
Analog Residual
Auto-interference
Noise Floor (TX-card)
(a) Spectrum @ 868MHz
-100 -50 0 50 100
Frequency (kHz)
-100
-80
-60
-40
-20
0
20
40
PS
D (
dB
m/H
z)
Transmitted Signal
Analog Residual
Auto-interference
Noise Floor (TX-card)
(b) Spectrum @ 2GHz
Figure 7.4 – Spectrum of the received signal at the end-node
In Figure 7.4, we can see the spectrum of the received signal by the end-node together with
the noise spectrum, the one of the transmitted signal (measured directly in the output of the
amplifier) and the one of the self-interference (received signal without cancellation). These
spectrums were measured with the gateway turned off, which means that there are no other
signals than the one produced by the end-node.
7.3 Virtual downchirps
In this demo we have detected that there were downchirps at the received signal when the
gateway was turned off. This effect was due to the end-node and the full-duplex cancellation
signal. When this signal was shut down, this effect would disappear, but the self-interference
would be too high to detect the end-node ACK.
The study of the origin of these virtual downchirps is out of the scope of this project, but it
might be due to some hardware non-linear elements in the PXI, probably the IQ imbalance. If
we compare the two signals that are sent to the PXI, the addition of those and the received
signal, they show that the effect is due to the PXI or the channel.
In Figure 7.5, we can see the result of adding the Tx and Cx signals that are sent from the
MATLAB terminal. They are created considering the channel effect, so that their addition in
the RF combiner is close to a thermal noise signal. As we are considering that channel effect,
the addition that we see in MATLAB is not a null signal. Besides, in Figure 7.6 we can see what
is received in the PXI when the gateway is switched off, I.e. the real addition. Only the first 10
41
Chapter 7. Results
symbols are represented: 8 preamble symbols and 2 payload symbols.
TX+CX
1 2 3 4 5 6 7 8 9 10
Time (ms)
-100
-50
0
50
100
Fre
quency (
kH
z)
-20
-10
0
10
20
30
40
50
Po
we
r/fr
eq
ue
ncy (
dB
/Hz)
Figure 7.5 – Addition of Tx and Cx signals in MATLAB.
Received frame
1 2 3 4 5 6 7 8 9 10
Time (ms)
-100
-50
0
50
100
Fre
quen
cy (
kH
z)
-155
-150
-145
-140
-135
-130
-125
-120
-115
-110
Pow
er/
frequency (
dB
/Hz)
(a) Spectrogram @ 868MHz
Received frame
2 4 6 8 10
Time (ms)
-100
-50
0
50
100
Fre
quency (
kH
z)
-150
-140
-130
-120
-110
-100
-90
-80
-70
Po
we
r/fr
eq
ue
ncy (
dB
/Hz)
(b) Spectrogram @ 2GHz
Figure 7.6 – Spectrograms of the received signal at the end-node
This last figure shows the virtual downchirps and how for 868 MHz their power is higher than
the residual upchirps but for 2 GHz is the other way around.
Nevertheless, this problem is solved using a threshold, because the power of the received ACK
is much higher than the one of the virtual downchirps.
42
8 Conclusion
In this project, we have firstly shown the problematic bounded to IoT growth prospective.
LoRaWAN networks might not scale well because of current ISM constraints, and these bands
might get saturated. Therefore, we need to find new more efficient ways to use the spectrum,
especially in license-exempt bands, which are the ones used by these networks.
Then, we have built and presented one scheme that could increase the capacity of LPWAN
networks and the efficiency in the use of the spectrum: a LoRa inspired system combining in-
band full-duplex communications, modern error-correction codes and a Hybrid ARQ scheme.
This system has shown the utility of full-duplex communications and PHY-layer ACK schemes
to reach those goals.
In addition, the use of modern error-correction codes (polar codes) has proven its utility. This
scheme will be used for 5G cellular networks (but non-systematic) and this project has shown
that it can also be used with LPWAN networks.
We have also solve some issues at the implementation such as the phase correction, the Tx
and Rx synchronization in the USRP, and created state machines that control the end-node
and the gateway.
The results show that we can have an ARQ system that would not have any impact on the
uplink because the end-nodes don’t have to stop the transmission to open a receive time-
window. Besides, as the end-node is listening to the gateway during the whole transmission,
the ACK is almost never missed (5%), if we do not consider collisions or fading.
Therefore, it can be stated that the concept has been proven.
8.1 Future work
It would be interesting to implement this scheme with more end-nodes and test the per-
formance of the system. In this project, it has been proved that we can build a full-duplex
end-node, but it should also be tested if they can coexist and how the interferences or collisions
affect the performance of the system.
In addition, some simulations should be done with this scheme to find which are the best
parameters (e.g. buffer sizes, payload size, ACK length...) to optimize the capacity of the
full system. Besides, it should be calculated how much the capacity of a big network would
43
Chapter 8. Conclusion
increase.
With respect to the polar codes, a LoRa soft demodulator could be created so that all the
potential of polar encoding is used. In addition, a experimental polar code to better fit the
channel and the LoRa modulation should be done.
Another line of improvement would be to implement this system in more efficient platforms,
using real-time systems that do not depend on computer performances.
Finally, some other elements of the block diagram, such as the interleaver, the ’gray indexing’
block or CRC codes could be implemented in order to get closer to a real LoRa implementation.
The latter block would be very useful because it allows as to check the received sequence
without knowing what was transmitted by the end-node.
44
A Project impacts
This annex reflects the relevant social, ethical and environmental aspects related with the
project. The background has already been developed in the introduction section 2.
The goal of this project was to prevent a problem that might appear in the future: the saturation
of the LoRa networks, as some papers have stated recently [17] [18] [8]. Besides, it would have
some positive impacts such as lowering energy consumption and increasing the capacity of
the network.
In addition, this project is included inside the Internet of Things, so, in general terms, most of
the impacts can be considered as positive and indirect as a consequence of a future imple-
mentation of the IoT networks and services. In the analysis, the following aspects have been
considered:
• social and economic impact: affected stakeholders, security, privacy, welfare, produc-
tivity.
• environmental impact: sustainability, energy consumption and spectrum scarcity re-
source.
• ethics impact: professional responsibility, law compliance.
A.1 Social and economic impacts
Firstly, due to IoT every job will be affected. While some jobs are at risk of extinction, many
jobs will undergo a considerable evolution, and new jobs will also emerge. Besides, IoT
also makes it possible for workers to be monitored to prevent injury from falls, overexertion,
heavy machinery and other dangers. Nevertheless, it is difficult to forecast quantitatively the
magnitude of these dynamics and these effects are not directly related to the scope of this
project [30]. However, this project is a proof of concept of a global project with a larger scope.
The new scheme introduced in this project will need investment to be developed and can
create job opportunities to be implemented in real devices and real networks.
Secondly, IoT will change the way we interact with the environment. The ability to monitor
and manage objects in the physical world electronically will allow us to collect and use data
to optimize the performance of systems and processes, save time for people and businesses,
and improve quality of life [31]. IoT will be present in every sphere of our world: smart devices
45
Appendix A. Project impacts
(wearables and ingestible), home controllers and security systems, smart transportation,
industry 4.0 or smart cities are just some examples of the application of this technology.
LPWAN networks will have important impacts in smart cities, transportation and farming
industry. It can potentially lower the costs for the end-user, improving the productivity and
the quality of the products.
Thirdly, LPWAN networks have implications in data protection and security. Because of the
nature of this technology, the data captured by the sensors is sent through long distances
and can be easily eavesdropped. For that reason, the security and application of encryption
protocols is very important to preserve the privacy of the users.
Finally, some of the applications of LPWAN networks, such as traffic control, can impact on
the security of the users. It is important to ensure the correct operation of the systems and to
develop protocols for the cases where the communications fail.
A.2 Environmental impacts
One of the main advantages of LoRa networks is the low energy consumption. Consequently,
batteries have to be replaced less frequently and they will last more years.
In addition, the spectrum is a scarcity resource. This means that we should always look for
the maximum efficiency in the use of it. This project not only looks for a solution to the
scalability problems of LoRa, but also for a better efficiency in the use of unlicensed spectrum.
Besides, this project improves the performance of class A LoRa devices, which are the most
energy-savers inside the LoRaWAN standard. For this reason, this project has a positive impact
on the energy consumption reduction.
A.3 Ethics impacts
This project is the result of integrating different concepts (LoRa, full-duplex and polar codes)
inside one project. Thus, some previous works made in the lab were used in this project. These
parts have been used respecting the authorship of them.
In addition, LoRa modulation is a patented technology. However, as this proof of concept is
the result of a research work and has not commercial implications, there has not been any
violation of any patent. All the knowledge of LoRa modulation has been obtained from some
reverse-engineering works made in the lab before this project.
Finally, chapter 3 explains the regulatory framework that applies to LoRa networks and has
been considered.
46
B Budget
In this section, we present the cost of the project, identifying different sources of cost and
quantifying them.
Fees
In this project only one master student has worked during the established 325 hours (12 ECTS
credits). The project took place in a lab in EPFL as a Master semester project. For that reason,
it was not payed. Nevertheless, the salary of a graduate research assistant in EPFL is CHF 24
per hour. Thus, the fees cost of this project would be 7800 Swiss Francs.
Equipment and Software
As it has been detailed in this report, some devices such as a PXI and a USRP were indispensable
for this project. In the table B.1 all the needed material and its cost is detailed. The amortization
cost is also computed taking into account the amortization years that are also shown in the
table.
The PXI is composed by the following components:
PXIe-1082 Chassis The Chassis house PXI modules and controllers. It connects them with a
high-performance backplane that offers timing and synchronization capabilities.
RF adaptor NI-5791 Provides RF I/O to acquire and generate Radio Frequency signals.
Controller NI PXIe-8135 Provides a high-performance, compact embedded computer solu-
tion for PXI
FlexRIO FPGA module Provides large Xilinx FPGAs for applications requiring custom, inline
signal processing.
In addition, several RF components were needed, including cables, splitters, a power amplifier,
connectors, antennas and attenuators.
Two computers were needed. One computer was in charge of controlling the USRP (gateway)
and the other was in charge of controlling the PXI and run the MATLAB code (gateway).
The total amortization cost of the equipment and software is 2,274.57 CHF.
47
Appendix B. Budget
Item Price per unitNumberof units
TotalAmortization
yearsAmortization
cost
USRP 2920 3,390.00 CHF 1 3,390.00 CHF 10 113.00 CHFPXIe-1082
Chassis4,720.00 CHF 1 4,720.00 CHF 10 157.33 CHF
RF adaptorNI-5791
12,500.00 CHF 2 25,000.00 CHF 10 833.33 CHF
Controller NIPXIe-8135
7,580.00 CHF 1 7,580.00 CHF 10 252.67 CHF
FlexRIO FPGAmodule
8,600.00 CHF 2 17,200.00 CHF 10 573.33 CHF
Antennas 10.00 CHF 4 40.00 CHF 5 2.67 CHFRF accessories 100.00 CHF 1 100.00 CHF 5 6.67 CHF
SplitterZX10-2-252-S+
31.77 CHF 2 63.54 CHF 5 4.24 CHF
Computer 1,000.00 CHF 2 2,000.00 CHF 8 83.33 CHFMATLAB
EducationLicense
338.00 CHF 1 338.00 CHF 1 112.67 CHF
LabVIEWLicense
4,060 CHF 1 4,060 CHF 10 135.33 CHF
2,274.57 CHF
Table B.1 – Equipment and Software budget
TOTAL
The total cost of this project is 10,074.57 CHF.
48
C Resumen del proyecto
C.1 Introducción
El Internet de las cosas (IoT) es una de las tecnologías llamadas a cambiar el mundo en
los próximos años. Su objetivo es conectar miles de millones de dispositivos y sensores a
Internet, recogiendo e intercambiando información. Las redes Low-Power Wide Area Network
(LPWAN) es una solución para aplicaciones de IoT que buscan conectar un número masivo
de dispositivos, que se encuentran en posiciones muy dispersas, a un bajo coste. Este tipo de
redes se caracterizan por tener una topología en forma de estrella y por operar en bandas de
uso común por debajo de 1 GHz.
LoRaWAN es uno de los estándares más populares dentro de las redes LPWAN. Esta desarrolla-
do por la LoRa Alliance y se basa en una modulación de espectro ensanchado llamada LoRa.
Mientras que LoRaWAN es un estándar que describe el acceso al medio (MAC), LoRa consiste
en una capa física (modulación) y está patentada por Semtech [7].
Las redes LoRa operan en bandas ISM, que son de uso común. La atribución de frecuencias
depende de la región en la que nos encontremos y está bajo la responsabilidad de la Unión
Internacional de Telecomunicaciones (UIT), quedando fijado en el Reglamento de Radioco-
municaciones [19]. El estándar LoRaWAN utiliza la banda ISM 867-869 MHz en Europa y la
banda ISM 902-928 MHz en Estados Unidos, tal y como se refleja en la tabla 3.1.
En Europa, los dispositivos LoRa se consideran, a nivel regulatorio, como dispositivos de baja
potencia no específicos para aplicaciones genéricas, por lo que están sujetos a la Recomen-
dación ERC 70-03 [20]. Este documento fija un ciclo de trabajo máximo desde un 0.1% a 1%
(tabla 3.2) si no se utilizan técnicas .escuche antes de hablar"(LBT). LoRa, no implementa
dichos esquemas, por lo que queda sujeto a ese ciclo de trabajo. Además, utiliza un protocolo
de acceso aleatorio. Esto se traduce en colisiones, que pueden llegar a ser críticas si la red está
saturada.
Por otro lado, el estándar LoRaWAN clasifica los dispositivos en tres clases: A, B y C. Estas
tres clases tienen diferentes características con relación a latencia en el enlace descendente
y consumo energético. La clase A es la más eficiente en consumo energético, dado que el
dispositivo se encuentra en modo de ahorro energético hasta que tiene algo que transmitir.
Para recibir información de la pasarela, abre dos ventanas de recepción después de cada
transmisión. Esto quiere decir que el tráfico del enlace descendente es totalmente dependiente
del enlace ascendente. La clase C es la menos eficiente en consumo energético, pero es la que
49
Apéndice C. Resumen del proyecto
presenta menor latencia, ya que la ventana de recepción está siempre abierta (menos cuando
transmite). Finalmente, la clase B es presenta características intermedias entre la clase A y la
C.
Por tanto, el problema que presentan estas redes si se utilizan dispositivos de clase A y se desea
que las transmisiones sean confirmadas (esquema ARQ) es que el reconocimiento (ACK) sólo
puede llegar en las dos ventanas de recepción. A esto se le suma que el protocolo de acceso al
medio es aleatorio, por lo que se producen colisiones y son necesarias retransmisiones que
tendrán latencia debido al ciclo de trabajo impuesto por la Regulación.
C.2 Contribución
En este proyecto, se presenta un nuevo esquema que reduciría el impacto del tráfico ascen-
dente en el descendente utilizando comunicaciones full-duplex dentro de banda.
Un transceptor full-duplex dentro de banda, en adelante sólo full-duplex, permite utilizar la
misma banda de frecuencia para transmitir y recibir al mismo tiempo. Una de las propiedades
principales de las comunicaciones full-duplex es que se puede llegar a doblar la capacidad
del sistema. Por todo ello, han sido utilizados en aplicaciones como la radio cognitiva o para
mejorar protocolos de acceso al medio.
Sin embargo, los transceptores full-duplex quedan limitados por la auto-interferencia, por lo
que deben utilizar alguna técnica para cancelar dicha autointerferencia. En este proyecto se
utilizan técnicas analógicas para cancelar la auto-interferencia.
Este proyecto se basa en un escenario en el que un transmisor LoRa, por ejemplo, un sensor,
quiere enviar información a la pasarela con requerimiento de confirmación (ACK) por parte
de la pasarela. Si hubiese un gran número de transmisores, se producirían colisiones. Para
evitarlas, se propone un esquema full-duplex con codificación de canal.
En este esquema el nodo LoRa transmite una trama compuesta por una trama LoRa original
y bits de redundancia. La pasarela trata de decodificar el mensaje varias veces (según va
recibiendo los bits) y envía un ACK cuando finalmente consigue decodificar correctamente el
mensaje. Tan pronto como la pasarela recibe el mensaje, para la transmisión.
El resultado de este proyecto es una prueba de concepto que utiliza full-duplex combinado
con una codificación de canal moderna (códigos polares) para sistemas LoRa.
C.3 Diseño del sistema
El primer objetivo del proyecto fue encontrar una señal válida como ACK, dado que el esquema
ARQ se produce exclusivamente en la capa física. Para reducir el nivel de auto-interferencia,
es deseable que esta señal sea ortogonal a las tramas LoRa.
50
C.3. Diseño del sistema
La modulación LoRa está basada en modulaciones de espectro ensanchado a través de un
chirp (CSS). La señal en la que se basa esta modulación se llama chirp y se construye a partir
de una dependencia lineal positiva entre el tiempo y la frecuencia. El nivel de ensanchamiento
espectral de la señal se controla con un parámetro llamado Spreading Factor (SF). Señales
con diferente SF son ortogonales entre sí. Sin embargo, utilizar otro SF implica ocupar otro
canal. Por ello, se decidió construir una señal ortogonal con el mismo SF, pero haciendo que la
dependencia lineal sea negativa (análisis teórico en la sección 4.1).
El siguiente paso tras elegir el chirp de la modulación fue elegir la forma del mensaje. Tras
hacer las simulaciones que se presentan en la sección 4.2, se decidió fijar a 5 el número de
chirps consecutivos como mensaje de ACK.
Por otro lado, el estándar de LoRa incluye varios bloques (detectados por ingeniería inversa
en otros proyectos) como interleaving, Whitening o Gray indexing. Como este proyecto es una
prueba de concepto, esos bloques se han omitido con el objetivo de simplificar. Sin embargo,
se añade una nueva codificación de canal: códigos polares.
Los códigos polares son un tipo de código bloque lineal que puede alcanzar la capacidad de
un canal binario simétrico (B-DMC). Este tipo de códigos se basa en la polarización de canales.
Con un código suficientemente largo, se llega a sintetizar dos tipos de canales: unos ruidosos
y otros casi sin ruido. Entonces, los bits de información se transmiten a través de los canales
sin ruido, mientras que en los canales ruidosos se asignan unos bits fijados. No obstante, las
fiabilidades de los canales deben calcularse de acuerdo con un tipo de canal específico o
condición del canal, por lo que debe de conocerse el canal antes de sintetizar el código polar.
En este sistema, se usa un código polar sistemático con una tasa 1/4 y con especificaciones
para un canal AWGN. Como nunca se han implementado decisiones blandas con modulacio-
nes LoRa, se utilizan decisiones duras. Además, se utiliza un concepto innovador que consiste
en intentar decodificar los mismos bits de información con un número diferente de bits
perforados. Esto significa que primero recibimos 128 bits (los bits de información sistemática)
y se comprueba si la secuencia es correcta sin aplicar el decodificador polar. Si el resultado
de la decodificación y comprobación (ya sea a través de un CRC o conociendo la secuencia
enviada) es negativo, se toman otros 128 bits y se trata de decodificar con 256 bits (los 128 bits
de información sistemática más 128 bits de redundancia) y 256 bits perforados. Como se usan
decisiones duras, los bits de información se codifican como 1 o -1 y los bits perforados como 0
(50% de probabilidad para ’0’ y ’1’). Si el resultado vuelve a ser negativo, recibimos otros 128
bits e intentamos decodificar con 384 bits y 128 bits perforados. Finalmente, si el resultado es
nuevamente negativo, se hace un último intento con los 512 bits. Este esquema de reducir
progresivamente el número de bits perforados provoca una ganancia de codificación tal y
como se muestra en la figura 5.3.
En la figura 5.4 se muestran de forma gráfica los intentos de decodificación y el formato de la
trama que se ha diseñado.
51
Apéndice C. Resumen del proyecto
C.4 Implementación del sistema
El nodo full-duplex se ha implementado en una NI FlexRIO PXIe-1082 con dos módulos
transceptores de RF NI 5791R. Este dispositivo se ha programado en LabVIEW y el código
se ejecuta en un controlador integrado NI PXIe-8135 para que el nodo funcione en tiempo
real. No obstante, las muestras de la señal que se va a transmitir se generan en banda base en
un ordenador usando MATLAB y se transmiten a través de una conexión TCP, además de los
parámetros de la transmisión como la frecuencia portadora o el ancho de banda.
En la Figura 6.1b se muestra el diseño del nodo full-duplex. Hay dos módulos: ’TX’ y ’CX’.
El primero se utiliza para transmitir y recibir información/ACK y el segundo para generar
la señal de cancelación de las auto-interferencias. La señal de cancelación se produce en
MATLAB antes de la transmisión a partir de dos estimaciones de canal que se han realizado
previamente y conociendo la señal que se va a transmitir.
Por otro lado, la pasarela se ha implementado en una USRP 2920 programada en LabVIEW.
Tanto la pasarela como el nodo full-duplex están basados en máquinas de estados para recibir
información, procesarla y enviar respuesta en el caso de la pasarela o parar la transmisión en
el caso del nodo full-duplex.
C.5 Resultados
Los resultados se presentan en la Figura 7.1. Estos resultados muestran que, con este esquema,
en el 4º intento el 96,62% de las transmisiones se decodificaron correctamente. Sin embargo,
en un sistema ARQ clásico con 3 retransmisiones, solo se decodificaría un 93,41% de los
mensajes. Esta no es una gran diferencia (3.2%), pero el tiempo en el aire, la latencia y las
colisiones se reducen con respecto a un sistema semidúplex HARQ, donde las ventanas de
recepción para los nodos son pequeñas (clase A).
C.6 Conclusión
Los resultados muestran que se puede implementar un sistema ARQ que no tiene ningún
impacto en el enlace ascendente, ya que los nodos no tienen que detener la transmisión
para abrir un intervalo de tiempo de recepción. Además, como el nodo está escuchando a la
pasarela durante toda la transmisión, el ACK casi nunca se pierde (5%), si no consideramos
colisiones o desvanecimientos.
Además, se ha demostrado la utilidad del uso de códigos modernos de corrección de errores
(códigos polares) con un número de bits perforados variable. Asimismo, se ha encontrado una
señal ACK en la capa física que es ortogonal a las tramas LoRa sin ocupar otros canales.
Por todo ello, se puede afirmar que el concepto ha sido probado.
52
Bibliography
[1] H. Bauer, M. Patel, and J. Veira, “The internet of things: Sizing up the opportunity,”
McKinsey, Article, Dec. 2014.
[2] T. Rebbeck, M. Mackenzie, and N. Afonso, “Low-powered wireless solutions have the
potential to increase the m2m market by over 3 billion connections,” Analysis Mason,
Report, Sep. 2014.
[3] P. J. Marcelis, V. S. Rao, and R. V. Prasad, “DaRe: Data recovery through application layer
coding for LoRaWAN,” in 2017 IEEE/ACM Second International Conference on Internet-of-
Things Design and Implementation (IoTDI). IEEE, Apr. 2017, pp. 97–108.
[4] M. Centenaro, L. Vangelista, and R. Kohno, “On the impact of downlink feedback on lora
performance,” in 2017 IEEE 28th Annual International Symposium on Personal, Indoor,
and Mobile Radio Communications (PIMRC). IEEE, Oct. 2017, pp. 1–6.
[5] M. Centenaro, L. Vangelista, S. Saur, A. Weber, and V. Braun, “Comparison of collision-
free and contention-based radio access protocols for the internet of things,” IEEE Trans.
Commun., vol. 65, no. 9, pp. 3832–3846, Sept 2017.
[6] Semtech Corporation, “LoRa modulation basics,” Application Note AN1200.22, 2015.
[7] Semtech, “Low power long range transmitter,” European Patent Application, Aug. 2014,
eP 2 763 321 A1.
[8] M. C. Bor, U. Roedig, T. Voigt, and J. M. Alonso, “Do LoRa low-power wide-area networks
scale?” in Proceedings of the 19th ACM International Conference on Modeling, Analysis
and Simulation of Wireless and Mobile Systems, ser. MSWiM ’16. New York, NY, USA:
ACM, 2016, pp. 59–67.
[9] G. Jaume and M. Cotting, “LoRa PHY implementation and analysis,” École Polytechnique
Féderale de Lausanne, Semester Project, 2018.
[10] L. Vangelista, “Frequency shift chirp modulation: The lora modulation,” IEEE Signal
Process. Lett., vol. 24, no. 12, pp. 1818–1821, Dec. 2017.
[11] 860 MHz to 1020 MHz Low Power Long Range Transceiver, Semtech Corporation, Mar.
2017, rev. 3.1.
[12] LoRa® Alliance Technical Marketing Workgroup, “LoRaWAN. what is it?” LoRa® Alliance,
White Paper, 2015.
53
Bibliography
[13] A. Lavric and V. Popa, “Internet of things and lora; low-power wide-area networks: A
survey,” in 2017 International Symposium on Signals, Circuits and Systems (ISSCS). IEEE,
Jul. 2017, pp. 1–5.
[14] A. Balatsoukas-Stimming, A. C. M. Austin, P. Belanovic, and A. Burg, “Baseband and RF
hardware impairments in full-duplex wireless systems: experimental characterisation
and suppression,” EURASIP Journal on Wireless Communications and Networking, vol.
2015, no. 1, pp. 1–11, Dec. 2015.
[15] A. Sabharwal, P. Schniter, D. Guo, D. W. Bliss, S. Rangarajan, and R. Wichman, “In-band
full-duplex wireless: Challenges and opportunities,” IEEE J. Sel. Areas Commun., vol. 32,
no. 9, pp. 1637–1652, Sep. 2014.
[16] T. van der Vorst, J. Veldman, and J. van Rees, “The wireless internet of things: Spectrum
utilisation and monitoring,” Radiocommunications Agency Netherlands, Utrecht, Tech.
Rep. 2016.032-1618 v2.3, Oct. 2016.
[17] F. van den Abeele, J. Haxhibeqiri, I. Moerman, and J. Hoebeke, “Scalability analysis of
large-scale LoRaWAN networks in ns-3,” IEEE Internet Things J., vol. 4, no. 6, pp. 2186–
2198, Dec. 2017.
[18] A. I. Pop, U. Raza, P. Kulkarni, and M. Sooriyabandara, “Does bidirectional traffic do more
harm than good in LoRaWAN based LPWA networks?” in GLOBECOM 2017 - 2017 IEEE
Global Communications Conference. IEEE, Dec. 2017, pp. 1–6.
[19] Radio Regulations, vol. I. Internation Telecommunications Union (ITU), Dec. 2016, Art.
5, Nos. 5.138, 5.150, and 5.280.
[20] ERC Recommendation 70-03: "Relating to the use of Short Range Devices (SRD)". Tromsø:
Electronic Communications Committee - CEPT, 1997, Last version in May 2018.
[21] ETSI EN 300 220: Short Range Devices (SRD) operating in the frequency range 25 MHz to
1000 MHz. Sophia Antipoli: ETSI, 2016, Harmonised European Standard.
[22] Semtech Corporation, “Etsi compliance of the sx1272/3 lora modem,” Application Note
AN1200.10, Jul. 2013.
[23] Cuadro Nacional de Atribución de Frecuencias (CNAF). Madrid: Ministry of Energy,
Tourism and Digital agenda, 2017, Last modification in April 2018.
[24] Swiss National Frequency Allocation Plan and Specific Assignments. Bienne: Federal
Office of Communications OFCOM, 2018.
[25] E. Arikan, “Channel polarization: A method for constructing capacity-achieving codes
for symmetric binary-input memoryless channels,” IEEE Trans. Inf. Theory, vol. 55, no. 7,
pp. 3051–3073, Jul. 2009.
54
Bibliography
[26] K. Niu, K. Chen, J. Lin, and Q. T. Zhang, “Polar codes: Primary concepts and practical
decoding algorithms,” IEEE Commun. Mag., vol. 52, no. 7, pp. 192–203, Jul. 2014.
[27] NI PXIe-1082 User Manual, National Instruments, Mar. 2016.
[28] NI 5791R User Manual and Specifications, National Instruments, May 2013.
[29] NI USRP-292x/293x Datasheet, National Instruments, Aug. 2015.
[30] D. K. Dervojeda, “How iot will impact our jobs,” Digital Single Market Blog, Aug. 2017,
european Commision strategy blogs.
[31] J. Manyika, M. Chui, P. Bisson, J. Woetzel, R. Dobbs, J. Bughin, and D. Aharon, “The
internet of things: Mapping the value beyond the hype,” McKinsey Global Institute,
Report, Jun. 2015.
55
Glossary
Abbreviations
ACK Acknowledge
ADR Adaptive Data Rate
BW Bandwidth
CEPT European Conference of Postal and Telecommunications Administrations
CMAC Cipher-based Message Authentication Code
CRC Cyclic Redundancy Check
CSS Chirp Spread Spectrum
ECC Electronic Communications Comittee
ETSI European Telecommunications Standards Institute
FCC Federal Communications Commission
FEC Forward Error Correction
FSM Finite State Machine
GSM Global System for Mobile Communications
IoT Internet of Things
ITU International Telecommunication Union
ISM Industrial, scientific and medical
LoRa Longe Range
LBT Listen Before Talk
LO Local Oscilator
LTE Long Term Evolution
LPWAN Low-Power Wide Area Networks
MAC Medium Access Control
MIC Message Integrity Code
57