RTL SDR et retro-ingénierie : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Déterminer la fréquence d'émission)
(Déterminer la modulation utilisée)
Ligne 264 : Ligne 264 :
 
=== Déterminer la modulation utilisée ===
 
=== Déterminer la modulation utilisée ===
  
Après avoir détecté la fréquence d'émission, nous avons cherché la modulation utilisée par la télécommande.
+
Après avoir détecté la fréquence d'émission, nous avons cherché à déterminer la modulation utilisée par la télécommande.
  
 
Gqrx dispose d'une option permettant d'enregistrer les signaux reçus en appliquant les démodulations les plus utilisées (AM, FM). Nous obtenons deux fichiers .wav d'un même signal avec les différentes modulations proposées.
 
Gqrx dispose d'une option permettant d'enregistrer les signaux reçus en appliquant les démodulations les plus utilisées (AM, FM). Nous obtenons deux fichiers .wav d'un même signal avec les différentes modulations proposées.
  
Dans un premier temps, nous éliminons les parties comprenant du bruit qui correspondent aux moments d'enregistrement lorsque la télécommande n'émet pas (avant et après le pressage du bouton). Ce type de signal est caractéristique (voir figure ci-dessous) : il ne correspond à rien et est aléatoire.
+
Dans un premier temps, nous éliminons les parties comprenant du bruit qui correspondent aux moments d'enregistrement lorsque la télécommande n'émet pas (avant et après la pression du bouton). Ce type de signal est caractéristique (voir figure ci-dessous) : il ne correspond à rien et est aléatoire.
  
 
[[Fichier:Bruit.png|800px|thumb|center|Bruit]]
 
[[Fichier:Bruit.png|800px|thumb|center|Bruit]]
  
Puisque le signal transmet de l'information (numéro du garage à ouvrir), nous pensons qu'après démodulation, nous devrions obtenir un signal numérique. On observe que seule la modulation en amplitude (image ci-dessous) donne un signal numérique cohérent. Les autres modulations ne donnent aucunes informations (voir image ci-dessous de la démodulation FM).
+
Puisque le signal transmet de l'information (identifiant associé à la porte de garage à ouvrir), nous pensons qu'après démodulation, nous devrions obtenir un signal numérique. On observe que seule la modulation en amplitude (image ci-dessous) donne un signal numérique cohérent. Les autres modulations ne donnent aucunes informations (voir image ci-dessous de la démodulation FM).
  
 
[[Fichier:Am.png|800px|thumb|center|Démodulation AM]]
 
[[Fichier:Am.png|800px|thumb|center|Démodulation AM]]

Version du 18 janvier 2017 à 14:53

Page en cours de production.

Introduction

Dans le cadre du projet Réseaux Mobiles, nous avons décidé de nous intéresser à la rétro-ingénierie de signaux radio.

En quelques mots, cela consiste à "écouter" les ondes radio qui transitent dans notre environnement, les enregistrer et les étudier pour remonter aux informations qu'elles véhiculent.

Pour ce faire, nous avons eu recours à un module RTL-SDR : le préfixe RTL fait référence à l'identifiant "rtl" associé à la carte électronique utilisée pour capter les ondes radio, et SDR signifie Software Defined Radio, autrement dit une Radio Définie Logiciellement.

Dans la suite, nous aborderons plus précisément cette dernière, et nous présenterons plus en détail le matériel utilisé. Cependant, nous allons commencer par présenter certaines notions de traitement du signal qui seront essentielles à la bonne compréhension de la suite du propos.

Traitement du Signal - Rappels Théoriques

Cette partie peut être ignorée par tout lecteur déjà familier avec les notions classiques se rapportant à l'émission d'ondes radios, telles que la modulation ou encore les différents codages binaires. Son but est de vulgariser les éléments techniques et scientifiques nécessaires à la compréhension du propos pour les lecteurs qui n'auraient pas les connaissances sus-citées.

