Explorer les champs électromagnétiques à l'aide d'un récepteur SDR et d'OpenCV



Le récepteur SDR, même le moins cher, est un instrument très sensible. Si vous y ajoutez une antenne spéciale et OpenCV, vous pouvez non seulement écouter habituellement l'éther, mais aussi regarder la distribution des champs électromagnétiques dans l'espace. Une telle application intéressante sera discutée dans cet article. Attention! Sous la coupe beaucoup d'images et d'animations!

Souhaitez-vous voir les champs électromagnétiques? Oui, rien de plus simple, les voici:



je suis d'accord, pas très clairement. Même si nous pouvons voir la lumière (qui est également décrite par ces équations), le spectre radio n'est pas si facilement accessible pour nous. Pour cette raison, l'humanité a trouvé de nombreuses façons différentes d'espionner ce mystère de la nature, en utilisant à la fois la modélisation informatique et des installations spécialisées.

Ces derniers se trouvent à l'intérieur des murs des instituts scientifiques, des départements de recherche des grandes entreprises et, bien sûr, des militaires. Il s'agit généralement d'une pièce séparée, protégée des rayonnements externes par une cage de Faraday, et de l'intérieur recouverte de matériaux absorbant les radars. Après tout, un voisin amateur ou un micro-ondes non mis à la terre ne devrait pas nous déranger lors de ces expériences. Cette pièce est appelée chambre anéchoïque. Le nom, bien sûr, est plus cohérent avec un studio d'enregistrement, mais dans ce cas, «écho» fait référence à toutes les réflexions internes et re-réflexions des ondes électromagnétiques qui interfèrent avec la recherche et sont impitoyablement éteintes. À l'intérieur de la caméra, du point de vue de l'antenne, vous êtes dans un vide absolu, où tout le rayonnement va dans des étendues infinies simulées par un radio absorbant et rien ne revient.

, -, , - — , , . «» , ---, .


, Panasonic. « » — . — .

Lors de tests de compatibilité électromagnétique, de développement d'antennes, ainsi que de recherches scientifiques liées au rayonnement électromagnétique, on ne peut se passer de telles caméras. Cependant, la caméra elle-même n'est qu'une partie de l'histoire. Parmi les autres éléments clés nécessaires pour enregistrer le comportement des ondes électromagnétiques, des antennes spéciales, des instruments de mesure coûteux et, en fait, un scanner de terrain seront également nécessaires. Le scanner n'est rien de plus que le système de coordonnées notoire avec CNC. Vous pouvez donner au scanner une antenne appropriée ou une sonde de mesure dans votre «main», puis aller boire un café jusqu'à ce qu'il contourne soigneusement les points fixés par le programme, en construisant une belle image de la répartition des champs autour de votre nouveau réservoir ou, par exemple, le diagramme de rayonnement du radar.

Mais revenons au point. Il se trouve que loin des sources, dans un espace vide, les champs électromagnétiques ont l'air assez ennuyeux. Quelque chose comme ça: alors



que les choses les plus magiques et intéressantes se cachent dans les régions où les vagues se forment (près des sources), ou interagissent avec des objets. Ces zones ne dépassent généralement pas les dimensions de la longueur d'onde d'émission radio, qui est impliquée dans l'expérience, et sont appelées zone de champ proche. Les enquêtes sur les champs en champ proche sont sans aucun doute l'une des plus curieuses, et bien sûr, elles ne pouvaient pas rester longtemps derrière les murs protégés des grandes organisations.

Les amateurs ont rapidement compris que pour cartographier des champs sur le même principe que dans les caméras professionnelles, vous pouvez créer votre propre scanner de coordonnées, ou, plus simple encore, adapter les imprimantes 3D omniprésentes à cette fin. Pourquoi, vraiment, ils ont même écrit un article scientifique à ce sujet.


Imprimantes 3D, où au lieu de l'extrudeuse (ou avec elle) sont installées des sondes de mesure, des antennes. Nous montrons ci-dessus comment le coefficient de couplage de deux antennes à boucle: celle de mesure et celle située sur la table de l'imprimante (le paramètre dit S21) change dans l'espace. Voici un exemple de construction de la distribution d'un champ magnétique haute fréquence sur un châle Arduino.

