כדי לבצע סריקת ספקטרום מלאה (Sweep Scanner) על כל התחום של SDR B205mini, נכתוב קוד שיעבור בהדרגה על כל התדרים האפשריים (70MHz עד 6GHz), יבצע דגימה מה-SDR, ויציג את הנתונים בצורה גרפית.
📌 עקרון הפעולה של הסורק
✔️ Sweep – נדגום כל פעם חלק קטן מהספקטרום (רוחב פס של 10MHz או פחות).
✔️ FFT – נחשב את עוצמת האותות בכל תחום תדר.
✔️ הצגת ספקטרום מצטבר – נציג את כל הנתונים יחד לקבלת תמונה מלאה.
📜 קוד Python לסריקת ספקטרום מ-70MHz עד 6GHz
import numpy as np
import matplotlib.pyplot as plt
from gnuradio import uhd
import time
# הגדרות סורק
start_freq = 70e6 # 70MHz - התחלה
stop_freq = 6e9 # 6GHz - סוף
step_freq = 50e6 # 50MHz קפיצה בכל סריקה
samp_rate = 10e6 # 10MSPS (ניתן להוריד אם יש עומס על המעבד)
gain = 40 # עוצמת קליטה
# יצירת חיבור ל-SDR
sdr = uhd.usrp_source(
",".join(("addr=192.168.10.2", "")),
uhd.stream_args(cpu_format="fc32", channels=[0])
)
sdr.set_samp_rate(samp_rate)
sdr.set_gain(gain)
# רשימת נתונים לאגירת ספקטרום
full_spectrum = []
freqs_list = []
# סריקת כל התחום
current_freq = start_freq
while current_freq <= stop_freq:
sdr.set_center_freq(current_freq)
time.sleep(0.1) # זמן המתנה לייצוב התדר
# קליטת דגימות
samples = np.array(sdr.recv_num_samps(1024*64, current_freq))
# חישוב FFT
fft_vals = np.fft.fftshift(np.fft.fft(samples))
freqs = np.fft.fftshift(np.fft.fftfreq(len(samples), d=1.0/samp_rate)) + (current_freq / 1e6)
# שמירת הנתונים
full_spectrum.append(20 * np.log10(np.abs(fft_vals)))
freqs_list.append(freqs)
print(f"Scanned: {current_freq/1e6} MHz")
# מעבר לתחום הבא
current_freq += step_freq
# שילוב כל התוצאות לספקטרום אחד
full_spectrum = np.concatenate(full_spectrum)
freqs_list = np.concatenate(freqs_list)
# הצגת הגרף
plt.figure(figsize=(12, 6))
plt.plot(freqs_list, full_spectrum, linewidth=0.5)
plt.xlabel("Frequency (MHz)")
plt.ylabel("Power (dB)")
plt.title("Full SDR Spectrum Scan (70MHz - 6GHz)")
plt.grid()
plt.show()
🛠️ איך הקוד עובד?
✔️ מתחיל ב-70MHz ומתקדם עד 6GHz בקפיצות של 50MHz.
✔️ בכל קפיצה מבצע FFT ומחשב את עוצמות האותות.
✔️ מצרף את כל הנתונים לגרף אחד של כל הספקטרום.
✔️ מציג תמונת ספקטרום מלאה עם כל התדרים הפעילים.
📊 איך להשתמש בזה?
1️⃣ לחבר את SDR B205mini (להגדיר כתובת IP אם מחובר ברשת).
2️⃣ להפעיל את הקוד ולראות את התדרים הפעילים עד 6GHz.
3️⃣ לזהות תדרי רחפנים או תקשורת חשודה ולתכנן שיבוש בהתאם.
🚀 רוצה שאשדרג את זה עם זיהוי אוטומטי של רחפנים (AI / Machine Learning)? 😃
אין תגובות:
הוסף רשומת תגובה