-
Rapports de puissances
Quand il s’agit de comparer les puissances entre des antennes, on entend souvent parler de décibel, de gain et de pleins d’autres acronymes. Avec ce cours, on va passer en revue ces différentes notions sans trop les approndir noin plus :)
⚪️ Qu’est ce que les décibels ?
Les décibels (dB) sont une unité logarithmique utilisée pour exprimer le rapport entre deux valeurs.
Logarithmique, ça veut en gros dire que la valeur est exprimée en fonction de l’ordre de grandeur. Du coup, au lieu d’utiliser des multiplications, on va utiliser des additions ce qui simplifie grandement la vie. Par exemple, si une puissance double, genre de 10W à 20W, ça correspond à une augmentation de 3dB. Si derrière ça redouble, de 20W à 40W, on ajoute à nouveau 3dB soit un total de 6dB. Donc, au lieu de multiplier par 2 à chaque fois, on additione juste par 3dB. Et pourquoi 3dB, parce que c’est comme ça qu’est définit la formule pour calculer les dB.
P’tit extrait de la page Wikipedia qui l’explique :
En radiofréquence, on utilise les décibels pour exprimer le gain des antennes, la puissance des signaux, et les pertes dans les lignes de transmission.
Ce qu’il faut retenir, c’est que les décibels, ça permet surtout de représenter de gros écarts de puissance de manière plus compacte et compréhensible.
⚪️ Et le gain dans tout ça ?
Le gain, pour une antenne, ça permet de mesurer sa capacité à concentrer l’énergie dans une direction particulière par rapport à l’antenne isotrope. Iso quoi ?
Il s’agit d’une antenne théorique qui n’existe pas réellement, qui rayonne de manière uniforme dans toutes les directions autour d’elle.
Pour mieux comprendre, on va voir des diagrammes de rayonnement et ça sera d’un coup plus clair. C’est juste un moyen de montrer comment une antenne rayonne autour d’elle.
Donc, sur l’image du dessous, en rose, on a notre antenne isotrope théorique qui a son diagramme de rayonnement constitué d’un seul cercle. Son gain est de 0 et nous sert de référence.
Car en effet, on a une deuxième antenne, un dipole qui lui favorise son rayonnement dans 2 directions. Ainsi, on voit que ce dernier rayonne plus loin que l’antenne isotrope. Ce surplus est ce qu’on apelle le gain.
Le gain d’une antenne dipole est donc de 2,15dB. D’ailleurs, lui aussi sert aussi de référence. Ainsi, on parlera de dBi qu’on on prend comme référence l’antenne isotrope. Et on parlera de dBd qu’on on aura pour référence l’antenne dipole.
On peut au passage retenir ces 2 fomules : dBi = dBd + 2.14 et dBd = dBi - 2.14
Le gain est donc très important car il permet d’améliorer la qualité d’un signal, il permet aussi d’augmenter la distance à laquelle un signal peut être transmit. À noter qu’un gain peut aussi être négatif, on parlera d’atténuation du siganl.
De plus, on peut utiliser des amplificateurs afin de l’augmenter ou alors, avoir une antenne qui favorise une direction pour maximiser le gain comme par exemple les antennes Yagi, les fameuses antennes râteaux qu’on a sur nos toits.
-
SSTV avec le HackRF Portapack
La SSTV (Slow Scan Television) est une méthode de transmission d’images avec des ondes radios. Ça existe depuis 1950 et c’est plus du tout utilisé aujourd’hui parce qu’envoyer une image, c’est quand même plus facile avec Internet. Néanmoins, pour les amateurs radios, c’est sympa à expérimenter.
Pour rentrer en détail dans son mode de fonctionnement, il y a ce pdf qui est pas mal.
⚪️ Comment la transmettre ?
Depuis notre HackRF, on se rend dans l’onglet Transmit, puis SSTV. Cette dernière va nous permettre d’envoyer des images stockées sur notre carte SD. (2 images sont déjà présentes avec le firmware).
Sur le HackRF, il y a 6 différents mode de transmission à notre disposition. Sans trop rentrer dans les détails, on va dire que la principale différence se joue sur le temps de transmission :
Scottie 1 (110s), le plus utilisé avec une bonne qualité.
Scottie 2 (71s), avec une transmission plus rapide au détriment d’une qualité légèrement inférieure.
Scottie DX (270s), utilisé pour les longues distances, haute qualité mais transmission très lente.
Martin 1 (114s), bon rapport qualité/temps
Martin 2 (58s), avec une transmission rapide mais pareil, une moins bonne qualité. Il a surtout l’avantage de “mieux” se propager.
SC2-180 (180s), la meilleure qualité 😎.
Si non, qu’importe le mode, ce sera toujours une résolution en 320x526 pixels. Le HackRF ne prendra en charge que des images au format .bmp avec une taille de 320x256 donc.
Ensuite, on peut choisir la fréquence sur laquelle on veut émettre. On va choisir la 144.500MHz qui est utilisée par les radio amateurs pour la SSTV.
Et on peut appuyer sur le bouton Start pour commencer à émettre.
⚪️ Et pour recevoir ?
Afin de recevoir ses signaux, on va utiliser le logiciel MMSTV. C’est lui qui va récupérer en entrée un signal pour pouvoir le décoder en une image.
Par contre, il ne peut pas écouter le signal comme le ferait un logiciel SDR donc on va devoir écouter le signal avec par exemple SDR++, et renvoyer ce signal vers MMSTV. Pour ce faire, on va utiliser un câble audio virtuel en installant VB-Audio. Suffit juste d’installer les drivers et de redémarrer le PC pour s’en servir.
Lançons SDR++ pour déjà voir si on a bien un signal
Ok, on voit bien notre pic sur la fréquence qu’on avait choisit. Ça, c’est niquel, on en profite aussi pour changer l’output de l’audio à gauche en sélectionnant notre câble audio virtuel.
À présent, lançons MMSTV, et changeons d’input. Pour cela, on va dans Option -> setup MMSTV -> Misc et on remplace le In avec notre cable audio virtuel
Ok, à présent tout est prêt. Y a pleins d’autres paramètres à potentiellement explorer sur ce tool mais ça va au delà de mes conaissances et ça ne sera pas nécessaire pour ce qu’on veut faire de toute façon.
Rien n’est à démarrer côté MMSTV, si les entrées et sorties sont configurées sur les deux logiciels et que le HackRF est bien en train d’émettre, l’image apparaîtra petit à petit.
Voilà mon résultat :
Comme vous pouvez le constater, mon image est penchée, j’ignore encore pourquoi mais dans l’idée, voilà comment fonctionne la SSTV :)
-
Présentation du HackRF Portapack
Aujourd’hui, je vais vous présenter un kit HackRF que j’ai acheté sur Aliexpress.
Voulant en apprendre plus sur les attaques radio, je voulais acquérir ce fameux HackRF mais c’est pas donné. On peut trouver sa version orignale ici.
En revanche, il existe des versions custom qui se vendent bien moins chere sur Aliexpress et qui pour un débutant feront parfaitement l’affaire.
⚪️ C’est quoi le HackRF ?
Le HackRF ou HackRF One, c’est pareil, a été inventé et fabriqué par la société Great Scott Gadgets.
C’est à la fois un émetteur et un récepteur SDR qui possède une bande de fréquence super large de 1MHz à 6GHz (6000MHz).
Donc on peut écouter et émettre sur tout pleins de fréquences, intercepter et rejouer de signaux, c’est plutôt pas mal. Il est half-duplex, ça veut dire qu’il ne peut pas recevoir et transmettre en même temps.
Mais ⚠️ATTENTION⚠️, pour ce qui est d’émettre, c’est illégal sur la plupart des fréquences (En France comme ailleurs).
Maintenant, à des fins éducatives et de manière responsable, il n’y a (pour moi) pas de soucis à émettre sur des fréquences non autorisées. Par responsable, j’entends par exemple de ne pas utiliser la fonction Jamming du HackRF qui permet donc de brouiller les signaux sur une fréquence choisie. Même si ça marche que sur de la courte distance, on sait jamais ce qui a autour. Bref, on verra tout ça plus tard :)
⚪️ Et le Portapack alors ?
Ce qu’on appelle le HackRF Portapack, c’est un boitier avec un écran LCD, des touches pour se dépalcer dans un menu, et surtout une batterie. Ainsi, on peut se servir de son HackRF sans avoir besoin de le relier à un ordinateur ce qui le rend complètement autonome. Pour ce qui est du kit que je vous présente, le firmware utilisé pour faire tourner tous les tools sur le HackRF Portapack se nomme Mayhem (qui est un fork d’un ancien plus maintennu nommé Havoc).
⚪️ Présentation du kit
J’ai pris le Bundle 2 du lien que j’ai donné en intro. Ce dernier est composé d’un câble d’alimentation Micro Usb qui fait 120cm.
On retrouve aussi 3 antennes :
Une télescopique calibrée pour des fréquences de 40MHz à 6GHZ.
Une Wi-Fi pour le 2.4GHz et 5GHz.
Une antenne à fouet (whip antenna) pour des fréquences de 700MHz à 2700MHZ. Ce type d’antenne a une base magnétique qui permet de la fixer sur des surfaces métalliques (comme des voitures). La partie en spirale s’appelle une bobine de chargement (coil).
Et enfin, notre HackRF Portapack | Un clic sur le gros bouton pour l’allumer, 2 clics pour éteindre :)
On ne va pas s’attarder sur le menu puisque que je ferais un article dédié pour tout ça.
L’avant du boitier se présente comme ça :
On y retrouve :
Un endroit où y mettre une carte MicroSD (Il n’y en n’a pas de fourni dans le kit mais c’est important d’en mettre une pour accéder à + de fonctionnalités).
Un bouton reset qui permet comme son nom l’indique de reset.
Un bouton DFU (Device Firmware Upgrade) qui permet de modifier des trucs en cas de soucis.
Des LEDs 3v3, 1V8, RF qui allumés signifient juste que le HackRF est alimenté.
Une LED USB qui allumé, signifie que le HackRF est bien branché en USB à un PC.
Une LED RX qui allumé veut dire que le HackRF est en train de recevoir des signaux.
Une LED TX qui allumé veut dire que le HackRF est en train de transmettre des signaux.
Enfin, ANT (Antenna), un connecteur de type SMA femelle pour y connecter notre antenne.
Pour ce qui est de l’arrière du boitier :
On a :
Le port USB pour connecter le HackRF à un PC et le recharger aussi.
Un port HEADSET pour y brancher un casque audio. (Pas essayé si ça marche avec un micro)
Deux ports SMA femelle qui en tant que débutant ne risque pas de nous servir. Ils servent à la synchronisation d’horloge :
Un CLKIN (Clock Input) pour recevoir et se synchroniser avec une horloge externe
Un CLKOUT (Clock Output) pour fournir son propre signal d’horloge à d’autres appareils
Et voilà, ça sera tout pour cette présentation, la suite sur les différentes fonctionnalités à venir :)
-
Comment ça marche les antennes ?
L’antenne est l’un des élements les plus importants en radiofréquence. On en retrouve sous pleins de formes, chacune optimisée pour une certaine fréquence. La science des antennes peut très vite devenir complexe, c’est pourquoi nous verrons dans ce cours que les bases.
⚪️ Fréquence
Quand on branche une prise de courant dans une maison, le courant qui y circule est dit alternatif, cela signifie qu’il change de sens à intervalle régulier (Le courant va du + vers le - et vice-versa). Le changement ne se fait pas en mode brutal, mais progressivement, formant une jolie sinusoide.
En France par exemple, cet intervalle oscille à 50Hz, ça signifie qu’il change de sens 100 fois par seconde. C’est ce qu’on appelle la fréquence avec comme unité le Hertz.
Une radio, c’est aussi un oscillateur, on parle de VFO (Variable Frequency Oscillator), terme barbare pour dire qu’on peut changer la fréquence.
Par exemple, en voiture, on peut tourner la roulette pour mettre une fréquence de 102.4MHz (NRJ). Cela signifie qu’on a 102,4 millions d’oscillations par seconde !
⚪️ Longueur
L’antenne la plus basique qu’on puisse faire est une antenne dipôle. C’est juste deux pièces de métal de même longeur reliées par un câble coaxial.
La longueur ne se choisit évidemment pas au hasard. Les transmissions radio se propagent avec une longueur physique qu’on appelle longueur d’onde. Elle se calcule avec cette formule : λ = c / f
avec λ la longueur d’onde en m, c la célérité de la lumière en m/s et f la période en Hz.
Pour faire des calculs plus simples, dans notre cas, la vitesse à laquelle se déplace l’onde est la vitesse de la lumière dans l’air donc 300 000 000m/s et nos fréquences sont en MHz donc on pourrait transformer notre formule en : λ=300/f
avec f en MHz et λ toujours en m.
Donc, pour en revenir à notre longueur d’antenne, cette dernière est directement liée à la longueur d’onde. En fait, dans le cas d’un dipôle simple, la longueur de l’antenne est égale à la moitié de la longueur d’onde. Et donc, chaque pôle fait un quart de la longueur d’onde. On parle d’antenne demi-onde.
Bref, tout ça pour dire qu’on dira qu’une antenne est résonnante à une certaine fréquence si elle est adaptée à cette dernière. Et d’ailleurs, ça peut se mesurer avec un appareil spécifique. Il nous donne le SWR (Standing Wave Ratio), le rapport d’onde stationnaire. Plus cette valeur sera proche de 1 et plus l’antenne sera résonnante à une certaine fréquence.
⚪️ Impédance
Dernière notion importante à prendre en compte dans une antenne, il s’agit de l’impédance.
En éléctricité, on utilise souvent des résistances, elles ont des valeurs fixes en Ohm noté Ω. Cela permet de s’opposer à un courant éléctrique.
Ok, mais en radio, on va souvent utiliser des condensateurs et des bobines et ces derniers ont une résistance qui sera variable en fonction de le fréquence du courant.
On parle de conductance pour un condensateur (unité en Farad)
On parle d’inductance pour une bobine (unité en Henry).
Plus la fréquence dans un circuit sera élévée, plus un condensateur aura une conductance faible et donc s’opposera moins au courant. C’est d’ailleurs comme ça qu’on peut faire un filtre passe-haut qui laissera passer que les hautes fréquences.
À l’inverse, pour une bobine, plus la fréquence est basse, plus son inductance est faible. Et cette fois, on peut faire des filtres passe-bas.
À noter qu’en mettant ces deux composants en parallèle avec leurs caractéristiques modifiables, on va pouvoir choisir des fréquences bien précises, c’est comme ça que fonctionne les VFO.
Bref, voilà pourquoi on parle d’impédance, c’est ni plus ni moins que la résistance dans un courant alternatif.
En radio, une valeur est devenue une norme internationale car elle est un bon compromis entre facteurs techniques et pratiques, c’est 50Ω. Ça permet de minimiser au mieux les pertes et par conséquent, les constructeurs se sont mis d’accord pour faire du matériel avec cette impédance comme les câbles coaxiaux par exemple.
Donc pour la réalisation d’une antenne, il faudra veiller à avoir une valeur au plus proche de ce 50Ω.
-
Amplitude et Modulation
Les signaux bruts qu’on veut émettre sont souvent faibles et peuvent grandement s’atténuer sur de longues distances. En modulant notre signal, on va pouvoir porter l’information sur une onde beaucoup plus puissante.
Et, bien que les sources d’émission se mettent plus ou moins d’accord pour utiliser des fréquences différentes, la modulation permet d’éviter les interférences en évitant que les signaux se mélangent.
De plus, avec toutes les perturbations et tout qu’on retrouve dans l’air (et dans l’eau), la modulation aide à rendre les signaux plus résistants à ces derniers.
⚪️ Et comment on module alors ?
Imaginons qu’on ait un signal à transporter, du son par exemple. On l’apellera signal modulant. Ce type de signal a une fréquence basse et est très faible.
Pour le transporter et qu’il serve à quelque chose dans sa vie, il nous faut un autre signal qu’on apellera onde porteuse qui sera une onde avec une fréquence élevée et donc puissante. C’est elle qui transportera notre signal faible.
Avec nos deux signaux réunis, on va venir les superposer (c’est des maths derrière), et on obtient notre signal modulé.
⚪️ C’est quoi l’amplitude
L’amplitude d’un signal est en gros sa hauteur maximal par rapport à sa position au repos. C’est en quelque sorte la puissance du signal radio.
Cette valeur est importante pour déterminer la qualité du signal reçue. plus l’amplitude sera élevée, meilleure sera la qualité. Mais trop élevée par contre, ça pourrait abimer le récepteur.
En modulation d’amplitude (AM), on va venir faire varier l’amplitude de l’onde porteuse en fonction de l’amplitude du signal modulant.
Pour mieux comprendre, on va utiliser GNURadio.
On place 2 blocs Signal Source, un pour notre Signal Modulant qui a une fréquence de 20Hz puis un second bloc qui sera notre onde porteuse avec une fréquence de 1000Hz donc bien plus élevée que le signal modulant.
Le bloc Throttle, on s’en fiche pour ce cours mais sachez qu’il est là pour éviter de faire crash le PC en réduisant la cadence à laquelle le CPU voudrait éxecuter le programme. Un seul placé quelque part suffit, c’est pour ça que y en a un juste un. Bref, revenons à ce qui nous intéresse.
Le bloc QT GUI TIME SINK va nous permettre de visualiser nos deux signaux dans le temps.
Voilà ce qui nous affiche lorsque l’on lance notre programme :
On voit nos 2 jolies sinusoides.
⚪️ Modulation d’Amplitude
À present, superposant nos deux signaux en les multipliant. On va pas rentrer dans les maths qui se cachent derrière (peut-être un jour).
Donc ici, on a juste rajouté le bloc Multiply et on renvoit le signal modulé dans notre Time Sink. J’ai aussi laissé les 2 autres signaux reliés au Time Sink pour qu’on puisse mieux comprendre.
Lançons le programme et laissons aparraître uniquement le signal modulé pour voir à quoi il ressemble.
On peut voir cette forme caractéristique de l’AM.
Et maintenant, affichons nos 3 signaux (modulant, porteuse et modulé)
On comprends déjà mieux, lorsque que l’amplitude de notre signal modulant diminue, ça diminue en conséquence l’amplitude de la porteuse.
Il existe bien d’autres types de modulation (FM, PM, …) qu’on choisit en fonction de ce que l’on veut transmettre, de notre bande passante, du bruit environnant, etc, … mais on garde ça pour une prochaine fois :)
-
C'est quoi la SDR ?
A la base, la réception des ondes radio utilise des composants comme des résistances, des condensateurs, des bobines… On retrouve un ensemble de pièces pour le traitement du signal comme les filtres, bref c’est un système qui existe depuis très longtemps 📻.
L’inconvénient, c’est que chaque composant est une entité physique, ça coûte cher, ça peut prendre de la place, et modifier les caractéristiques d’un d’entre eux demandent des compétences poussées en éléctronique.
⚪️ Récepteur numérique
L’idée va être de numériser le signal le plus tôt possible pour l’envoyer à un CPU où l’on pourra commencer notre traitement du signal. L’avantage est que l’on pourra utiliser des algorithmes beaucoup plus complexes, notamment à l’aide des nombres complexes qui sont très difficiles à mettre en place avec des résistances ou autres.
Et oui, ces fameux nombres qu’on pensait inutiles au lycée ont une réelle utilité pour les signaux.
La partie réelle du nombre sert à représenter l’amplitude (sa hauteur en quelque sorte) du signal.
La partie imaginaire, pour réprésenter sa phase (sa position dans le temps).
Ainsi, on va pouvoir simplifier des opérations mathématiques.
Pas convaincu ? Prenons par exemple la multiplication de deux signaux (inutile de comprendre ce que ça signifie).
Sans nombres complexes, il faudrait utiliser des calculs trigonométriques assez tordu.
Alors qu’avec les nombres complexes, il suffirait de multiplier les amplitudes et ajouter leur phase, ce qui se fait simplement avec des opérations algébriques sur les nombres complexes (si si :D).
De plus, le numérique se met simplement à jour, ce qui est pratique, notamment pour les logiciels ou autres algorithmes.
Un autre gros avantage du numérique est de pouvoir utiliser un analyseur de spectre ce qui est très pratique pour faire du debug. C’est comme utiliser WireShark 🦈.
⚪️ Fréquence d’échantillonage
Les signaux radios sont analogiques et comportent une infinité de valeurs, et ça nos CPU n’aiment pas les valeurs infinies, donc on vient capturer plusieurs points sur le signal à intervalle régulier afin de le transformer en un nombre fini. En fait, c’est plus précis de dire qu’on vient mesurer l’amplitude du signal à intervalle régulier puis qu’on vient stocker tout ça sous forme de nombres. C’est ça qu’on appelle la fréquence d’échantillonage !
Elle est rendue possible grâce à un convertisseur analogique-numérique (ADC).
Plus on prendra d’échantillons, plus on aura un signal numérique fidèle à la réalité mais plus il sera lourd et long à traiter.
Il existe d’ailleurs un théorème, celui de Nyquist–Shannon qui dit que pour reconstruire à l’identique un signal analogique, il doit être échantillonné à une fréquence au moins deux fois supérieure à sa fréquence maximale. En prenant une valeur 2 fois supérieure, on s’assure de reconstruire un signal analogique très précis.
⚪️ Récepteurs SDR
Numériser le signal et le traiter par logiciel a un nom, c’est la SDR (Software Defined Radio). Elle est rendue possible par des récépteurs comme par exemple celui-ci :
Ces récepteurs bon marché (lien vers un super kit pour débuter), se branchent en USB à un ordinateur équipé d’un logiciel SDR (il en existe plusieurs). On retrouve un port MCX (Micro Coaxial eXtended), c’est un connecteur coaxial plus petit que l’on relie à notre antenne. Ce dernier ne permet que la réception des signaux mais pas la transmission. Pour bénéficier des deux, il faudrait par exemple utiliser un HackRF.
Touch background to close