Erkundung elektromagnetischer Felder mit einem SDR-Empfänger und OpenCV



Der SDR-Empfänger, selbst der billigste, ist ein hochempfindliches Instrument. Wenn Sie eine spezielle Antenne und OpenCV hinzufügen, können Sie nicht nur gewöhnlich auf den Äther hören, sondern auch die Verteilung elektromagnetischer Felder im Raum betrachten. Eine solch interessante Anwendung wird in diesem Artikel diskutiert. Beachtung! Unter dem Schnitt viele Bilder und Animationen!

Möchten Sie elektromagnetische Felder sehen? Ja, es gibt nichts Einfacheres, hier sind sie:



Ich stimme zu, nicht sehr klar. Selbst wenn wir Licht sehen können (was auch durch diese Gleichungen beschrieben wird), ist das Funkspektrum für uns nicht so leicht zugänglich. Aus diesem Grund hat die Menschheit viele verschiedene Möglichkeiten gefunden, um dieses Geheimnis der Natur auszuspionieren, und zwar sowohl mithilfe von Computermodellen als auch mithilfe spezieller Installationen.

Letzteres befindet sich innerhalb der Mauern wissenschaftlicher Institute, Forschungsabteilungen großer Unternehmen und natürlich des Militärs. Normalerweise ist dies ein separater Raum, der durch einen Faradayschen Käfig vor äußerer Strahlung geschützt und von innen mit radarabsorbierenden Materialien bedeckt ist. Schließlich sollte uns ein Nachbar-Amateur oder eine ungeerdete Mikrowelle bei solchen Experimenten nicht stören. Dieser Raum wird schalltote Kammer genannt. Der Name stimmt natürlich besser mit einem Aufnahmestudio überein, aber in diesem Fall bezieht sich „Echo“ auf interne Reflexionen und Rückreflexionen elektromagnetischer Wellen, die die Forschung stören und gnadenlos gelöscht werden. Innerhalb der Kamera befinden Sie sich aus Sicht der Antenne in einer absoluten Leere, in der die gesamte Strahlung in endlose Weiten gelangt, die von einem Funkabsorber simuliert werden, und nichts zurückkommt.

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


, Panasonic. « » — . — .

Bei der Durchführung von Tests auf elektromagnetische Verträglichkeit, der Entwicklung von Antennen sowie der wissenschaftlichen Forschung im Zusammenhang mit elektromagnetischer Strahlung kann man auf solche Kameras nicht verzichten. Die Kamera selbst ist jedoch nur ein Teil der Geschichte. Neben anderen Schlüsselelementen, die zur Aufzeichnung des Verhaltens elektromagnetischer Wellen erforderlich sind, werden auch spezielle Antennen, teure Messinstrumente und in der Tat ein Feldscanner benötigt. Der Scanner ist nichts anderes als das berüchtigte Koordinatensystem mit CNC. Sie können dem Scanner eine geeignete Antenne oder eine Messsonde in der „Hand“ geben und dann Kaffee trinken, während er vorsichtig um die vom Programm festgelegten Punkte herumgeht, um ein schönes Bild der Feldverteilung um Ihren neuen Tank oder beispielsweise ein Radarstrahlungsmuster zu erstellen.

Aber zurück zum Punkt. Es ist einfach so passiert, dass elektromagnetische Felder weit entfernt von Quellen im leeren Raum ziemlich langweilig aussehen. So etwas in der Art:



Während die magischsten und interessantesten Dinge in Regionen lauern, in denen sich Wellen bilden (in der Nähe von Quellen) oder mit Objekten interagieren. Diese Bereiche überschreiten normalerweise nicht die Abmessungen der Wellenlänge der Funkemission, die an dem Experiment beteiligt ist, und werden als Nahfeldzone bezeichnet. Untersuchungen der Nahfeldfelder sind zweifellos eine der merkwürdigsten, und natürlich konnten sie nicht lange nur hinter den abgeschirmten Mauern großer Organisationen bleiben.