Fonctionnement de la transmission par rayonnements électromagnétiques

Les réseaux sans-fil s'appuient sur les rayonnements électromagnétiques, que la Physique modélise comme des ondes : les ondes électromagnétiques. En effet, ces dernières se propagent dans l'air ambiant, sont "facilement" émises et reçues, et font intervenir des paramètres physiques modulables, ce qui permet de véhiculer de l'information. Ci-dessous, la propagation d'une onde électro-magnétique avec atténuation, caractérisée notamment par sa fréquence et son amplitude.

Propagation d'une onde électo-magnétique avec atténuation

Reprenons rapidement chacun des points énoncés à l'instant, en commençant par la propagation dans les milieux ambiants. Cette propagation s'accompagne d'une atténuation de puissance (dépendant de la fréquence de l'onde) par dissipation d'énergie, qui est plus ou moins important selon le milieu traversé. Le fait que cette dissipation soit relativement restreinte dans l'air permet une communication sans fil sur des distances variant de la dizaine de mètres pour le Wi-Fi à la centaine de kilomètre pour SigFox.

Quant à la production d'une telle onde, elle est relativement simple : il suffit de faire circuler un courant alternatif dans un conducteur (généralement rectiligne). Une antenne émettrice d'ondes radio n'est rien d'autre qu'un "morceau" de métal conducteur rectiligne traversé par un courant alternatif. En effet, la circulation du courant se traduit par un mouvement de charges (électrons) au sein du conducteur. Cela induit un champ magnétique (noté \vec{B}), et une répartition de charges non uniformes (des électrons du conducteur "migrent") qui induit un champ électrique (noté \vec{E}). Point important, la fréquence de l'onde produite est identique à la fréquence du courant alternatif utilisé pour l'engendrer.

L'opération inverse, c'est-à-dire la réception d'une onde électromagnétique, est similaire, voire duale. En effet, un courant électrique est induit dans tout conducteur exposé à une onde électromagnétique. Ce courant est une image de celui ayant servi à engendrer l'onde électromagnétique. On a donc transféré un courant (en d'autres termes, de l'information comme nous le verrons dans la suite) de l'antenne émettrice à l'antenne réceptrice. Ci-dessous, une animation représentant la réception d'une onde électromagnétique.

Réception d'une onde électo-magnétique

Dernier point à aborder, les paramètres physiques modulables. Ils seront justement l'objet du point suivant.

Différentes modulations

Principe de la modulation

Afin de transmettre de l'information par le biais d'une onde électromagnétique, il faut pouvoir moduler une de ses grandeurs physiques caractéristiques. Or, l'amplitude et la fréquence des champs produits sont modulables, par le biais d'une modulation de l'amplitude et de la fréquence du courant qui traverse l'antenne émettrice.

Le principe de la modulation tient en quelques lignes. On produit une onde électromagnétique, appelée porteuse, qui est généralement sinusoïdale et de fréquence élevée et sélectionnée (nous allons y revenir). Ensuite, l'on fait varier l'une de ses grandeurs caractéristiques (l'amplitude ou la fréquence) en fonction de l'information à transmettre. Un exemple de modulation est présenté sur l'illustration ci-dessous :

Exemple de modulation

On peut néanmoins se demander pourquoi recourir à l'utilisation d'une onde porteuse lorsque l'on pourrait directement envoyer le signal représentant l'information. Afin de répondre à cette question, il convient d'introduire deux problématiques associées à l'émission d'ondes radios.

D'une part, pour permettre la réception de l'onde émise, il faut l'émettre avec une puissance suffisante pour que l'atténuation due à la propagation ne "détruise" pas le signal. Or, l'information à transmettre est généralement portée par un signal de faible puissance (on peut penser à l'enregistrement de la voix d'une personne par le biais d'un micro. On obtient un courant électrique de faible puissance). D'autre part, il faut s'assurer qu'il n'y aura pas de brouillage. En effet, les ondes électromagnétiques "s'additionnent" : l'amplitude d'un champ électromagnétique en un point de l'espace est la somme des amplitudes de toutes les ondes électromagnétiques qui se superposent en ce point. L'utilisation d'une onde porteuse offre une solution à ces deux problématiques.

