MP-10 / 13
Embedded Python Block: Sinyal Listesi
İleri · Donanım: Pluto
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:
- Log10'dan gelen dB spektrumunu alır.
- Gürültü tabanını median (ortanca) ile ölçer. Median, güçlü sinyallerden etkilenmez (MP-9'daki ortalamanın zayıflığı).
taban + marjüstündeki binleri bulur.- Birbirine yakın binleri (aralarındaki boşluk
bosluk_binveya daha az) tek sinyal sayar. Böylece bir FM yayınının ~100 bini tek bir satır olur. - Her sinyal için merkez frekans, bant genişliği, tepe gücü ve SNR hesaplar.
- Listeyi konsola yazar ve
sinyallermesaj portundan JSON olarak yayınlar (MP-11 ve MP-13 bu mesajı kullanır).
Örnek konsol çıktısı (3 istasyonlu test):
--- 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.