Menjelajahi medan elektromagnetik menggunakan penerima SDR dan OpenCV



Penerima SDR, bahkan yang termurah, adalah instrumen yang sangat sensitif. Jika Anda menambahkan antena khusus dan OpenCV ke dalamnya, Anda tidak hanya terbiasa mendengarkan eter, tetapi juga melihat distribusi medan elektromagnetik di ruang angkasa. Aplikasi yang menarik akan dibahas dalam artikel ini. Perhatian! Di bawah potongan banyak gambar dan animasi!

Apakah Anda ingin melihat medan elektromagnetik? Ya, tidak ada yang lebih mudah, ini dia:



Saya setuju, tidak terlalu jelas. Bahkan jika kita dapat melihat cahaya (yang juga dijelaskan oleh persamaan ini), maka spektrum radio tidak begitu mudah diakses oleh kita. Karena alasan ini, umat manusia telah datang dengan berbagai cara untuk memata-matai misteri alam ini, menggunakan pemodelan komputer dan instalasi khusus.

Yang terakhir dapat ditemukan di dalam dinding lembaga ilmiah, departemen penelitian perusahaan besar dan, tentu saja, militer. Biasanya ini adalah ruang terpisah, terlindung dari radiasi eksternal oleh sangkar Faraday, dan dari dalam ditutupi dengan bahan penyerap radar. Lagipula, tetangga-amatir atau microwave tidak boleh mengganggu kita ketika melakukan percobaan seperti itu. Ruangan ini disebut ruang anechoic. Nama, tentu saja, lebih konsisten dengan studio rekaman, tetapi dalam kasus ini, "gema" mengacu pada setiap refleksi internal dan refleksi ulang dari gelombang elektromagnetik yang mengganggu penelitian dan tanpa ampun dipadamkan. Di dalam kamera, dari sudut pandang antena, Anda berada dalam kekosongan absolut, di mana semua radiasi masuk ke hamparan tak berujung yang disimulasikan oleh penyerap radio dan tidak ada yang kembali.

, -, , - โ€” , , . ยซยป , ---, .


, Panasonic. ยซ ยป โ€” . โ€” .

Ketika melakukan tes untuk kompatibilitas elektromagnetik, pengembangan antena, serta penelitian ilmiah terkait dengan radiasi elektromagnetik, seseorang tidak dapat melakukannya tanpa kamera tersebut. Namun, kamera itu sendiri hanya bagian dari ceritanya. Di antara elemen-elemen kunci lainnya yang diperlukan untuk merekam perilaku gelombang elektromagnetik, antena khusus, alat ukur yang mahal, dan, pada kenyataannya, pemindai lapangan juga akan diperlukan. Pemindai tidak lebih dari sistem koordinat terkenal dengan CNC. Anda dapat memberikan pemindai antena yang sesuai atau probe pengukur di "tangan" Anda, dan kemudian pergi minum kopi sampai hati-hati berjalan di sekitar titik-titik yang ditetapkan oleh program, membangun gambar yang indah dari distribusi bidang di sekitar tangki baru Anda atau, misalnya, pola radiasi radar.

Tapi kembali ke titik. Kebetulan jauh dari sumber, di ruang kosong, medan elektromagnetik terlihat sangat membosankan. Sesuatu seperti ini:



Sementara hal yang paling ajaib dan menarik mengintai di daerah di mana gelombang terbentuk (dekat sumber), atau berinteraksi dengan objek. Daerah-daerah ini biasanya tidak melebihi dimensi panjang gelombang emisi radio, yang terlibat dalam percobaan, dan disebut zona medan dekat. Penyelidikan bidang lapangan dekat tidak diragukan lagi salah satu yang paling penasaran, dan tentu saja mereka tidak bisa tinggal lama hanya di balik dinding disaring organisasi besar.

Penggemar dengan cepat menyadari bahwa untuk memetakan bidang dengan prinsip yang sama seperti pada kamera profesional, Anda dapat membangun pemindai koordinat Anda sendiri, atau, bahkan lebih sederhana, mengadaptasi printer 3D di mana-mana untuk tujuan ini. Mengapa, sungguh, mereka bahkan menulis artikel ilmiah tentang itu.


3d-printer, di mana bukan extruder (atau dengan itu) dipasang mengukur probe, antena. Terlihat di atas bagaimana koefisien kopling dari dua antena loop: yang mengukur, dan yang terletak di atas meja printer (yang disebut parameter S21) berubah dalam ruang. Di bawah ini adalah contoh membangun distribusi medan magnet frekuensi tinggi di atas selendang Arduino.

