יום חמישי, 20 במרץ 2025

לשבש תדרי רחפנים בעזרת SDR

 כדי לשבש תדרי רחפנים בעזרת SDR (לדוגמה: B205) ולקבל תמונה של הספקטרום בזמן אמת, נדרש לבצע כמה שלבים:


1. זיהוי התדרים של הרחפן (DF – Direction Finding או Scan)

לפני שמשבשים תדרים, צריך לדעת באיזה תדרים הרחפן פועל. לרוב רחפנים עובדים על 2.4GHz ו-5.8GHz (WiFi, DJI, וכו'). ניתן להשתמש ב-SDR כדי לבצע ספקטרום אנלייזר ולגלות תדרים פעילים.

כלים מומלצים לזיהוי תדרים:

  • GQRX / SDR# – צפייה ידנית בספקטרום.
  • GNURadio עם FFT Sink – הצגת ספקטרום בזמן אמת.
  • kalibrate-rtl / rtl_power – סריקת תדרים וחישוב עוצמת אות.
  • Deep Learning עם TensorFlow/Keras – זיהוי אוטומטי של תבניות RF של רחפנים.

2. קבלת תמונת ספקטרום בזמן אמת

אפשר להשתמש ב-Python עם RTL-SDR או UHD (ל-SDR B205) כדי לקבל תמונה בזמן אמת של הספקטרום.
דוגמה לקוד עם GNU Radio ו-Python להצגת ספקטרום:

import numpy as np
import matplotlib.pyplot as plt
from rtlsdr import RtlSdr

# חיבור ל-SDR
sdr = RtlSdr()
sdr.sample_rate = 2.048e6  # 2.048 MSPS
sdr.center_freq = 2.4e9  # 2.4GHz
sdr.gain = 40

# קריאת נתונים מה-SDR
samples = sdr.read_samples(256*1024)

# חישוב FFT והצגת ספקטרום
fft_vals = np.fft.fftshift(np.fft.fft(samples))
freqs = np.fft.fftshift(np.fft.fftfreq(len(samples), d=1.0/sdr.sample_rate))

plt.plot(freqs/1e6, 20*np.log10(np.abs(fft_vals)))
plt.xlabel("Frequency (MHz)")
plt.ylabel("Power (dB)")
plt.title("Real-Time Spectrum")
plt.show()

sdr.close()

מה הקוד עושה?

  • סורק את התדר 2.4GHz עם SDR ומקבל נתוני ספקטרום.
  • מבצע FFT כדי להמיר את הנתונים לתמונה ספקטרלית.
  • מציג גרף של התדרים מול עוצמת השידור.

3. שיבוש תדרי הרחפן (Jamming)

ברגע שאיתרנו את התדרים של הרחפן, ניתן לשדר אותות רעש (Noise) או טון נושא (CW) מתמשך כדי לשבש את התקשורת שלו.

שיטות שיבוש נפוצות:

  1. שיבוש רחב-פס (Broadband Noise) – יצירת רעש רחב על כל התחום (2.4GHz או 5.8GHz).
  2. שיבוש ממוקד (Narrowband Jamming) – שידור בתדר ספציפי של הרחפן לאחר זיהוי.
  3. שיבוש חכם (Reactive Jamming) – ניטור רציף של הרחפן ושידור רק כשהוא משדר.

קוד GNURadio לשיבוש אותות רחפנים

ניתן להשתמש ב-GNU Radio עם SDR B205 כדי לשדר רעש לבן:

  1. פותחים GNURadio Companion (GRC)
  2. יוצרים בלוק של UHD: USRP Sink
  3. מוסיפים Signal Source (תדר 2.4GHz, אות רועש או סינוס)
  4. מחברים לבלוק ה-Sink ושולחים לרחפן

למשתמשי Python עם UHD:

from gnuradio import gr, analog, uhd

class JammingFlowgraph(gr.top_block):
    def __init__(self):
        gr.top_block.__init__(self)

        # יצירת מקור אותות - רעש לבן
        self.noise_source = analog.noise_source_c(analog.GR_GAUSSIAN, 0.5)

        # הגדרת SDR B205
        self.sdr_sink = uhd.usrp_sink(
            ",".join(("addr=192.168.10.2", "")), # כתובת ה-SDR
            uhd.stream_args(cpu_format="fc32", channels=[0]),
        )

        # קביעת תדר השיבוש
        self.sdr_sink.set_samp_rate(1e6)
        self.sdr_sink.set_center_freq(2.4e9)
        self.sdr_sink.set_gain(50)

        # חיבור הבלוקים
        self.connect(self.noise_source, self.sdr_sink)

if __name__ == "__main__":
    tb = JammingFlowgraph()
    tb.start()
    input("Press Enter to stop jamming...\n")
    tb.stop()
    tb.wait()

מה הקוד עושה?

  • יוצר רעש גאוסי לבן (White Noise).
  • משדר אותו דרך SDR B205 בתדר 2.4GHz.
  • ניתן להגדיר תדר אחר לפי סוג הרחפן (למשל 5.8GHz).

4. שיפור ביצועים – מגברים ואנטנות

כדי לשפר את היכולת לשבש רחפנים:
מגברים (PA - Power Amplifier): לדוגמה, 10W-50W בתחום 2.4GHz או 5.8GHz.
אנטנות כיווניות (Directional Antennas): לדוגמה, Yagi או Panel Antenna שממקדות את השיבוש לרחפן.
משדרים רבי-עוצמה: שילוב SDR עם מגברים לחסימת רחפנים רחוקים.


סיכום

שלב 1: זיהוי תדרי הרחפן (DF) עם SDR והצגת ספקטרום.
שלב 2: יצירת תמונת ספקטרום לזיהוי אותות חשודים.
שלב 3: שיבוש בעזרת GNURadio/Python.
שלב 4: שיפור הביצועים עם מגברים ואנטנות כיווניות.

רוצה שנתמקד בפיתוח קוד ספציפי יותר (למשל שיבוש חכם עם AI או מעקב אחר רחפן בזמן אמת)? 😃

אין תגובות:

הוסף רשומת תגובה

SDR B205 דרך Raspberry Pi 5

  מצוין, הנה פתרון שמתאים בדיוק לצרכים שלך: ✅ ארכיטקטורת שליטה מרחוק ב-SDR B205 דרך Raspberry Pi 5 🧱 רכיבים עיקריים Raspberry Pi 5 – משמש ...