# Implantation d'un détecteur de préambules vobulés par satellite en orbite basse

Matthieu Magnant, Mohamed Amine Ben Temim, Bertrand Le Gal, Guillaume Ferré, Florian Collard

► To cite this version:

Matthieu Magnant, Mohamed Amine Ben Temim, Bertrand Le Gal, Guillaume Ferré, Florian Collard. Implantation d'un détecteur de préambules vobulés par satellite en orbite basse. Gretsi 2023 - XXIXème Colloque Francophone de Traitement du Signal et des Images, Aug 2023, Grenoble, France. pp.1-4. hal-04310386

HAL Id: hal-04310386

https://hal.science/hal-04310386v1

Submitted on 27 Nov 2023

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons CC BY 4.0 - Attribution - International License
# Implantation d'un détecteur de préambules vobulés par satellite en orbite basse

M. MAGNANT¹ M. A. BEN TEMIM² B. LE GAL¹ G. FERRE¹ F. COLLARD³

¹Laboratoire IMS, 351 Cours de la libération, 33405 Talence cedex, France

²Telnet Space, Aerospace Valley, centre d'innovation 31405 Toulouse cedex 4, France ³Eutelsat, 32 Bd Gallieni, 92130

Issy-les-Moulineaux, France

**Résumé** – Le monde de l'Internet des objets (IoT) subit depuis quelques temps une révolution avec le déploiement de passerelles en orbite basse terrestre. Cette révolution permet d'offrir ce que l'IoT promet depuis son apparition à savoir la connexion d'un objet quelle que soit sa position sur Terre. Plusieurs couches physiques ont montré qu'elles avaient la sensibilité pour de telles communications. Dans cet article, nous proposons une solution permettant à un opérateur IoT par satellite LEO de détecter ces différents paquets sur la base d'un préambule unique.

**Abstract** – Internet of Things (IoT) has been undergoing a revolution with the deployment of gateways in low earth orbit (LEO). This revolution offers what IoT has been promising since its inception, namely the connection of an object regardless of its position on Earth. Several physical layers have shown to have the sensitivity for such communications. In this paper, we propose a solution allowing an IoT operator via LEO satellite to detect these different packets based on a same preamble.

## 1 Introduction

Avec la démocratisation de l'accès à l'espace, nous assistons aujourd'hui à un déploiement massif de satellites en orbites basses (LEO pour *Low Earth Orbit*). Ces satellites sont majoritairement des nanosatellites et embarquent tout type de charges utiles. Quelle que soit la charge utile, le satellite dispose de moyens de communications numériques lui permettant d'envoyer ou de recevoir des données. L'Internet des objets n'a pas échappé à cette révolution de l'accès à l'espace et de nombreux projets déployés ou en cours de déploiement permettent de connecter un objet à Internet quelle que soit sa position sur Terre en utilisant des satellites LEO comme passerelles. Faire ainsi de l'IoT implique de nombreux défis techniques d'un point de vue de la communication des données. Les deux défis majeurs sont en lien avec : 1/ la vitesse relative du satellite par rapport à la Terre et 2/ le *field of view* (FoV) du satellite [2].

En effet, les technologies LPWAN actuellement déployées sur Terre, telles que celles de Semtech (LoRa, LR-FHSS) ou encore NB-IoT, offrent des bilans de liaison permettant d'établir des communications par satellites LEO. En effet, ces réseaux sans-fils longue portée et faible consommation d'énergie supportent pour certains d'entre eux des pertes de parcours jusqu'à 150 dB. En Europe, la technique LoRa a des modes à longues portées qui ont des sensibilités proches de $S = -140dBm$ avec des EIRP pouvant atteindre $P_{EIRP} = 14 dBm$. Il semble pertinent de les utiliser tels quels pour communiquer avec des satellites LEO. Cependant, comme elles n'ont pas été conçues à l'origine pour de telles communications, il est nécessaire de proposer des récepteurs permettant de les démoduler. De plus, avant d'envisager démoduler les signaux reçus, il est nécessaire de détecter la présence d'un signal d'intérêt. Cette détection s'effectue généralement par l'intermédiaire d'un signal dit préambule.