En effet, le fait de produire une onde électromagnétique pour porter le signal contenant l'information permet d'injecter de la puissance (car c'est la porteuse qui est réellement émise). De plus, le fait de pouvoir sélectionner/choisir la fréquence de cette porteuse permet de "séparer" les ondes électromagnétiques (l'on sait filtrer les fréquences reçues efficacement, notamment par le biais de filtres passe-bande). Par exemple, si les radios, telles que Virage Radio ou Hot Radio, émettaient directement l'enregistrement de leur émissions, les deux se recouvriraient (on entendrait deux personnes parler en même temps, comme cela se produit dans la vie de tous les jours). À la place, chaque radio se voit attribuer une fréquence d'émission (à Grenoble, pour Hot Radio 102.0 MHz, et 89.4 MHz pour Virage Radio), ce qui correspond à la fréquence des ondes porteuses que leurs stations radios utilisent. L'utilisateur peut alors choisir la radio qu'il veut écouter en sélectionnant la fréquence correspondante (oui, vous réglez un filtre passe-bande lorsque vous changez la fréquence de votre poste radio).

Après avoir introduit globalement le principe de la modulation, nous allons présenter deux exemples de modulation, un en amplitude et un en fréquence.

Modulation en amplitude

L'exemple ci-dessous présente une modulation en amplitude. En d'autres termes, le signal à transmettre module l'amplitude de la porteuse pour obtenir le signal modulé. En détail, on trouve :

  • à gauche, le signal à transmettre ;
  • au centre, la porteuse ;
  • à droite, le signal modulé obtenu.

Afin de rendre l'exemple plus simple à comprendre, la fréquence de la porteuse et l'allure du signal à transmettre s'accordent, et on considère que le signal à transmettre fixe directement l'amplitude du signal modulé (en réalité, l'amplitude du signal à transmettre "s'ajoute" à celle de la porteuse). Néanmoins, un signal à transmettre plus complexe ne posera à priori pas de problème.

Modulation en amplitude (cliquer pour une plus haute résolution)

Modulation en fréquence

L'exemple ci-dessous présente une modulation en fréquence. En d'autres termes, le signal à transmettre module la fréquence de la porteuse pour obtenir le signal modulé. En détail, on trouve :

  • à gauche, le signal à transmettre ;
  • au centre, la porteuse ;
  • à droite, le signal modulé obtenu.

Afin de rendre l'exemple plus simple à comprendre, la fréquence de la porteuse et l'allure du signal à transmettre s'accordent, et on considère que le signal à transmettre fixe directement la fréquence du signal modulé (en réalité, l'amplitude du signal à transmettre est transcrite en une proportion (ie. un pourcentage) de la fréquence de la porteuse qui est ajouté à cette dernière). Néanmoins, un signal à transmettre plus complexe ne posera à priori pas de problème.

Modulation en fréquence (cliquer pour une plus haute résolution)

Comparaisons des modulations en amplitude et en fréquence

Comparaison des modulations en amplitude et en fréquence

Pour finir cette partie traitant de la modulation, nous allons nous intéresser aux avantages et inconvénients des modulations en amplitude et en fréquence.

Premièrement, la modulation en amplitude est plus simple et moins coûteuse à mettre en place que la modulation en fréquence.

De plus, la bande passante nécessaire pour la modulation en amplitude est plus faible que pour la modulation en fréquence (on peut voir la bande passante comme la bande de fréquence minimale qui contient toutes les fréquences contenues dans le signal modulé). En conséquence, on peut faire cohabiter plus de bandes de fréquence avec de la modulation en amplitude. Néanmoins, plus la bande passante d'un signal est grande, meilleure est la qualité atteignable pour le signal émis. Ainsi, la modulation de fréquence tend à produire des signaux de meilleure qualité.