Bien que les scanners maison ne soient pas dans l'environnement électromagnétiquement stérile des chambres anéchoïques, ils peuvent néanmoins produire des résultats intéressants. Et si dans le premier exemple de l'image ci-dessus un analyseur professionnel coûteux est utilisé pour collecter des données (un article scientifique, après tout), alors dans le deuxième cas, ils coûtent un récepteur SDR peu coûteux, ce qui rend ces expériences encore plus abordables. Cependant, nous ne nous attarderons pas sur les imprimantes 3D, elles sont déjà fatiguées de tout en ordre.

L'auteur du deuxième projet de la photo, Charles Grassin , a décidé de simplifier encore plus le processus et de se débarrasser complètement de tout système de coordonnées, comme un élément extra encombrant, offrant de suivre le mouvement de l'antenne de mesure à l'aide d'OpenCV. Le système qu'il a conçu ressemble à ceci:


Schéma d'installation pour cartographier les champs électromagnétiques à l'aide d'un récepteur SDR et d'OpenCV.

Une caméra est installée au-dessus de l'objet dont nous voulons voir le champ. Le script définit l'apparence de notre antenne, puis nous la dessinons, comme un pinceau, dans les zones où nous voulons voir le champ. Le signal de l'antenne est envoyé au récepteur SDR et le script python compare la position de l'antenne dans la trame avec les valeurs efficaces du niveau de signal du récepteur. Après quoi on obtient une belle image avec la répartition des champs. Bien sûr, cette approche jusqu'à présent nous limite à un seul avion, mais cela ne le rend pas moins intéressant. Construisons ce système et vérifions comment il fonctionne, car beaucoup de détails ne sont pas nécessaires pour cela.

Nous décidons d'abord ce que nous mesurerons exactement. Malgré le fait que les champs électromagnétiques sont un phénomène unique, nous pouvons examiner séparément ses composants électriques et magnétiques. Chaque type nécessitera sa propre antenne de mesure spéciale. Comme l'auteur de l'original, j'ai réalisé une antenne sonde pour un champ magnétique selon le schéma ci-dessous:


Un schéma de fabrication d'une sonde magnétique et des exemples que j'ai réalisés. Si vous avez pris au sérieux la cartographie des champs, faites beaucoup d'antennes de différentes tailles - très utiles. Même s'il ne sort pas avec des marges, il y aura un bon ensemble pour souffler des bulles de savon.

Cette conception est bien connue des jambons sous le nom d'une antenne cadre, cependant, contrairement aux frères aînés, cette antenne n'a pas à être adaptée au récepteur, ce qui simplifie certainement notre vie. Comme base pour une sonde, il est préférable d'utiliser un câble coaxial dur ou semi-dur, mais en principe, vous pouvez presque tout faire. L'impédance du câble ne joue pas non plus de rôle. Ce qui est important, c'est la taille de l'antenne, comme nous le verrons plus loin.

Pour démontrer comment la sonde «ressent» les différentes composantes du champ électromagnétique, je l'ai modélisée en CST:


, , . — , ( ). . .

Même en tant que deux manifestations d'une même entité, les champs électriques et magnétiques interagissent avec l'antenne de différentes manières. L'écart dans la tresse que nous avons fait d'en haut n'est rien d'autre qu'un condenseur à air. Comme il sied à un condensateur, il concentre le champ électrique dans son espace. Le champ magnétique, du fait de la symétrie de la structure, a un maximum à l'intérieur de la boucle. Ainsi, si l'on veut mesurer ce dernier, il suffit de placer la boucle parallèlement à l'objet mesuré. Et c'est exactement ce dont vous avez besoin pour le capturer dans le cadre en utilisant OpenCV! Donc, une fois l'antenne prête, ajoutez la touche finale. Nous améliorerons sa reconnaissance visuelle en utilisant du thermorétractable noir ou du ruban électrique. Voici mon travail:


Pour la plus grande antenne (5 cm de diamètre), il n'y a pas eu de rétrécissement de la taille requise. Cependant, au final je ne l'ai pas utilisé. Le noir donnera un grand contraste au fond blanc afin qu'OpenCV facilite la visibilité de notre antenne.

Ensuite, vous devez obtenir une webcam et l'installer sur une sorte de trépied. Si tout à coup vous n'aviez pas de webcam, alors un smartphone sur Android avec l'application DroidCam convient également. L'antenne est connectée au récepteur SDR, et lui, à son tour, à l'ordinateur. Le matériel est prêt pour cela.

