АДАПТИВНИЙ FHSS
AI-КЕРОВАНЕ УПРАВЛІННЯ ЧАСТОТАМИ
АДАПТИВНИЙ FHSS — КЛЮЧОВІ ПАРАМЕТРИ
Поріг CFAR — математичне виведення
Тепловий шум після FFT має експоненціальний розподіл. CFAR оцінює рівень шуму з N опорних комірок і оголошує канал заглушеним, якщо він перевищує оцінку на α. Для Pfa = 10⁻⁶ і N = 16 опорних комірок: α = 16·(10⁶^(1/16) − 1) ≈ 21,94 лінійно ≈ 13,41 дБ. Операційний поріг: 15 дБ (з 1,6 дБ інженерного запасу). Доказ: ADAPTIVE_FHSS_CFAR_THRESHOLD.
Опрацьований приклад 1 — Тактичний вузькосмуговий глушник
40 МГц вузькосмуговий глушник на 100 Вт, 2 км від Fischer 26. Глушить 400 з 4 600 каналів Silvus = 8,7 % діапазону. Адаптивний FHSS сходиться на 4 200 чистих каналах після одного циклу маяка. Операційний вплив: нуль (f_clean = 91,3 % >> f_critical = 2 %). Доказ: ADAPTIVE_FHSS_NARROWBAND_IMPACT.
Опрацьований приклад 2 — Krasukha-4 барражне глушіння
Krasukha-4 (70 кВт, смуга 2 ГГц, 10 км) покриває 2–4 ГГц — без перетину зі Silvus 140–600 МГц. Витік бічної пелюстки на 300 МГц нижче рівня теплового шуму після 10 км втрати на шляху. Fischer 26 Silvus не зачеплений. AD9361 SDR Fischer 26E стрибає на ті 66 % спектру, які Krasukha не покриває (див. fischer26e.html). Доказ: FISCHER26E_KRASUKHA_UNAFFECTED_SPECTRUM.
Приклад коду — CFAR-детектор
# adaptive_scan.py — RTL-SDR CFAR jammer detection
from rtlsdr import RtlSdr
import numpy as np
def cfar_detect(psd_db, n_ref=16, n_guard=2, threshold_db=15.0):
"""Cell-Averaging CFAR.
Threshold derived from Pfa=1e-6, N=16: alpha approx 15 dB.
"""
n = len(psd_db)
jammed = np.zeros(n, dtype=bool)
for i in range(n_ref + n_guard, n - n_ref - n_guard):
left = psd_db[i - n_ref - n_guard : i - n_guard]
right = psd_db[i + n_guard + 1 : i + n_guard + 1 + n_ref]
noise_est = np.mean(np.concatenate([left, right]))
if psd_db[i] > noise_est + threshold_db:
jammed[i] = True
return jammed
sdr = RtlSdr()
sdr.sample_rate = 2.4e6
sdr.center_freq = 300e6
samples = sdr.read_samples(256 * 1024)
psd_db = 10 * np.log10(np.abs(np.fft.fft(samples, n=2048))**2 + 1e-10)
jammed = cfar_detect(psd_db)
print(f"Jammed bins: {jammed.sum()} / {len(jammed)}")
sdr.close()
Приклад коду — Сходження чорного списку
# adaptive_mesh.py — MANET blacklist propagation
import math
def convergence_time_s(n_nodes, beacon_interval_s=5.0):
"""Flooding protocol convergence: ceil(log2(N)) cycles.
4 nodes x 5 s beacon = 10 s worst case."""
return math.ceil(math.log2(max(n_nodes, 2))) * beacon_interval_s
print(f"Convergence (4 nodes): {convergence_time_s(4):.0f} s")
# Proof: MESH_CONVERGENCE_TIME_4NODES
Чому це операційно важливо
Різниця між 460 чистими каналами і 0 чистими каналами — це різниця між "бригадний зв\'язок продовжується з маргінальною затримкою" і "бригадний зв\'язок повністю відмовив". Fischer 26 на 300 м AGL надає MANET-магістраль для свого сектору; втрата цього лінку коштує бригаді її дронової розвідки, координації FPV-ударів і корекції артилерії в реальному часі. Pfa = 10⁻⁶ — це інженерний компроміс: при Silvus 4 600 каналів, скануючих кожні 10 мс, очікується один хибний сигнал тривоги приблизно кожні 22 години — прийнятно.
При f_clean < 2 % лінк несе лише телеметрію — ніякого відео, ніяких FPV-ударів, ніяких детальних оновлень COP. Тоді tier-2 Fischer 26E (70 МГц – 6 ГГц fastlock-стрибки) перебирає на себе бригадний уплінк (див. fischer26e.html). Рішення автоматизується, коли f_clean × смуга падає нижче мінімальної швидкості лінку.
Обмеження
Адаптивний FHSS НЕ перемагає барражне глушіння, коли противник заливає весь діапазон одночасно. Проти 100 Вт барражного глушника на 500 м через 460 МГц кожен канал перевищує поріг — чорний список містить усі канали. Захист вимагає або (a) вищої потужності передачі (непрактично для малих дронів), (b) спрямованої антени (CRPA, див. crpa-antennas.html), що просторово глушить, або (c) зміни діапазону (70 МГц – 6 ГГц Fischer 26E охоплює смуги, які Krasukha-клас не може досягти — 66 % спектру залишається придатним).
Пов'язані розділи
Джерела
Математично перевірені оцінки. Поріг CFAR (Pfa = 10⁻⁶, N = 16 → α ≈ 13,4 дБ) перевірено в provable_claims.py під ADAPTIVE_FHSS_CFAR_THRESHOLD. Співвідношення потужності 4 600×: FHSS_JAM_POWER_RATIO. Дальність детекції 100 мВт: ADAPTIVE_FHSS_DETECTION_RANGE_100MW. Вплив вузькосмугового глушника: ADAPTIVE_FHSS_NARROWBAND_IMPACT. Сходження мережі: MESH_CONVERGENCE_TIME_4NODES.
Джерела параметрів. RTL-SDR Blog V4 частотний діапазон і частота дискретизації — документація виробника rtl-sdr.com. Silvus StreamCaster 4 600 каналів — опубліковані специфікації Silvus. Формула порогу CFAR α = N·(Pfa^(-1/N) − 1) — Richards Fundamentals of Radar Signal Processing (McGraw-Hill 2005). Параметри Krasukha-4 — RUSI Watling & Reynolds 2023.
Операційні оцінки — не перевірено FSG-A в полі. 107 мс час сканування обчислено з частоти дискретизації SDR; не виміряно на реальному обладнанні RTL-SDR. 2–3 с сходження мережі оцінено з інтервалу маяка Silvus; не виміряно на реальній 4-вузловій мережі. Поріг 15 дБ містить 1,6 дБ інженерного запасу над суворим виведенням CFAR (13,4 дБ), який FSG-A не калібрувала проти реальних шаблонів завад.