Si l'effet Doppler généré par la vitesse relative est indépendant de la technologie de communication utilisée, l'impact du FoV en dépend quant à lui. En effet, les communications effectuées dans les bandes libres d'utilisations (typiquement les bandes ISM) vont davantage être exposées au phénomène d'in-

terférence car par principe plusieurs technologies se partagent la même bande de fréquence sans aucune coordination. Plusieurs stratégies peuvent être mise en oeuvre afin de lutter contre les collisions. Cependant, avant toute chose, il est nécessaire de détecter la présence des signaux avant d'envisager un traitement permettant de traiter l'interférence.

Dans cet article, nous proposons un algorithme permettant de détecter la présence de préambules vobulés hétérogènes dans le cadre de communications montantes vers un satellite LEO. Étant donné ce contexte applicatif les performances de notre détecteur doivent permettre une bonne détection à la fois dans le cadre de faible et de forte charge.

## 2 Contexte des travaux

Ce travail porte sur un projet de déploiement de constellation de satellites IoT par l'entreprise Eutelsat. L'algorithme à mettre en œuvre a pour but de détecter un signal de type préambule présent en entête d'un paquet d'informations émis par un objet sur Terre. La forme d'onde à utiliser pour générer le préambule doit être compatible avec les différentes puces des technologies LPWAN les plus répandues. Ainsi, cette forme d'onde doit être disponible dans les puces LoRa et LR-FHSS telles que SX1261 et SX1262 [1], et dans les puces Sigfox telles que S2-LPQTR et S2-LPCBQTR [6]. Après avoir consulté les documentations techniques, nous avons opté pour des préambules vobulés. Ce choix est également motivé par l'utilisation d'une bande ISM dans laquelle il faut réduire l'impact des signaux interférents. La longueur du préambule ainsi que la largeur de bande de l'enveloppe complexe sont limitées respectivement à 150 ms et 10 kHz. De plus, un canal réservé à l'émission des préambules est réservé, ce qui permet de ne pas restreindre le débit des données utiles à la bande des préambules.
## 3 Détection de préambules vobulés

Rappelons tout d'abord le principe de la modulation chirp spread spectrum (CSS). Si on note SF le nombre de bits par symbole, cette dernière consiste à associer à chaque SF-uplets de bits une unique trajectoire de phase $\phi_k(t)$ de durée $T$ parmi un ensemble $\omega_S$ de $M = 2^{SF}$ trajectoires différentes. Ici $T$ représente le temps symbole et si $B$ désigne la bande de fréquence vobulée on a : $M = B \times T$. Cette contrainte permet notamment d'avoir une continuité de phase entre chirps modulés successifs. Les préambules de différents SF sont orthogonaux dès lors que la différence de puissance reçue est de l'ordre de 6dB. Lors d'une communication par satellite une telle perte (resp. gain) de puissance correspond à une division (resp. multiplication) par 2 de la portée de communication. Sachant que la constellation de satélites orbite à 550km d'altitude, une telle différence de puissance correspond à une FoV de minimum 2.8 millions de km² soit 5.2 fois la surface de la France. Ainsi, il est nécessaire de mettre en place un algorithme permettant de détecter des préambules qui ne seront par principe pas orthogonaux même si les SF sont différents. Afin de maximiser le nombre de préambules disponibles, et étant donné les contraintes du projet, la bande $B$ a été fixée à 7.8kHz, et les SF 7, 8 et 9 comprenant respectivement $N_p$ 8, 4 et 2 chirps bruts montants (ou descendants) dans le préambule ont été sélectionnés. Cela permet d'une part de fermer le bilan de liaison et d'autre part de respecter la durée maximale de préambule autorisée car on obtient $\forall SF \in \{7, 8, 9\}$, $T_p = N_p \times \frac{2^{SF}}{B} = 131ms$. Si on note $s_p(t)$ l'enveloppe complexe associée aux préambules, on obtient :

$$s_p(t) = \sum_{p=1}^{N_p} e^{j\phi_0(t-(p-1)T)} 1_{[(p-1)T, pT)}(t) \quad (1)$$

