hybrid arq scheme using in-band full-duplex...

76
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

Upload: others

Post on 03-Aug-2020

2 views

Category:

Documents


0 download

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

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

Bibliography

NS Network Server

RF Radio-Frequency

RR Radio Regulations

SF Spreading Factor

STM Simple TCP Messaging

SRD Short Range Device

UMTS Universal Mobile Telecommunications System

58