Enthusiasten wurde schnell klar, dass Sie für die Abbildung von Feldern nach dem gleichen Prinzip wie bei professionellen Kameras Ihren eigenen Koordinatenscanner erstellen oder, noch einfacher, die allgegenwärtigen 3D-Drucker für diesen Zweck anpassen können. Warum haben sie wirklich sogar einen wissenschaftlichen Artikel darüber geschrieben?


3D-Drucker, bei denen anstelle des Extruders (oder mit ihm) Messsonden, Antennen installiert sind. Oben ist gezeigt, wie sich der Kopplungskoeffizient von zwei Rahmenantennen: der Messantenne und der auf dem Druckertisch liegenden (der sogenannte S21-Parameter) im Raum ändert. Unten sehen Sie ein Beispiel für die Konstruktion der Verteilung eines hochfrequenten Magnetfelds über einen Arduino-Schal.

Selbstgemachte Scanner befinden sich zwar nicht in der elektromagnetisch sterilen Umgebung von schalltoten Kammern, können jedoch interessante Ergebnisse liefern. Und wenn im ersten Beispiel aus dem obigen Bild ein teurer professioneller Analysator zum Sammeln von Daten verwendet wird (schließlich ein wissenschaftlicher Artikel), dann kosten sie im zweiten Fall einen kostengünstigen SDR-Empfänger, was solche Experimente noch erschwinglicher macht. Wir werden uns jedoch nicht mit 3D-Druckern befassen, sie haben bereits alles in Ordnung.

Der Autor des zweiten Projekts aus dem Bild, Charles Grassin , beschloss, den Prozess noch weiter zu vereinfachen und jegliches Koordinatensystem wie ein besonders sperriges Element vollständig zu entfernen, um die Bewegung der Messantenne mit OpenCV zu verfolgen. Das System, das er konzipiert hat, sieht folgendermaßen aus:


Installationsdiagramm zur Abbildung elektromagnetischer Felder mit einem SDR-Empfänger und OpenCV.

Über dem Objekt, dessen Feld wir sehen möchten, ist eine Kamera installiert. Das Skript legt fest, wie unsere Antenne aussieht, und dann zeichnen wir sie wie einen Pinsel in die Bereiche, in denen wir das Feld sehen möchten. Das Signal von der Antenne geht an den SDR-Empfänger und das Python-Skript vergleicht die Position der Antenne im Rahmen mit dem Effektivsignalpegel vom Empfänger. Danach bekommen wir ein schönes Bild mit der Verteilung der Felder. Natürlich beschränkt uns dieser Ansatz bisher auf eine Ebene, aber das macht ihn nicht weniger interessant. Lassen Sie uns dieses System erstellen und überprüfen, wie es funktioniert, da hierfür nicht viele Details erforderlich sind.

Zuerst entscheiden wir, was genau wir messen werden. Trotz der Tatsache, dass elektromagnetische Felder ein einziges Phänomen sind, können wir sowohl die elektrischen als auch die magnetischen Komponenten getrennt betrachten. Für jeden Typ ist eine eigene Messantenne erforderlich. Wie der Autor des Originals habe ich eine Sondenantenne für ein Magnetfeld gemäß dem folgenden Schema hergestellt:


Ein Schema zur Herstellung einer Magnetsonde und Beispiele, die ich gemacht habe. Wenn Sie die Kartierung von Feldern ernst genommen haben, stellen Sie viele Antennen unterschiedlicher Größe her - praktisch. Auch wenn es keine Felder gibt, gibt es ein gutes Set zum Blasen von Seifenblasen.

Dieses Design ist Schinken unter dem Namen einer Rahmenantenne bekannt. Im Gegensatz zu älteren Brüdern muss diese Antenne jedoch nicht mit dem Empfänger abgestimmt werden, was unser Leben sicherlich vereinfacht. Als Basis für eine Sonde ist es am besten, ein hartes oder halbhartes Koaxialkabel zu verwenden, aber im Prinzip können Sie fast alles tun. Auch die Kabelimpedanz spielt keine Rolle. Was wichtig ist, ist die Größe der Antenne, wie wir später sehen werden.