Téléchargez le script camera_emi_mapper.py . Il faudra que les bibliothèques opencv et pyrtlsdr fonctionnent.. Des instructions d'installation détaillées sont disponibles sur le lien désigné. Veuillez noter que si vous utilisez Windows, les bibliothèques pyrtlsdr doivent avoir la même profondeur de bits que la version python sur votre système. Le script est lancé par la commande:

python3 camera_emi_mapper.py -c 1 -f 100

le drapeau -c vous permet de sélectionner une caméra si vous en avez plusieurs, et le drapeau -f définit la fréquence à laquelle la taille du signal sera surveillée (en mégahertz). Si tout fonctionne, nous verrons l'image de la webcam. Pour la première expérience de test, j'ai placé mon appareil OSA103 dans le cadre , en l'allumant en mode générateur à 100 MHz :



appuyez sur R pour que le script se souvienne de l'image d'arrière-plan, puis nous bouclons dans la zone de numérisation. Ensuite, en utilisant la touche S , vous pouvez sélectionner notre antenne comme ceci:



Après avoir confirmé votre choix avec la touche Entrée , la capture des données de la caméra et du récepteur SDR commencera immédiatement. Eh bien, et comme d'habitude, la première fois que tout va mal:



Pour comprendre ce que voit OpenCV et pourquoi la capture ne fonctionne pas comme il se doit, j'ai commenté les lignes suivantes du script:

# debug only
#cv2.imshow("Thresh", thresh)
#cv2.imshow("Frame Delta", frameDelta)

Ils ouvrent deux fenêtres supplémentaires où vous pouvez voir à quel point l'antenne contraste avec l'image d'arrière-plan. Ce contraste est ajusté par la valeur du seuil :

    	
thresh = cv2.threshold(frameDelta, 50, 255, cv2.THRESH_BINARY)[1]

Dans l'original, il était de 15, j'ai augmenté cette valeur à 50 et l'antenne a commencé à être capturée en toute confiance. Ce nombre doit être sélectionné en fonction de l'éclairage dans le cadre. Dans le même temps, j'ai expérimenté la luminosité de l'antenne, car le noir se confondait parfois avec un grand FPGA carré. Après ces corrections, tout a commencé à fonctionner comme une horloge:


lorsque l'analyse est terminée, vous devez appuyer sur Q et le script va construire la distribution des champs. Dans ce cas, le résultat est le suivant:


Honnêtement - on comprend peu, tout s'est avéré flou et avec une sorte de divorce. Non pas que j'attendais un super résultat, mais j'aimerais voir quelque chose de plus spécifique, par exemple, quels circuits de l'appareil sont impliqués dans la génération. Pourtant, la cartographie des champs électromagnétiques devrait donner des réponses aux questions et non en créer de nouvelles. J'ai regardé à nouveau le code et j'ai vu que l'image du champ était très floue pendant la construction. J'ai réduit cet effet en modifiant la valeur sigma de 7 à 2:


blurred = gaussian_with_nan(powermap, sigma=2)

De plus, j'ai remplacé l'objet de mesure. Pour tester la méthode, vous avez besoin d'une chose plus simple en tant que sujet de test, et un appareil avec une structure interne complexe ne convient pas pour cela. De plus, la distribution du champ magnétique radiofréquence du nouvel objet doit être connue à l'avance pour qu'il soit clair si le script affiche les champs correctement ou non. La même boucle magnétique correspond parfaitement à ce critère. Comme nous l'avons vu précédemment, dans une boucle, le champ magnétique est concentré à l'intérieur de sa boucle. Donc, lors de la numérisation, nous devrions le voir. J'ai soudé un simple circuit résonant carré en forme de feuille de cuivre et de condensateur:


, . , . , .

Vous avez peut-être une question - comment pouvons-nous voir le champ de cette façon, s'il n'y a même pas de source ici! Et le fait est que nous sommes entourés de bruit blanc (le même «bruit» que nous entendons lorsque nous ne sommes pas accordés sur une station préférée), et dans son spectre, il y a déjà presque toutes les fréquences souhaitées. Si nous rapprochons l'antenne de mesure du circuit résonnant, elle deviendra plus sensible au bruit à la fréquence de résonance de ce circuit lui-même. Le récepteur SDR est si sensible qu'il peut même être utilisé pour mesurer des champs dans des objets passifs! Essayons ce qui se passe:



