CRPA-ANTENNER
KONTROLLERAT MOTTAGNINGSMÖNSTER MOT STÖRNING
CRPA — ÖVERSIKT
Storleksbegränsning för drönare
En 4-elements CRPA vid 300 MHz mäter ungefär 1 meter gånger 1 meter — alldeles för stor för en 600-grams FPV-drönare. CRPA-teknik är begränsad till fordonsmonterade och markstationsapplikationer inom FSG-A-systemet. På fordon monteras arrayen plant på taket — samma position som den befintliga MANET-patchantennen. Viktökningen (800 g för 4 element plus styrelektronik) är försumbar på ett 15-tons pansarfordon.
Matematisk grund för nollstyrning
CRPA-nollstyrning använder adaptiv strålformning: antenngruppens element justerar komplexa vikter (amplitud och fas) så att mottagarmönstret skapar en djup noll i den riktning varifrån störsignalen kommer. Med 4 element kan arrayen skapa 1–2 oberoende nollpunkter — tillräckligt för att hantera 1–2 separata störkällor simultant. Med 7 element: 3–4 nollpunkter.
Adaptionstiden är kritisk: CRPA:n måste detektera störriktningen och beräkna optimala vikter innan signalen degraderas bortom användbarhet. Moderna FPGA-baserade CRPA-system (AD9361 + Zynq) beräknar nollpunkter på under 10 millisekunder — tillräckligt snabbt för att hantera störare som tänds plötsligt. Äldre DSP-baserade system tar 100+ ms och kan tappa GPS-lås under omberäkningen.
Kostnad-nytta för brigadinförande
CRPA-system kostar 500–2 000 euro per enhet beroende på antalet element och frekvensbandet. För brigadskala (100 fordon) representerar detta en investering på 50 000–200 000 euro — billigt jämfört med att förlora GPS-navigering under fientlig störning. CRPA bör prioriteras för kommandofordon (Patgb 203), eldledningsfordon och artillerisystem som är beroende av precis GPS-positionering.
Implementering på markstation — CRPA-antenn
Medan CRPA-arrayer är för stora för små drönare (minimum 4 element vid 300 MHz = ~40 cm arraydiameter) kan Fischer 26 med sitt 2,4 m vingspann bära en reducerad 2-elements CRPA. Två element ger en enda nollpunkt — tillräckligt för att hantera en riktad störare. Vikt: 120 g inklusive styrelektronik. Placering: under vingarna med 60 cm separation.
För fordonsmonterade tillämpningar kan C-UAS-fordonspaketen (se kluster 5) integrera CRPA-arrayer som en tilläggsmodul. RSP-72 mikroradarn delar redan antennapertur med MANET-kommunikationen — CRPA-arrayen adderar störningsresistens till den befintliga antennen utan extra monteringspunkter.
DIY 4-Element Patch Array (300 MHz)
Total arraykostnad: ~260 euro (komponentspecificerad, inte byggd). TEORETISKT nolldjup: ~25 dB vid 10° off-axis (beräknat från arrayteori, INTE uppmätt — ingen prototyp byggd). Föreslagen konstruktion: koppartryckt kretskort med 4 patchelement, AD9361 SDR front-end, Zynq FPGA för viktberäkning i realtid. Arkitekturen publiceras under CC BY-SA 4.0 men utan tillverkningsdokumentation eller SPICE-simuleringar eftersom ingen prototyp tillverkats.
← Del av Fhss Implementation
External source: Antenn – Wikipedia
Implementering
# pip install numpy
# CRPA Null Steering — Adaptive Beamforming
import numpy as np
def crpa_weights(n_elements, jammer_angle_deg, signal_angle_deg, freq_mhz):
"""Calculate CRPA element weights to null jammer direction."""
wavelength = 300 / freq_mhz # meters
d = wavelength / 2 # Element spacing (half-wavelength)
angles = np.array([jammer_angle_deg, signal_angle_deg])
angles_rad = np.radians(angles)
# Steering vectors
k = 2 * np.pi / wavelength
A = np.zeros((n_elements, len(angles)), dtype=complex)
for i in range(n_elements):
for j, angle in enumerate(angles_rad):
A[i, j] = np.exp(1j * k * i * d * np.sin(angle))
# Null jammer, maximize signal
# Constraint: w^H * a_jammer = 0, w^H * a_signal = 1
a_jam = A[:, 0]
a_sig = A[:, 1]
# MVDR beamformer (simplified)
R = np.outer(a_jam, a_jam.conj()) * 1000 + np.eye(n_elements) # Jammer covariance
R_inv = np.linalg.inv(R)
w = R_inv @ a_sig / (a_sig.conj() @ R_inv @ a_sig)
# Null depth
null_db = 20 * np.log10(abs(w.conj() @ a_jam) + 1e-10)
gain_db = 20 * np.log10(abs(w.conj() @ a_sig))
return {"weights": w, "null_depth_db": null_db, "signal_gain_db": gain_db}
# 4-element CRPA at 300 MHz, jammer at 45°, signal at 0°
result = crpa_weights(4, 45, 0, 300)
print(f"Null depth: {result['null_depth_db']:.0f} dB (target: -25 dB)")
print(f"Signal gain: {result['signal_gain_db']:.1f} dB")
Svensk leveranskedja
SUPPLY CHAIN & SECURITY RISK
Relaterade kapitel
Källor
Se de kategoriserade källsektionerna tidigare på denna sida för specifika referenser som stöder varje påstående. Tekniska baslinjer: ArduPilot utvecklardokumentation; ExpressLRS hårdvarudokumentation; NATO STANAG 4609 Ed. 4, 4671 och 2022; Watling & Reynolds, "Meatgrinder", RUSI (2023); ISW-arkiv på understandingwar.org. FSG-A har ingen egen operativ erfarenhet.