De surcroît, la modulation en amplitude est sensible au bruit (ie. la superposition des ondes électromagnétiques parasites), car ce dernier altère l'amplitude du signal reçu : il peut donc y avoir corruption de l'information transportée. Au contraire, la modulation de fréquence fait fi de l'amplitude du signal reçu, et n'est donc pas sensible au bruit.

Dernier point notable, la modulation d'amplitude impliquant (dans la plus grande majorité des cas) une augmentation de l'amplitude de la porteuse, le signal modulé produit peut se propager plus loin que pour une modulation en fréquence.

Principaux codages numériques

Le dernier point théorique qu'il nous reste à détailler concerne le codage des informations à envoyer. En effet, étant donné que nous nous intéressons principalement à des signaux à destination de dispositifs numériques, les informations échangées sont des données numériques, c'est-à-dire des bits, au sens numérique (0 et 1 logiques). Or, il existe plusieurs façons standards de représenter ces valeurs logiques par le biais des grandeurs modulables, c'est ce que l'on nomme un codage. Tous ont en commun le fait que les bits soient émis périodiquement, et que chaque période corresponde à un bit. Nous allons maintenant présenter trois des codages les plus communs, à savoir les codages NRZ, RZ et Manchester.

Codage "Non Return to Zero" (NRZ)

Le codage Non Return to Zero est le plus simple possible. En effet, il consiste à fixer deux valeurs de la grandeur modulée, et à faire correspondre à la première le 0 logique, et à la seconde le 1 logique. Dans l'exemple ci-dessous, le nombre 76_{(10)} = 0100\ 1100_{(2)} a été encodé avec les correspondances 0V\rightarrow0 et 3V\rightarrow1 :

Codage NRZ

Codage "Return to Zero" (RZ)

Le codage Return to Zero consiste également à associer une valeur de la grandeur modulée à chaque valeur logique que peut prendre un bit. Néanmoins, cette valeur n'est pas maintenue durant toute la période d'émission du bit. En effet, elle n'est maintenue que pendant la première moitié de la période, la seconde moitié étant "forcée à 0" (en d'autres termes, la seconde moitié de chaque période correspond forcément à un 0 logique). L'exemple ci-dessous correspond également au codage du nombre 76 avec la correspondance 0V\rightarrow0 et 3V\rightarrow1, cette fois avec un codage RZ :

Codage RZ

Codage Manchester

Par contre, le codage Manchester ne s'inscrit pas dans la même logique que les codages NRZ et RZ. En effet, ce sont les transitions entre les deux valeurs fixées de la grandeur modulable qui sont associées aux valeurs logiques 0 et 1 d'un bit. De plus, ces transitions sont centrées par rapport à la période d'émission du bit. Un exemple sera sûrement plus parlant : ci-dessous figure donc l'encodage du nombre 76 selon le codage de Manchester, avec les correspondances suivantes Transition_{haut\rightarrow bas}\rightarrow 1 et Transition_{bas\rightarrow haut}\rightarrow 0 :

Codage Manchester

On remarque que l'émission d'un bit est composée de deux demi-périodes, chacune correspondant à une des valeurs fixées pour la grandeur physique modulable. En effet, il est nécessaire que chaque période contienne une transition d'une des valeurs vers l'autre, car chaque période doit correspondre à un bit.

Gestion des fréquences pour l'émission d'ondes électromagnétiques en France

Les fréquences radioélectriques appartiennent à l'État. L'Agence Nationale des Fréquences (ANFR) est l'établissement publique qui est en charge de gérer lesdites fréquences radioélectriques.

L'ANFR associe des domaines de fréquences à certaines applications. Si un utilisateur souhaite émettre sur une bande réservée, il doit effectuer des démarches auprès de l'ANFR.