J'ai essayé d'agir très soigneusement, mais toujours dans le processus, j'ai légèrement déplacé la feuille sur laquelle le contour a été collé. Cependant, le résultat n'était pas mauvais. Vous pouvez conduire notre sonde beaucoup plus rapidement. Si je comprends bien, la vitesse de traitement des données ne dépend que des performances de l'ordinateur et du tremblement de vos mains. Dans tous les cas, la carte vidéo de mon ordinateur portable s'est sensiblement tendue pendant le processus de test. Oui, et j'ai également changé la palette de couleurs en un plasma plus agréable pour les yeux:



Il semble que la pratique coïncide néanmoins avec la théorie et la méthode de travail. Nous voyons le champ magnétique là où il était attendu - à l'intérieur du circuit. Dans le même temps, la résolution de notre image est directement dictée par la taille de l'antenne de mesure, c'est pourquoi les champs sont un peu à leur place où ils se trouvent physiquement. Et c'est la raison pour laquelle la taille de l'antenne est si importante, car l'amplitude de ce décalage en dépendra. On voit également clairement qu'un changement dans la direction du mouvement de l'antenne déforme l'image. En effet, le processus d'un tel "dessin" me rappelle quelque chose de suspect:



Par analogie avec l'exemple ci-dessus, le procédé donne une bonne résolution dans le sens de déplacement de l'antenne. Mais à chaque changement dans cette direction, une erreur se glisse dans les données sous la forme d'un déplacement de l'image de champ. J'ai encerclé le même contour, mais cette fois en diagonale, ce qui démontre encore une fois cet inconvénient. Soit dit en passant, les deux scans ont été effectués à une fréquence de 87 MHz.



Malheureusement, je suis un programmeur moyen, car je n'ai pas encore compris comment modifier le code pour corriger cette erreur. Au lieu de cela, je peux offrir une brève méthodologie de création pour mesurer les champs. Nous l'appelons une technique à un seul coup:



Tout est simple - s'il n'y a qu'une seule direction, il n'y a pas d'erreur. Bien sûr, si cela limite encore plus le champ des applications possibles, mais nous serons sûrs que les champs observés correspondent plus ou moins à la réalité. Maintenant, sachant comment mesurer correctement, vous pouvez essayer de numériser autre chose. Par exemple, saviez-vous qu'un circuit résonnant, comme celui déjà montré, peut être réalisé sans aucun conducteur? Comme je l'ai déjà expliqué, un courant haute fréquence traverse un condensateur, ce qui signifie que vous pouvez assembler un circuit résonnant en l'utilisant uniquement et rien de plus. Augmentez mentalement le condensateur plusieurs fois et obtenez un morceau de céramique qui localise également le champ magnétique à proximité (merci aux collègues de l'ITMO pour l'échantillon fourni). Fréquence de balayage 254 MHz.



Il convient de mentionner un autre inconvénient de la méthode - la distance de l'objet à l'antenne devrait idéalement être la même, sinon notre image des champs ne sera plus dans l'avion, ce qui signifie qu'elle sera déformée. Théoriquement, je pense que cela peut également être corrigé en utilisant OpenCV, en suivant le changement de la taille de l'antenne dans le cadre.

Pour la démonstration finale, j'ai rassemblé une chose tellement plus compliquée:



il s'agit d'un filtre passe-bas à plusieurs étages, il peut également être appelé une ligne de transmission, ou même un métamatériau (avec un très grand tronçon). Le schéma de circuit ressemble à ceci:



comme il y a beaucoup d'éléments résonnants dans cette structure, il a également beaucoup de fréquences de résonance (mesurées par l'appareil à partir de la première expérience). Chaque minimum du graphique est une résonance dans le spectre:



Ces résonances sont appelées modes propres. Et chacun d'eux a sa propre image unique des champs. Mais néanmoins, ils sont tous reliés par une certaine régularité, à savoir le nombre d'ondes qui s'insèrent dans la structure, qui est clairement visible lors du balayage:



Après avoir compté le nombre de pics de champ, vous pouvez nommer avec précision le numéro de mode. C'est aussi une excellente illustration de la façon dont les champs électromagnétiques réduisent leur vitesse à l'intérieur des matériaux. Après tout, la vitesse des vagues est moindre - plus de pics de champ tiennent dans l'image. À mon avis, une grande aide visuelle.

Comme vous pouvez le voir, l'idée de croiser SDR et OpenCV s'est avérée assez bonne. Et surtout, cette union apporte une touche créative au processus de mesure ennuyeux et monotone. Je pense qu'à l'avenir, il pourra faire de l'étude des champs électromagnétiques une expérience plus excitante et devenir une bonne aide pour les laboratoires à domicile.

All Articles