Sans perte de généralités, nous avons considéré que $\forall p \in [1, N_p]$, $\phi_0(t)$ qui représente la phase instantanée du signal, est obtenue en intégrant la fréquence $f(t) = B(\frac{t}{T} - 0.5)$. Ce qui correspond à la version non modulée du signal vobulé. Dans la suite, on appellera dechirping, l'opération consistant à multiplier une tranche de signal CSS de durée $T$ par la version conjuguée du signal vobulé non modulé : $e^{-j\phi_0(t)}$.

### 3.1 Algorithme proposé

Nous présentons dans cette section l'algorithme de détection que nous avons développé. Nous allons d'abord exposer la structure de l'enveloppe complexe reçue par le satellite :

$$y_r(t) = \sum_{i=1}^{N_R} \sqrt{P_i} x_i(t - t_{s,i}) e^{j(2\pi(\Delta f_i + \frac{c_{d,i}t}{2})t + \varphi_{0,i})} + w(t) \quad (2)$$

* $w(t)$ le bruit complexe additif blanc et Gaussien de var. $\sigma_w^2$,

* $N_R$ le nombre de préambules captés,

* $P_i$, $t_{s,i}$, $\Delta f_i$, $c_{d,i}$ et $\varphi_{0,i}$ sont respectivement la puissance, l'instant de début, le décalage de fréquence, le rythme Doppler et la phase initiale du $i^{\text{ième}}$ signal reçu,

* $x_i(t)$ l'enveloppe complexe $i^{\text{ième}}$ signal reçu :

$$x_i(t) = s_{p,i}(t)1_{[0, T_p]}(t) + r_i(t - T_p)1_{[T_p, T_p + T_{\text{pkt}}^i)}(t) \quad (3)$$

avec $r_i(t)$ (resp. $s_{p,i}(t)$) étant l'enveloppe complexe du paquet (resp. préambule) du $i^{\text{ième}}$ signal reçu et $T_{\text{pkt}}^i$ sa durée. Ici $r_i(t)$ provient d'un objet au sol utilisant une technologie LPWAN comme LoRa, Sigfox ou encore LR-FHSS.

<figure><img src="image_2.png" /><figcaption>FIGURE 1: $T(k, p)$ en l'absence d'interférence, $SF = 7$, $B_p = 7.8$ kHz et $N_p = 8$.</figcaption></figure>

**Première approche :** Dans un premier temps, nous proposons une approche dans laquelle il n'y pas de collisions de préambules. Cette approche sera dans un second temps étendue. Ainsi, l'expression du signal reçu échantillonné à $T'_s = \frac{1}{\alpha \times B_p}$, avec $B_p = B$ la largeur de bande du canal dédiée, vaut :