Voici les principaux domaines de fréquences avec leur application :

Frise frequentiel.png

Les domaines libres centrés sur 433 MHz et 868 MHz sont ceux qui auront toute notre attention dans la suite.

SDR avec Linux - Tutoriel

Description du Matériel

Radio Logicielle

Afin de pouvoir réaliser des tests sur les différentes technologies sans fil sans avoir besoin de matériel électronique spécifique, nous avons utilisé une radio logicielle (ou SDR pour Software Defined Radio en anglais). Le principe d'une telle radio est de déléguer le traitement du signal à un logiciel au lieu de le réaliser de manière électronique. Par exemple, un filtre passe-bande qui devrait être réalisé par un circuit RLC (une résistance, une bobine et un condensateur) est remplacé par un logiciel qui calcule et applique la fonction de transfert de ce circuit au signal traité.

Il existe deux grands types de radio logicielle : celle qui ne peuvent que recevoir des signaux et celle qui peuvent également en émettre. Dans le cadre de notre projet, centré autour de l'écoute d'ondes, nous nous sommes donc focalisés sur les radio logicielles uniquement réceptrices.

Par ailleurs, il est impossible de s'abstraire totalement de tout matériel électronique. En effet, il est nécessaire d'avoir un tuner, c'est-à-dire un composant capable de recevoir un signal électromagnétique à une fréquence précise, de l'amplifier et de le transmettre à un ordinateur.

RTL-SDR

RTL SDR R820T