Um zu demonstrieren, wie die Sonde die verschiedenen Komponenten des elektromagnetischen Feldes „fühlt“, habe ich sie in CST modelliert:


, , . — , ( ). . .

Selbst als zwei Manifestationen einer einzelnen Einheit interagieren die elektrischen und magnetischen Felder auf unterschiedliche Weise mit der Antenne. Der Spalt im Geflecht, den wir von oben gemacht haben, ist nichts anderes als ein Luftkondensator. Wie es sich für einen Kondensator gehört, konzentriert er das elektrische Feld in seiner Lücke. Das Magnetfeld hat aufgrund der Symmetrie der Struktur ein Maximum innerhalb der Schleife. Wenn wir also letzteres messen wollen, reicht es aus, die Schleife parallel zum gemessenen Objekt zu platzieren. Und genau das brauchen Sie, um es mit OpenCV im Frame zu erfassen! Fügen Sie nach Abschluss der Antenne den letzten Schliff hinzu. Wir werden die visuelle Erkennung verbessern, indem wir schwarzen Schrumpfschlauch oder Isolierband verwenden. Hier ist meine Arbeit:


Bei der größten Antenne (5 cm Durchmesser) gab es keine Schrumpfung der erforderlichen Größe. Am Ende habe ich es jedoch nicht benutzt. Schwarz bildet einen großen Kontrast zum weißen Hintergrund, sodass OpenCV die Sicht auf unsere Antenne erleichtert.

Als nächstes müssen Sie eine Webcam besorgen und auf einer Art Stativ installieren. Wenn Sie plötzlich keine Webcam mehr hatten, ist auch ein Smartphone auf Android mit der DroidCam-Anwendung geeignet. Die Antenne ist an den SDR-Empfänger und damit an den Computer angeschlossen. Die Hardware ist dafür bereit.

Laden Sie das Skript camera_emi_mapper.py herunter . Es werden opencv- und pyrtlsdr- Bibliotheken benötigt, um zu funktionieren.. Detaillierte Installationsanweisungen finden Sie unter dem angegebenen Link. Beachten Sie, dass bei Verwendung von Windows die pyrtlsdr-Bibliotheken dieselbe Bittiefe haben sollten wie die Python-Version auf Ihrem System. Das Skript wird mit dem folgenden Befehl gestartet:

python3 camera_emi_mapper.py -c 1 -f 100

Mit dem Flag -c können Sie eine Kamera auswählen, wenn Sie mehrere davon haben, und mit dem Flag -f wird die Frequenz festgelegt, mit der die Signalgröße überwacht wird (in Megahertz). Wenn alles funktioniert, sehen wir das Bild von der Webcam. Für das erste Testexperiment habe ich mein OSA103- Gerät in den Rahmen gelegt und es im Generatormodus bei 100 MHz eingeschaltet : Wir



drücken R, damit sich das Skript an das Hintergrundbild erinnert, und haben dann eine Schleife in die Scanzone eingefügt . Mit der S- Taste können Sie dann unsere Antenne folgendermaßen auswählen:



Nachdem Sie Ihre Auswahl mit der Eingabetaste bestätigt haben , beginnt sofort die Datenerfassung von der Kamera und dem SDR-Empfänger. Nun, und wie immer geht beim ersten Mal alles schief:



Um zu verstehen, was OpenCV sieht und warum die Erfassung nicht ordnungsgemäß funktioniert, habe ich die folgenden Zeilen des Skripts auskommentiert:

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

Sie öffnen zwei zusätzliche Fenster, in denen Sie sehen können, wie gut sich die Antenne vom Hintergrundbild abhebt. Dieser Kontrast wird durch den Wert in Thresh angepasst :

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

Im Original war es 15, ich erhöhte diesen Wert auf 50 und die Antenne wurde sicher erfasst. Diese Nummer muss abhängig von der Beleuchtung im Rahmen ausgewählt werden. Gleichzeitig habe ich mit der Helligkeit der Antenne experimentiert, da Schwarz manchmal mit einem großen quadratischen FPGA verwechselt wurde. Nach diesen Korrekturen begann alles wie eine Uhr zu funktionieren:


Wenn der Scan abgeschlossen ist, müssen Sie Q drücken, und das Skript erstellt die Feldverteilung. In diesem Fall ist das Ergebnis wie folgt:


Ehrlich gesagt - wenig wird verstanden, alles erwies sich als verschwommen und mit einer Art Scheidung. Nicht, dass ich ein super Ergebnis erwartet hätte, aber ich würde gerne etwas Spezifischeres sehen, zum Beispiel, welche Schaltkreise im Gerät an der Generierung beteiligt sind. Die Abbildung elektromagnetischer Felder sollte jedoch Antworten auf Fragen geben und keine neuen erzeugen. Ich schaute noch einmal auf den Code und sah, dass das Bild des Feldes während des Baus sehr verschwommen war. Ich habe diesen Effekt reduziert, indem ich den Sigma-Wert von 7 auf 2 geändert habe:


blurred = gaussian_with_nan(powermap, sigma=2)

Außerdem habe ich das Messobjekt ersetzt. Um die Methode zu testen, benötigen Sie als Testperson etwas Einfacheres, und ein Gerät mit einer komplexen internen Struktur ist dafür nicht geeignet. Darüber hinaus muss die Verteilung des Hochfrequenz-Magnetfelds des neuen Objekts im Voraus bekannt sein, damit klar ist, ob das Skript die Felder korrekt anzeigt oder nicht. Die gleiche Magnetschleife passt perfekt zu diesem Kriterium. Wie wir zuvor gesehen haben, ist in einer Schleife das Magnetfeld innerhalb seiner Schleife konzentriert. Beim Scannen sollten wir es also sehen. Ich habe einen einfachen quadratischen Resonanzkreis in Form von Kupferfolie und Kondensator gelötet:


, . , . , .

Möglicherweise haben Sie eine Frage: Wie können wir das Feld auf diese Weise sehen, wenn es hier nicht einmal eine Quelle gibt? Und die Sache ist, dass wir von weißem Rauschen umgeben sind (dasselbe „Rauschen“, das wir hören, wenn wir nicht auf einen Lieblingssender eingestellt sind), und in seinem Spektrum gibt es bereits fast alle gewünschten Frequenzen. Wenn wir die Messantenne in die Nähe des Resonanzkreises bringen, wird sie bei der Resonanzfrequenz dieses Kreises selbst anfälliger für Rauschen. Der SDR-Empfänger ist so empfindlich, dass er sogar zum Messen von Feldern in passiven Objekten verwendet werden kann! Versuchen wir mal, was passiert:



Ich habe versucht, sehr vorsichtig zu handeln, aber dabei habe ich das Blatt, auf das die Kontur geklebt wurde, leicht verschoben. Das Ergebnis war jedoch nicht schlecht. Sie können unsere Sonde viel schneller fahren. Soweit ich weiß, hängt die Geschwindigkeit der Datenverarbeitung nur von der Leistung des Computers und dem Zittern Ihrer Hände ab. In jedem Fall wurde die Grafikkarte meines Laptops während des Testvorgangs merklich belastet. Ja, und ich habe auch die Farbkarte in ein angenehmeres Plasma für die Augen geändert:



Es scheint, dass die Praxis dennoch mit der Theorie und der Arbeitsmethode übereinstimmt. Wir sehen das Magnetfeld dort, wo es erwartet wurde - innerhalb des Stromkreises. Gleichzeitig wird die Auflösung unseres Bildes direkt von der Größe der Messantenne bestimmt, weshalb die Felder dort, wo sie sich physisch befinden, etwas fehl am Platz sind. Und dies ist der Grund, warum die Größe der Antenne so wichtig ist, weil die Größe dieser Verschiebung davon abhängt. Es ist auch deutlich zu sehen, dass eine Änderung der Bewegungsrichtung der Antenne das Bild verzerrt. Dies liegt daran, dass der Prozess eines solchen "Zeichnens" mich verdächtig an etwas erinnert:



In Analogie zum obigen Beispiel ergibt das Verfahren eine gute Auflösung in Bewegungsrichtung der Antenne. Bei jeder Änderung dieser Richtung schleicht sich jedoch ein Fehler in Form einer Verschiebung des Feldbildes in die Daten ein. Ich umkreiste den gleichen Umriss, diesmal jedoch diagonal, was diesen Nachteil erneut demonstrierte. Beide Scans wurden übrigens mit einer Frequenz von 87 MHz durchgeführt.



Leider bin ich ein mittelmäßiger Programmierer, da ich noch nicht herausgefunden habe, wie ich den Code ändern kann, um diesen Fehler zu beheben. Stattdessen kann ich eine kurze Authoring-Methode zum Messen von Feldern anbieten. Wir nennen es eine Einzelhubtechnik:



Alles ist einfach - wenn es eine Richtung gibt, dann gibt es keine Fehler. Dies schränkt zwar den Anwendungsbereich noch mehr ein, aber wir werden sicher sein, dass die beobachteten Felder mehr oder weniger der Realität entsprechen. Wenn Sie wissen, wie Sie richtig messen, können Sie versuchen, etwas anderes zu scannen. Wussten Sie zum Beispiel, dass ein Resonanzkreis wie der bereits gezeigte überhaupt ohne Leiter auskommt? Wie ich bereits dargelegt habe, fließt ein hochfrequenter Strom durch einen Kondensator, was bedeutet, dass Sie einen Resonanzkreis nur damit und nicht mehr zusammenbauen können. Erhöhen Sie den Kondensator mental um ein Vielfaches und erhalten Sie ein Stück Keramik, das auch das Magnetfeld in der Nähe lokalisiert (danke an Kollegen von ITMO für die bereitgestellte Probe). Abtastfrequenz 254 MHz.



Erwähnenswert ist ein weiterer Nachteil der Methode: Der Abstand vom Objekt zur Antenne sollte idealerweise gleich sein, da sich unser Bild der Felder sonst nicht mehr in der Ebene befindet, was bedeutet, dass es verzerrt ist. Theoretisch denke ich, dass dies auch mit OpenCV behoben werden kann, indem die Änderung der Größe der Antenne im Rahmen verfolgt wird.

Für die abschließende Demonstration habe ich eine so komplizierte Sache zusammengestellt:



Dies ist ein mehrstufiges Tiefpassfilter, das auch als Übertragungsleitung oder sogar als Metamaterial (mit einer sehr großen Dehnung) bezeichnet werden kann. Das Schaltbild sieht folgendermaßen aus:



Da diese Struktur viele Resonanzelemente enthält, weist sie auch viele Resonanzfrequenzen auf (gemessen vom Gerät aus dem ersten Experiment). Jedes Minimum des Graphen ist eine Resonanz im Spektrum:



Solche Resonanzen nennt man Eigenmoden. Und jeder von ihnen hat sein eigenes Bild von den Feldern. Trotzdem sind sie alle durch eine bestimmte Regelmäßigkeit verbunden, nämlich die Anzahl der Wellen, die in die Struktur passen, was beim Scannen deutlich sichtbar ist:



Nachdem Sie die Anzahl der Feldspitzen gezählt haben, können Sie die Modusnummer genau benennen. Es ist auch ein gutes Beispiel dafür, wie elektromagnetische Felder ihre Geschwindigkeit in Materialien verringern. Immerhin ist die Wellengeschwindigkeit geringer - mehr Feldspitzen passen ins Bild. Meiner Meinung nach eine tolle visuelle Hilfe.

Wie Sie sehen, erwies sich die Idee, SDR und OpenCV zu kreuzen, als recht gut. Und am wichtigsten ist, dass diese Vereinigung dem langweiligen und monotonen Messprozess eine kreative Note verleiht. Ich denke, dass es in Zukunft das Studium elektromagnetischer Felder zu einer aufregenderen Erfahrung machen und eine gute Hilfe für Heimlaboratorien werden kann.

All Articles