Atalay YamanGNU Radio
EN
MP-10 / 13

Embedded Python Block: Sinyal Listesi

İleri · Donanım: Pluto
‹ MP-9
Aşama 1 / 4

Projeyi gözle

Önce ne yapıldığını ve neden yapıldığını oku.

MP-9 "hangi binlerde sinyal var?" sorusunu cevapladı. Ama bir ES sistemi şunu bilmek ister:

"Kaç sinyal var, her biri hangi frekansta, ne kadar geniş ve ne kadar güçlü?"

Hazır bloklarla bu zordur. GNU Radio'nun Python Block (Embedded Python Block) özelliği, akış grafiğinin içine kendi Python kodunu blok olarak koymayı sağlar. Bu projede yazılan Sinyal Listesi bloğu:

  1. Log10'dan gelen dB spektrumunu alır.
  2. Gürültü tabanını median (ortanca) ile ölçer. Median, güçlü sinyallerden etkilenmez (MP-9'daki ortalamanın zayıflığı).
  3. taban + marj üstündeki binleri bulur.
  4. Birbirine yakın binleri (aralarındaki boşluk bosluk_bin veya daha az) tek sinyal sayar. Böylece bir FM yayınının ~100 bini tek bir satır olur.
  5. Her sinyal için merkez frekans, bant genişliği, tepe gücü ve SNR hesaplar.
  6. Listeyi konsola yazar ve sinyaller mesaj portundan JSON olarak yayınlar (MP-11 ve MP-13 bu mesajı kullanır).

Örnek konsol çıktısı (3 istasyonlu test):

kod
--- Taban -75.9 dB | 3 sinyal ---
    99.3516 MHz    118.1 kHz   -38.9 dB  (SNR 36.9)
   100.0012 MHz    120.0 kHz   -30.4 dB  (SNR 45.5)
   100.4512 MHz     75.0 kHz   -43.3 dB  (SNR 32.6)

Akış portu ile mesaj portu farkı: Akış portları (mavi/turuncu) sürekli örnek taşır. Mesaj portları (gri, kesikli) ara sıra gelen olayları taşır: "şu an 3 sinyal var" gibi.