La radio logicielle que nous avons utilisée est la radio logicielle RTL qui est un tuner DVB-T TV branchable par clef USB (image ci-contre). Elle est donc normalement faite pour recevoir la télévision sur un ordinateur. Cependant, Antti Palosaari, Eric Fry et Osmocom (http://www.rtl-sdr.com/about-rtl-sdr/) ont découvert qu'il est possible d'obtenir le signal reçu par RTL directement. Ils ont ainsi développé un driver permettant de transformer ce tuner TV très abordable (environ 20 dollars) en radio logicielle.

Les bandes de fréquence recevables par le RTL dépendent du tuner spécifique utilisé. Le tableau suivant récapitule les différentes valeurs possibles. Afin de pouvoir couvrir une bande assez large pour recevoir les différentes fréquences de domotique (433 MHz et 866 MHz), ou encore la radio FM (environ 100 MHz), nous avons pris un RTL utilisant un tuner R820T.

Tuner Elonics E4000 Rafael Micro R820T Fitipower FC0013 Fitipower FC0012 FCI FC2580
Frequency range (MHz) 52 - 1100 and 1250 - 2200 24 - 1766 22 - 1100 22 - 948.6 146 - 308 and 438 - 924

Source: Osmocom

Notre motivation à utiliser cette radio logicielle est triple :

  • Elle est supportée par un très grand nombre de logiciel ;
  • Elle est capable de recevoir les bandes utilisées en domotique ;
  • Elle est très abordable.

Logiciels Utilisés

Nos expérimentations se sont déroulées sous une distribution Debian. Nous avons utilisé principalement deux logiciels libres : GNU Radio Companion et Gqrx. Ces logiciels implémentent de manière logicielle les composants électroniques nécessaires au traitement du signal. Gqrx est basé sur GNU Radio mais il est plus facile d'utilisation que ce dernier. L'utilisation de ces deux logiciels est détaillée dans les sections ci-dessous.

De plus, nous avons utilisé Audacity pour la visualisation des fichiers .wav obtenus grâce aux deux logiciels précédemment cités.

Pour utiliser le RTL, ainsi que ces logiciels, nous avons dû installer cinq paquets disponibles par défaut dans les dépôts de Debian :

  • rtl-sdr et librtlsdr0 : le driver associé au tuner, et sa librairie ;
  • gqrx-sdr et gnuradio : les deux logiciels précédemment décrits ;
  • gr-osmosdr : joue le rôle d'interface entre la radio-logicielle et GNU Radio, il représente un bloc dans GNU Radio.

Gqrx

Fenêtre principale de Gqrx

Le premier outil avec lequel nous avons utilisé la radio logicielle s'appelle Gqrx. Son principal atout est de permettre une prise en main très rapide. Pour l'utiliser aucune connaissance en électronique n'est nécessaire, et seules quelques bases du traitement du signal sont requises.

Sa fenêtre principale, visible ci-dessus, peut être divisée en trois grandes parties :

  • La partie supérieure qui permet de lancer l'écoute (bouton en dessous de l'onglet "files") ;
  • La partie de gauche qui permet la sélection de la fréquence à écouter (en 1) et la visualisation de la cascade de fréquence (partie bleu de l'image). Chaque point de cette cascade de fréquence représente "l'intensité" du signal reçu pour une fréquence et un instant donnés. Ainsi, tout en haut se situent les signaux qui viennent d'être reçus. En bas de la fenêtre, on observe les signaux les plus anciens. Plus l'amplitude du signal reçu est forte, plus la coloration du point associé tend vers le rouge. On peut ainsi remarquer (en 2) qu'un signal (et non pas du bruit) a été reçu ;
  • La partie de droite qui permet de choisir le type de modulation employée (en 3) et d'enregistrer ce qui est obtenu dans un fichier au format .wav (en 4).

Une dernière option de Gqrx, également très utile pour commencer : le gain LNA qui permet d'amplifier les signaux faibles reçus. Il est contrôlable dans la fenêtre "Inputs Controls" (en 5).

Ainsi, grâce à Gqrx, il est possible de rapidement localiser un signal sans connaître au préalable sa fréquence, de la démoduler et de l'enregistrer. Le tout sans aucune notion, ou presque, d'électronique.

GNU Radio Companion (GRC)

Fenêtre principale de GNU Radio Companion

Le second outil que nous avons utilisé s'appelle GNU Radio Companion (GRC). Son utilisation est beaucoup plus complexe que le précédant. Comme on peut observer sur la figure ci-dessus, GRC fonctionne en terme de blocs. Chaque bloc représente une fonction réalisée, parmi notamment : un traitement du signal, une entrée, une sortie ou une interface graphique. L'utilisateur peut définir en C++ ses propres blocs. Ils sont tous reliés entre eux pour former une "chaîne" de traitement du signal appelée flot. Une fois le flot formé, il peut être exécuté. Il est à noter que la couleur des connecteurs représente le type de données traité (voir le tableau ci-dessous pour la correspondance).

Couleur Bleu Orange Vert Rose
Signification Nombre complexe Nombre flottant Nombre entier Chaîne de caractères

Afin de comprendre son fonctionnement plus en détails, nous allons observer la réalisation d'une radio FM. Le fichier source GRC est disponible ici. L'image ci-dessus est l'affichage de ce fichier sous GRC, celle ci-dessous correspond au flot en cours d'exécution. Le flot commence par une source : le RTL SDR (en 1). Celle-ci est ensuite traitée notamment au travers d'un filtre passe-bande et d'un démodulateur en fréquence (en 2). Le signal est ensuite redirigé vers deux sorties : une sortie audio (en 3) et une sortie graphique sous la forme d'une transformée de Fourier ou FFT (en 4).

Ainsi lorsque l'on lance l'exécution du flot, on peut à la fois observer la FFT du signal démodulé reçu et écouter le son produit par ce signal. Enfin, on peut remarquer que la fenêtre d'exécution propose de choisir la fréquence de réception du RTL SDR. Cette fonctionnalité est réalisée grâce aux blocs qui ne font pas partis du flot (en 5). Ceux-ci permettent de définir des variables qui peuvent être changées durant l'exécution, dans notre cas la fréquence de réception.

Fenêtre d'exécution de Gqrx

Ce logiciel permet ainsi d'automatiser toutes les actions liées au traitement d'un signal reçu, puis de retranscrire le résultat au format audio (directement dans les haut-parleur ou dans un fichier wav) ou de le visualiser graphiquement.

Cas Pratique

Introduction (présentation du cas pratique)

Télécommande TM 433 DS-2

Afin de mettre en œuvre les différents éléments théoriques et logiciels vus dans les parties précédentes, nous avons choisi d'essayer de comprendre le protocole d’émission d'une télécommande "simple" de garage. C'est-à-dire comprendre la correspondance entre le signal émis et sa signification.

Le matériel que nous avons utilisé est une télécommande TM 433 DS-2 de chez FAAC (disponible sur Amazon pour environ 20€). Celle-ci possède deux boutons, un pour l'ouverture et un autre pour la fermeture. Afin de synchroniser la télécommande avec une porte de garage, 12 commutateurs sont disponibles. La documentation permet de les configurer.

Déterminer la fréquence d'émission

Dans un premier temps, il faut déterminer la fréquence d'émission du signal afin de pouvoir l'enregistrer. Pour cela, nous avons utilisé le logiciel Gqrx. En effet, celui-ci dispose d'une interface intuitive permettant de repérer d'un coup d’œil si un paquet est émis sur la plage de fréquence écoutée (d'une largeur de 1.5MHz). Grâce à l'attribution des fréquences faîtes par l'ANFR, nous avons donc à notre disposition les différentes fréquences possibles pour l'émission de ce type de signaux (Industriel/Domotique) : 433MHz, 868MHz et 2400MHz.

Nous avons utilisé le protocole suivant :

POUR chaque bande de fréquence possible:
  On se place au début de la bande  
 
  TANT QUE la fin de la bande n'est pas atteinte
    On attend pour s'assurer que l'on ne reçoit que du bruit
    On appuie sur un bouton de la télécommande
      
    SI un paquet est observé
      On attend pour s'assurer que l'on ne reçoit que du bruit
      On appuie sur un bouton de la télécommande
 
      SI un paquet est observé
        On attend pour s'assurer que l'on ne reçoit que du bruit
        On appuie sur un bouton de la télécommande
 
        SI un paquet est observé
          Une fréquence d'émission du signal est trouvée
        FIN SI
      FIN SI
    FIN SI
    On ajoute 1.5MHz à la fréquence d'écoute 
  FIN TANT QUE
FIN POUR

Une fois cet algorithme fini, on utilise pour la suite de notre étude la fréquence trouvée pour laquelle le signal est le plus fort (en termes d'amplitude).

Nous avons appliqué cet algorithme, et nous avons trouvé que la fréquence d'émission la plus forte était 433.88 MHz.

Déterminer la modulation utilisée

Après avoir détecté la fréquence d'émission, nous avons cherché à déterminer la modulation utilisée par la télécommande.

Gqrx dispose d'une option permettant d'enregistrer les signaux reçus en appliquant les démodulations les plus utilisées (AM, FM). Nous obtenons deux fichiers .wav d'un même signal avec les différentes modulations proposées.

Dans un premier temps, nous éliminons les parties comprenant du bruit qui correspondent aux moments d'enregistrement lorsque la télécommande n'émet pas (avant et après la pression du bouton). Ce type de signal est caractéristique (voir figure ci-dessous) : il ne correspond à rien et est aléatoire.

Bruit

Puisque le signal transmet de l'information (identifiant associé à la porte de garage à ouvrir), nous pensons qu'après démodulation, nous devrions obtenir un signal numérique. On observe que seule la modulation en amplitude (image ci-dessous) donne un signal numérique cohérent. Les autres modulations ne donnent aucunes informations (voir image ci-dessous de la démodulation FM).

Démodulation AM
Démodulation FM

Le signal est donc modulé en amplitude.

Déterminer le codage - Reverse-Engineering du protocole de communication

Boutons de la télécommande TM 433 DS-2

Automatisation du décodage