Meskipun pemindai buatan sendiri tidak berada dalam lingkungan yang steril secara elektromagnetik dari ruang anechoic, mereka masih dapat menghasilkan hasil yang menarik. Dan jika dalam contoh pertama dari gambar di atas, penganalisa profesional yang mahal digunakan untuk mengumpulkan data (artikel ilmiah, setelah semua), maka dalam kasus kedua mereka menelan biaya penerima SDR yang murah, yang membuat percobaan seperti itu bahkan lebih terjangkau. Namun, kita tidak akan berkutat pada printer 3d, mereka sudah bosan dengan semuanya secara berurutan.

Penulis proyek kedua dari gambar, Charles Grassin , memutuskan untuk menyederhanakan proses lebih jauh, dan sepenuhnya menyingkirkan sistem koordinat, seperti elemen besar, menawarkan untuk melacak pergerakan antena pengukur menggunakan OpenCV. Sistem yang dikandungnya tampak seperti ini:


Diagram instalasi untuk memetakan medan elektromagnetik menggunakan penerima SDR dan OpenCV.

Sebuah kamera dipasang di atas objek yang bidangnya ingin kita lihat. Script mengatur bagaimana antena kami terlihat, dan kemudian kami menggambarnya, seperti kuas, di area tempat kami ingin melihat bidang. Sinyal dari antena menuju ke penerima SDR dan skrip python membandingkan posisi antena dalam bingkai dengan tingkat sinyal rms dari penerima. Setelah itu kita mendapatkan gambar yang indah dengan distribusi bidang. Tentu saja, pendekatan ini sejauh ini membatasi kita pada satu bidang, tetapi ini tidak membuatnya kurang menarik. Mari kita membangun sistem ini dan memeriksa cara kerjanya, karena banyak detail tidak diperlukan untuk ini.

Pertama kita memutuskan apa yang akan kita ukur. Terlepas dari kenyataan bahwa medan elektromagnetik adalah fenomena tunggal, kita dapat melihat komponen listrik dan magnetnya secara terpisah. Setiap jenis membutuhkan antena pengukur khusus. Seperti penulis aslinya, saya membuat antena probe untuk medan magnet sesuai dengan skema di bawah ini:


Skema untuk membuat probe magnetik dan contoh yang saya buat. Jika Anda menganggap serius pemetaan bidang, maka buatlah banyak antena dengan ukuran berbeda - berguna. Bahkan jika itu tidak keluar dengan margin, maka akan ada set yang bagus untuk meniup gelembung sabun.

Desain ini terkenal untuk ham dengan nama antena loop, namun, tidak seperti saudara yang lebih tua, antena ini tidak harus cocok dengan penerima, yang tentu saja menyederhanakan kehidupan kita. Sebagai dasar untuk penyelidikan, yang terbaik adalah menggunakan kabel koaksial keras atau semi-keras, tetapi pada prinsipnya, Anda dapat melakukan hampir semua hal. Impedansi kabel juga tidak berperan. Yang penting adalah ukuran antena, seperti yang akan kita lihat nanti.

Untuk menunjukkan bagaimana probe โ€œmerasakanโ€ komponen medan elektromagnetik yang berbeda, saya memodelkannya dalam CST:


, , . โ€” , ( ). . .

Bahkan ketika dua manifestasi dari satu entitas, medan listrik dan magnet berinteraksi dengan antena dengan cara yang berbeda. Kesenjangan dalam jalinan yang kami buat dari atas hanyalah kondensor udara. Seperti layaknya sebuah kapasitor, ia mengkonsentrasikan medan listrik di celahnya. Medan magnet, karena simetri struktur, memiliki maksimum di dalam loop. Jadi, jika kita ingin mengukur yang terakhir, itu cukup untuk menempatkan paralel sejajar dengan objek yang diukur. Dan ini adalah apa yang Anda butuhkan untuk menangkapnya dalam bingkai menggunakan OpenCV! Jadi, setelah antena siap, tambahkan sentuhan terakhir. Kami akan meningkatkan pengenalan visualnya dengan menggunakan black heat shrink atau pita listrik. Ini pekerjaan saya:


Untuk antena terbesar (berdiameter 5 cm), tidak ada penyusutan ukuran yang diperlukan. Namun, pada akhirnya saya tidak menggunakannya. Hitam akan memberikan kontras besar dengan latar belakang putih sehingga OpenCV membuatnya lebih mudah untuk melihat antena kami.

Selanjutnya, Anda perlu mendapatkan webcam dan memasangnya pada semacam tripod. Jika tiba-tiba Anda tidak memiliki webcam, maka smartphone di android dengan aplikasi DroidCam juga cocok. Antena terhubung ke penerima SDR, dan dia, pada gilirannya, ke komputer. Perangkat keras siap untuk ini.

Unduh skrip camera_emi_mapper.py . Ini akan membutuhkan OpenCV dan pyrtlsdr perpustakaan untuk bekerja.. Petunjuk pemasangan terperinci tersedia di tautan yang ditunjuk. Harap dicatat bahwa jika Anda menggunakan Windows, maka pustaka pyrtlsdr harus memiliki kedalaman bit yang sama dengan versi python pada sistem Anda. Script diluncurkan oleh perintah:

python3 camera_emi_mapper.py -c 1 -f 100

flag -c memungkinkan Anda untuk memilih kamera jika Anda memiliki beberapa di antaranya, dan flag -f menentukan frekuensi di mana besarnya sinyal akan dipantau (dalam megahertz). Jika semuanya berfungsi, maka kita akan melihat gambar dari webcam. Untuk percobaan pengujian pertama, saya menempatkan perangkat OSA103 saya dalam bingkai , menyalakannya dalam mode generator pada 100 MHz : Kami



menekan R sehingga skrip mengingat gambar latar belakang, dan kemudian kami meletakkan lingkaran ke zona pemindaian. Kemudian, dengan menggunakan tombol S , Anda dapat memilih antena kami dengan cara berikut:



Setelah mengonfirmasi pilihan Anda dengan tombol Enter , pengambilan data dari kamera dan penerima SDR akan segera dimulai. Nah, dan seperti biasa, pertama kali semuanya beres:



Untuk memahami apa yang dilihat OpenCV dan mengapa penangkapan tidak berfungsi sebagaimana mestinya, saya membatalkan komentar pada baris-baris berikut dari skrip:

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

Mereka membuka dua jendela tambahan di mana Anda dapat melihat seberapa baik antena kontras dengan gambar latar belakang. Kontras ini disesuaikan dengan nilai dalam ambang :

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

Dalam aslinya itu 15, saya meningkatkan nilai ini menjadi 50, dan antena mulai ditangkap dengan penuh percaya diri. Nomor ini harus dipilih tergantung pada pencahayaan dalam bingkai. Pada saat yang sama, saya bereksperimen dengan kecerahan antena, karena hitam kadang-kadang bingung dengan FPGA persegi besar. Setelah koreksi ini, semuanya mulai bekerja seperti jam:


Ketika pemindaian selesai, Anda perlu menekan Q dan skrip akan membangun distribusi bidang. Dalam hal ini, hasilnya adalah sebagai berikut:


Jujur - sedikit yang dipahami, semuanya ternyata buram dan dengan semacam perceraian. Bukannya saya mengharapkan hasil yang super, tetapi saya ingin melihat sesuatu yang lebih spesifik, misalnya, sirkuit mana dalam perangkat yang terlibat dalam pembangkitan. Namun, pemetaan bidang elektromagnetik harus memberikan jawaban atas pertanyaan dan tidak membuat yang baru. Saya melihat lagi kode itu dan melihat bahwa gambar lapangan sangat kabur selama konstruksi. Saya mengurangi efek ini dengan mengubah nilai sigma dari 7 menjadi 2:


blurred = gaussian_with_nan(powermap, sigma=2)

Juga, saya mengganti objek pengukuran. Untuk menguji metode ini, Anda memerlukan beberapa hal yang lebih sederhana sebagai subjek uji, dan perangkat dengan struktur internal yang kompleks tidak cocok untuk ini. Selain itu, distribusi medan magnet frekuensi radio dari objek baru harus diketahui terlebih dahulu sehingga jelas apakah skrip menampilkan bidang dengan benar atau tidak. Lingkaran magnet yang sama sangat cocok dengan kriteria ini. Seperti yang kita lihat sebelumnya, dalam satu lingkaran, medan magnet terkonsentrasi di dalam lingkarannya. Jadi, ketika memindai, kita harus melihatnya. Saya menyolder rangkaian resonansi persegi sederhana berupa tembaga dan kapasitor:


, . , . , .

Anda mungkin memiliki pertanyaan - bagaimana kita bisa melihat bidang dengan cara ini, jika tidak ada sumber di sini! Dan masalahnya adalah kita dikelilingi oleh white noise (โ€œnoiseโ€ yang sama yang kita dengar ketika kita tidak disetel ke stasiun favorit), dan spektrumnya sudah mengandung hampir semua frekuensi yang diinginkan. Jika kita mendekatkan antena pengukur ke sirkuit resonansi, itu akan menjadi lebih rentan terhadap noise pada frekuensi resonansi dari sirkuit ini sendiri. Penerima SDR sangat sensitif sehingga bahkan dapat digunakan untuk mengukur bidang dalam objek pasif! Mari kita coba apa yang terjadi:



Saya mencoba untuk bertindak dengan sangat hati-hati, tetapi masih dalam proses saya sedikit menggeser lembaran tempat kontur dilem. Namun, hasilnya tidak buruk. Anda dapat mengarahkan probe kami lebih cepat. Seperti yang saya pahami, kecepatan pemrosesan data hanya tergantung pada kinerja komputer dan getaran tangan Anda. Bagaimanapun, kartu video laptop saya terasa tegang selama proses pengujian. Ya, dan saya juga mengubah peta warna menjadi plasma yang lebih menyenangkan untuk mata:



Tampaknya praktik itu bertepatan dengan teori dan metode kerja. Kita melihat medan magnet di tempat yang diharapkan - di dalam sirkuit. Pada saat yang sama, resolusi gambar kita secara langsung ditentukan oleh ukuran antena pengukur, itulah sebabnya bidang sedikit keluar dari tempat di mana mereka secara fisik. Dan inilah alasan mengapa ukuran antena sangat penting, karena besarnya pergeseran ini akan bergantung padanya. Terlihat juga bahwa perubahan arah pergerakan antena mendistorsi gambar. Ini karena proses "menggambar" seperti itu mengingatkan saya pada sesuatu yang mencurigakan:



Dengan analogi dengan contoh di atas, metode ini memberikan resolusi yang baik dalam arah pergerakan antena. Tetapi dengan setiap perubahan dalam arah ini, kesalahan merayap ke dalam data dalam bentuk perpindahan dari bidang gambar. Saya mengitari garis yang sama, tetapi kali ini secara diagonal, yang sekali lagi menunjukkan kelemahan ini. Omong-omong, kedua pemindaian dilakukan pada frekuensi 87 MHz.



Sayangnya, saya seorang programmer yang sangat-begitu, karena saya belum menemukan cara untuk memodifikasi kode untuk memperbaiki kesalahan ini. Sebagai gantinya, saya dapat menawarkan metodologi penulisan singkat untuk mengukur bidang. Kami menyebutnya teknik stroke tunggal:



Semuanya sederhana - jika ada satu arah, maka tidak ada kesalahan. Tentu saja, sementara ini membatasi ruang lingkup aplikasi yang mungkin bahkan lebih, tetapi kami akan yakin bahwa bidang yang diamati lebih atau kurang sesuai dengan kenyataan. Sekarang, karena mengetahui cara mengukur dengan benar, Anda dapat mencoba memindai sesuatu yang lain. Misalnya, apakah Anda tahu bahwa rangkaian resonansi, seperti yang sudah ditunjukkan, dapat dilakukan tanpa konduktor sama sekali? Seperti yang telah saya katakan, arus frekuensi tinggi mengalir melalui kapasitor, yang berarti bahwa Anda dapat merakit sirkuit resonansi hanya dengan menggunakannya dan tidak lebih. Tingkatkan kapasitor secara mental beberapa kali dan dapatkan sepotong keramik yang juga melokalisasi medan magnet di dekatnya (terima kasih kepada rekan-rekan dari ITMO untuk sampel yang diberikan). Frekuensi pemindaian 254 MHz.



Perlu disebutkan kelemahan lain dari metode ini - jarak dari objek ke antena idealnya harus sama, jika tidak gambar kita dari bidang tidak akan lagi berada di pesawat, yang berarti akan terdistorsi. Secara teoritis, saya pikir ini juga bisa diperbaiki menggunakan OpenCV, dengan melacak perubahan ukuran antena dalam bingkai.

Untuk demonstrasi terakhir, saya membuat hal yang lebih rumit:



Ini adalah low-pass filter multi-tahap, juga bisa disebut saluran transmisi, atau bahkan metamaterial (dengan bentangan yang sangat besar). Diagram sirkuit terlihat seperti ini:



Karena ada banyak elemen resonansi dalam struktur ini, ia juga memiliki banyak frekuensi resonansi (diukur oleh perangkat dari percobaan pertama). Setiap minimum grafik adalah resonansi dalam spektrum:



Resonansi seperti itu disebut eigenmode. Dan masing-masing memiliki gambar unik masing-masing bidang. Namun demikian, mereka semua terhubung oleh keteraturan tertentu, yaitu, jumlah gelombang yang sesuai dengan struktur, yang terlihat jelas saat memindai:



Setelah menghitung jumlah puncak bidang, Anda dapat secara akurat menyebutkan nomor mode. Ini juga merupakan ilustrasi yang bagus tentang bagaimana medan elektromagnetik mengurangi kecepatan mereka di dalam material. Lagi pula, kecepatan gelombang kurang - puncak bidang lebih cocok dalam gambar. Menurut pendapat saya, alat bantu visual yang bagus.

Seperti yang Anda lihat, ide untuk menyeberang SDR dan OpenCV ternyata cukup bagus. Dan yang paling penting, penyatuan ini membawa sentuhan kreatif pada proses pengukuran yang membosankan dan monoton. Saya pikir di masa depan hal itu dapat membuat studi bidang elektromagnetik menjadi pengalaman yang lebih menarik, serta menjadi bantuan yang baik untuk laboratorium rumah.

All Articles