$$y_r(n) = \sum_{i=1}^{N_R} \sqrt{P_i} s_{p,i}(n - n_{s,i}) e^{j(2\pi(\Delta f_i + \frac{c_{d,i}nT'_s}{2})nT'_s + \varphi_{0,i})} + w(n) \quad (4)$$

avec $n_{s,i} = \lfloor \frac{t_{s,i}}{T'_s} \rfloor = K_{s,i}\alpha M + \tau_{s,i}$, sachant que $\tau_{s,i}$ (resp. $K_{s,i}$) représente le décalage temporel (resp. l'indice de la séquence de durée $T$ de début du préambule) du $i^{\text{ième}}$ signal reçu. Afin de détecter la présence de préambules, le récepteur enchaîne les traitements suivants pour chaque valeur de SF :

1. Dechirping de $y_r(n)$ par chaque valeur de SF,

2. FFT du dechirping sur $\frac{T}{T_s}$ échantillons,

3. Calcul de

$$T(k, p) = \sum_{j=p}^{p+N_p-1} \left| \frac{Y(k, j)}{\sigma_w} \right|^2 \quad (5)$$

avec $k \in [0, M-1]$, $p \in \{1, \dots, N_B\}$ et $N_B \times T$ la durée du buffer. $Y(k, j)$ correspondant au $k^{\text{ième}}$ bin de la FFT du dechirping de la $j^{\text{ième}}$ tranche de $y_r(n)$ de durée $T$.

Etant donné les valeurs importantes que peuvent prendre les Dopplers dans le cadre des ces communications, les traitements sont réalisés en mode sur-échantillonné par rapport à Nyquist, $\alpha > 1$. Sur la figure 1, nous présentons le résultat obtenu pour la fonction $T(k, p)$ pour la détection SF = 7 et $N_p = 8$.

Nous nous apercevons sur la figure 1 que la détection d'un SF est associée à un pattern spécifique. En effet, à Nyquist (i.e. $\alpha = 1$) il est attendu de trouver $2N_p - 1$ pics dans le pattern, sachant que l'intervalle entre les pics vaut $M$. Par ailleurs, un maximum d'énergie est obtenu pour $p = K_{s,i}$, car toutes les FFTs contiennent le préambule. Cependant, en mode sur-échantillonné chaque FFT fait apparaître 2 pics d'énergie (distant de $M$) lié au non repliement du signal et cela même dans le cas d'une synchronisation parfaite [4]. Ainsi, afin d'identifier la présence d'un préambule valide, nous cherchons ce pattern. Pour cela, à partir de $T(k, p)$, nous :

* Calculons la fonction $M(p) = \max_k(T(k, p))$, $p \in \{1, \dots, N_B\}$,

* Cherchons tous les pics d'énergie dans $M(p)$ qui dépassent
<figure><img src="image_3.png" /><figcaption>FIGURE 2: Allure de $T(k, p)$ pour traitement $SF = 7$, $B_p = 7.8$ kHz et $N_p = 8$.</figcaption></figure>

un seuil $Th^1$ en respectant une distance minimum de $N_p$ afin d'être certain de détecter deux patterns différents. En d'autres termes, cela revient à trouver $\hat{K}_{s,i}$ une estimation de $K_{s,i}$ avec : $\hat{K}_{s,i} = \underset{p}{\operatorname{argmax}}(M(p))$,

* Vérifions que les pics d'énergie sur les séquences $K_{s,i} - 1$ et $K_{s,i} + 1$ dépassent le seuil et sont situés à la même fréquence que le pic d'énergie de la séquence $K_{s,i}$.

Nous proposons une évolution de la méthode de détection pour prendre en compte les interférences.

**Deuxième approche :** Afin de comprendre l'impact d'une interférence de type inter-SF sur la première approche proposée, nous montrons sur la Fig. 2, l'allure de $T(k, p)$ lorsqu'une détection pour $SF = 7$ et $N_p = 8$ est effectuée. On aperçoit le pattern recherché, mais également un pattern différent correspondant dans ce cas à la présence d'un préambule $SF = 9$ et $N_p = 2$. En observant l'allure de ce dernier, on constate qu'il peut entraîner une fausse détection. Afin de limiter cet inconvénient et étant donné la structure du pattern (beaucoup plus de pics d'énergie sont présents), nous complétons la détection par une contrainte du type peak to average power ratio (PAPR) telle que si $\frac{\max(T(k,p))}{\min(T(k,p))}$, $p \in \{K_{s,i} - 1, K_{s,i}, K_{s,i} + 1\}$ dépasse un seuil alors le préambule est valide. Ceci est vrai quelque soit les SF en interférences.

Lorsque plusieurs préambules de même SF interfèrent, il faut mettre en place une procédure spécifique pour les gérer. Nous proposons d'utiliser les puissances de réception des préambules pour faire itérativement une suppression successive d'interférences. La figure 3 présente l'allure de la fonction $T(k, p)$ lorsque plusieurs préambules de même SF sont en collisions (ici $SF = 9$ et $N_p = 2$). En l'état, notre approche ne détectera que le préambule avec la plus forte puissance à la réception. Afin de surmonter cette limitation, la contribution de chaque préambule valide est supprimée de la fonction $T(k, p)$ : les pics d'énergie du préambule détecté sont mis à zéro. Ainsi de manière itérative, on peut détecter plusieurs préambules en collisions. Dans la version actuelle de l'algorithm, nous avons fixé un nombre maximal d'itérations $N_{itr}$. La figure 3 montre un exemple de résultat après une itération. Les préambules détectés ont bien été

<table><caption>TABLE 1 : Paramètres de simulation</caption><tr><td>Porteuse f<sub>c</sub> (MHz)</td><td>868</td></tr><tr><td>Bande du préambule B<sub>p</sub> (kHz)</td><td>7.8</td></tr><tr><td>CFO max Δf<sub>max</sub> (kHz)</td><td>20</td></tr><tr><td>DR max DR<sub>max</sub> (Hz/s)</td><td>300</td></tr><tr><td>Étalement de puissance PS (dB)</td><td>5</td></tr><tr><td>SNR moyen (dB)</td><td>0</td></tr><tr><td>Facteur de sur-échantillonnage α</td><td>{2, 4}</td></tr><tr><td>Probabilité de fausse alarme P<sub>fa</sub></td><td>10<sup>-3</sup></td></tr><tr><td>Durée du buffer T<sub>B</sub> (s)</td><td>5</td></tr><tr><td>Nombre d'itérations N<sub>itr</sub></td><td>{2, 3, 4}</td></tr><tr><td>Nombre de Monte Carlo</td><td>10000</td></tr></table>

supprimés, permettant le traitement des préambules en collision.

Afin de montrer la pertinence de notre proposition, nous proposons tout d'abord des résultats de simulations, puis une version temps réel sur données synthétiques est développée.

## 3.2 Résultats et discussions

L'objectif de cette section est d'évaluer les performances de détection de notre algorithme pour différentes charges du système. Nous définissons la charge du système comme $\frac{N_R T_p}{T_B}$, avec $T_B = N_B T$ la durée de l'enregistrement en cours de traitement ($\frac{T_B}{T_s}$). Sachant la contrainte de bande de notre application (inférence à 10kHz) nous proposons de choisir la bande de 7.8kHz supportée par les puces LoRa [5].

Afin de générer le trafic, nous considérons que le nombre de paquets reçus par buffer suit une loi de Poisson. La puissance des préambules est uniformément répartie dans un intervalle cohérent avec les budgets de puissance de notre application. Étant donné le champ de vision du satellite, la puissance reçue s'étalerà dans une dynamique de l'ordre de 5 dB (Satellite LEO à 550km). On notera PS cet étalement de puissance. Les paramètres de la simulation sont donnés dans la table 3.2.

Le carrier frequency offset (CFO) et le Doppler rate (DR) sont respectivement uniformément distribués dans $[-\Delta f_{max}, \Delta f_{max}]$ et $[-DR_{max}, DR_{max}]$.

Nous proposons d'évaluer l'effet du nombre d'itérations et du facteur de sur-échantillonnage sur la détection des préambules. Pour cela, nous représentons sur la Fig. 4 les probabilités de bonne et mauvaise détection en fonction de la charge du système. Pour $\alpha = 4$, nous constatons que l'augmentation de $N_{itr}$ permet d'améliorer le taux de bonne détection tout en dégradant légèrement la probabilité de mauvaise détection, notamment pour les faibles charges. Nous remarquons également que pour de faibles charges, l'algorithme fonctionne parfaitement et que pour des charges élevées, par exemple 2.6 (i.e. en moyenne 100 préambules reçus en $T_B = 5$s), la probabilité de bonne détection est à 0.92 (resp. 0.9) pour $N_{itr} = 4$ (resp. $N_{itr} = 3$).

## 4 Expérimentations temps réel

Pour démontrer que l'approche proposée est applicable dans le contexte des nanosatellites, une version fenêtrée de l'algorithme de détection décrit précédemment a été décrite en C++ 14. Les capacités SIMD des processeurs actuels ont été employées afin d'améliorer les caractéristiques temporelles des détecteurs en réduisant le temps de traitement des données et donc l'énergie consommée. L'utilisation d'intrinsèques NEON a permis de manuellement optimiser les opérations de dechirping, de recherche des argmax et les FFT. Les détecteurs ont été déployés sur deux plateformes ARM : (1) un processeur ARM Cortex-A72 64 bits (Raspberry Pi 4), dont la fréquence d'horloge est fixée à 1,5 GHz

<footnote n="1">¹L'expression du calcul du seuil n'est pas détaillée faute de place, mais il s'agit ici de mettre en place un test d'hypothèse binaire et d'utiliser comme variable de test $T(k, p)$ sous l'hypothèse bruit.</footnote>
<figure><img src="image_4.png" /><figcaption>FIGURE 3 : Allure de $T(k, p)$, traitement itératif $SF = 9$, $B = 7.8$ kHz et $N_p = 2$ - (a) État initial - (b) après 1 itération.</figcaption></figure>

<figure><img src="image_5.png" /><figcaption>FIGURE 4 : Probabilités de détection et de fausse alarme pour différentes valeurs de $N_{itr}$ et $\alpha$.</figcaption></figure>

similaire à un coeur durci et tolérant aux radiations (LS1046 développée par Teledyne e2v), et (2) un processeur ARM Cortex-A9 32 bits fonctionnant 600 MHz, issu d'une carte PYNQ Z2.

Les performances ont été évaluées avec $SF \in [7, 8, 9]$ et $\alpha = 4$ tandis que $B = 7800$ Hz en adéquation avec les formes d'onde à détecter. Le détecteur fonctionne sur une fenêtre glissante d'une durée égale à $3 \times SF$ chirps. Les détecteurs ont un temps d'exécution variable en fonction du nombre de trames dans la fenêtre glissante. En conséquence, nous fournissons ici, les temps au pire cas. La plateforme 1 prend au maximum 6 ms pour traiter une fenêtre et acquérir les données suivantes, sachant que le temps maximum d'exécution est fixé à 131 ms. Les résultats de la seconde plateforme Zynq sont compatibles avec les contraintes temps réels avec un temps au pire cas de 14 ms. Ces évaluations montrent que les détecteurs présentés ont une capacité temps réel et respectent les contraintes de l'étude, même sur des processeurs de "faible" complexité. Le niveau d'efficacité autorise même une augmentation de $\alpha$ de facteur 4 à 16 pour améliorer les performances de détection.

## 5 Conclusion

Dans cet article, nous avons présenté un système permettant de détecter des communications IoT depuis un nanosatellite. Les algorithmes composant le récepteur ont été évalués d'un point de vue théorique. Dans un second temps, la conception d'un démonstrateur temps réel sur des plateformes ARM spatialisables a permis la validation expérimentale de l'approche. Les performances temps réel ont été obtenues grâce à une parallélisation SIMD du détecteur. Les travaux futurs se focaliseront sur le développement d'accélérateurs matériels et le déploiement

des détecteurs sur la cible Zynq UltraScale+ de notre partenaire industriel afin de procéder à des tests en conditions réelles.

## Références

[1] https://wwwsemtechcomproductswireless-rflora-core/sx1262.

[2] M.A. BEN TEMIM, G. FERRÉ et R. TAJAN : A new lora-like transceiver suited for LEO satellite communications. *Sensors*, 22, 2022.

[3] G. BOQUET, P. TUSET-PEIRÓ, F. ADELANTADO, T. WATEYNE et X. VILAJOSANA : LR-FHSS : Overview and performance analysis. *IEEE Comm. Magazine*, 59, 2021.

[4] G. COLAVOLPE, T. FOGGI, M. RICCIULLI, Y. ZANETTINI et J. MEDIANO-ALAMEDA : Reception of LoRa signals from LEO satellites. *IEEE TAES*, 2019.

[5] LORA ALLIANCE : RP2-1.0.2 LoRaWAN Regional Parameters, 2020.

[6] STMICROELECTRONICS : Ultra-low power, high performance, sub-1 GHz transceiver, 2021.

[7] M. A. ULLAH, K. MIKHAYLOV et H. ALVES : Analysis and simulation of LoRaWAN LR-FHSS for direct-to-satellite scenario. *IEEE WCL*, 2022.

[8] S.Y. WANG, J.E. CHANG, H. FAN et Y.H. SUN : Performance comparisons of NB-IoT, LTE Cat-M1, Sigfox, and LoRa moving at high speeds in the air. *In Proc. of IEEE ISCC*, 2020.