Tantangan Pemrosesan Sinyal pada Radar Bistatik Oportunistik

Radar bistatik oportunistik memanfaatkan transmisi non-kooperatif dari konstelasi satelit LEO (seperti Starlink atau OneWeb) sebagai iluminator sasaran (illuminator of opportunity). Sistem penerima pasif berbasis Software Defined Radio (SDR) menangkap dua jalur sinyal: kanal referensi langsung dari satelit (direct path) dan kanal pantulan target (scattered path). Masalah inti dalam perancangan sistem ini terletak pada alokasi beban kerja pemrosesan sinyal digital (DSP): apakah data raw In-phase/Quadrature (IQ) harus dialirkan langsung ke central cloud, atau diekstrak secara lokal di node penerima (edge)?

Karakteristik Volume Data Raw IQ

Aliran sampel mentah IQ menghasilkan volume data masif yang kontinu. Sebuah SDR dual-channel dengan laju sampel 20 MSPS (Mega Samples Per Second) dan kedalaman kuantisasi 16-bit kompleks (16-bit I + 16-bit Q = 4 byte/sampel) menghasilkan beban throughput:

Throughput = 2 channel * 20.000.000 sampel/detik * 4 byte/sampel = 160 MB/s (1,28 Gbps)

Volume data ini setara dengan 576 GB per jam. Upaya streaming berkelanjutan ke infrastruktur cloud publik menghadapi batasan keandalan jaringan seluler/satelit di lokasi terpencil, serta biaya transmisi data yang tidak realistis untuk operasi jangka panjang.

Perbandingan Arsitektur: Edge DSP vs Central Cloud

Memilih antara Edge DSP dan Central Cloud memerlukan evaluasi parameter operasional kritis berikut:

  • Kebutuhan Bandwidth & Biaya Egress: Cloud streaming memerlukan kapasitas uplink gigabit per detik tanpa henti. Edge DSP memangkas kebutuhan bandwidth hingga lebih dari 99% karena node hanya mentransmisikan metadata deteksi berukuran kilobyte (Doppler shift, Range-Doppler Map peak, sudut ketibaan/DoA, dan timestamp).
  • Latensi Deteksi: Edge DSP mengeksekusi Cross-Ambiguity Function (CAF) lokal dengan bounded latency dalam rentang sub-detik. Pendekatan central cloud menambahkan latensi ingress buffer, jitter jaringan, dan queue processing yang dapat menunda deteksi objek berkecepatan tinggi.
  • Beban Pemeliharaan & Fleksibilitas: Central cloud unggul dalam fleksibilitas algoritma. Eksperimen filtering, deteksi multi-satelit, dan retraining model machine learning dapat dilakukan tanpa pembaruan firmware (OTA) ke node terdistribusi. Node edge menuntut pemeliharaan hardware akselerator (GPU/FPGA industri), manajemen suhu, dan pipeline orkestrasi edge yang lebih kompleks.

Analisis Kuantitatif Trade-off

MetrikEdge DSP (Embedded GPU/FPGA)Central Cloud Streaming
Volume Data Keluar~10 KB - 500 KB per detik (Deteksi vektor)160 MB per detik (Raw IQ kontinu)
Latensi End-to-EndRendah (< 200 ms via lokal CAF)Bervariasi (500 ms - beberapa detik)
Kebutuhan UplinkKonektivitas rendah (LTE / Narrowband)Koneksi dedicated serat optik / Microwave
Kebutuhan Komputasi EdgeTinggi (SBC + FPGA/NVIDIA Jetson)Minimal (SDR receiver + host mini-PC)
Upgrade AlgoritmaPerlu OTA update & flash firmware edgeTerkonsentrasi di cluster cloud backend

Implementasi Pipeline Ekstraksi Fitur di Edge

Untuk meminimalkan beban jaringan, node edge memproses Cross-Ambiguity Function (CAF) menggunakan FFT correlation 2D, lalu menerapkan Constant False Alarm Rate (CFAR) detector untuk mengekstrak titik koordinat target (bistatic range dan Doppler shift) sebelum data dikirimkan.

import numpy as np

def extract_bistatic_detections(ref_channel: np.ndarray, 
                               surv_channel: np.ndarray, 
                               sample_rate: float, 
                               doppler_bins: np.ndarray, 
                               cfar_threshold_factor: float) -> list[dict]:
    """
    Ekstraksi Doppler dan bistatic delay lokal di node edge.
    Menghindari transfer raw IQ dengan hanya mengembalikan koordinat deteksi.
    """
    # 1. Matched Filtering / Fast Convolution pada domain frekuensi
    n_samples = len(ref_channel)
    ref_fft = np.fft.fft(ref_channel)
    surv_fft = np.fft.fft(surv_channel)
    
    # 2. Cross-Ambiguity Function (CAF) via Range-Doppler Matrix
    rd_map = np.zeros((len(doppler_bins), n_samples), dtype=np.float32)
    time_vec = np.arange(n_samples) / sample_rate
    
    for idx, fd in enumerate(doppler_bins):
        # Koreksi pergeseran frekuensi Doppler pada kanal referensi
        doppler_carrier = np.exp(-1j * 2 * np.pi * fd * time_vec)
        shifted_ref = np.fft.fft(ref_channel * doppler_carrier)
        # Korelasi silang (cross-correlation)
        cross_corr = np.fft.ifft(surv_fft * np.conj(shifted_ref))
        rd_map[idx, :] = np.abs(cross_corr) ** 2

    # 3. Cell-Averaging CFAR (CA-CFAR) 1D sederhana sepanjang dimensi delay
    detections = []
    noise_guard_cells = 4
    training_cells = 16
    half_window = noise_guard_cells + training_cells
    
    for d_idx, fd in enumerate(doppler_bins):
        power_profile = rd_map[d_idx, :]
        for r_idx in range(half_window, n_samples - half_window):
            val = power_profile[r_idx]
            
            # Estimasi noise dari training window (exclude guard cells)
            left_train = power_profile[r_idx - half_window : r_idx - noise_guard_cells]
            right_train = power_profile[r_idx + noise_guard_cells + 1 : r_idx + half_window + 1]
            noise_est = np.mean(np.concatenate((left_train, right_train)))
            
            if val > (noise_est * cfar_threshold_factor):
                detections.append({
                    "delay_samples": int(r_idx),
                    "bistatic_range_m": float((r_idx / sample_rate) * 299792458.0),
                    "doppler_hz": float(fd),
                    "snr_linear": float(val / noise_est)
                })
                
    return detections

# ponytail: CA-CFAR 1D naive implementation; replace with 2D OS-CFAR on GPU if dense targets exist.

Rekomendasi Deployment

Berdasarkan trade-off teknis, pola deployment dibagi menjadi dua skenario utama:

  1. Skenario Edge DSP Penuh (Remote / Multi-site): Terapkan saat node penerima berada di area terpencil dengan koneksi seluler LTE atau satelit terbatas. Gunakan akselerasi berbasis CUDA (NVIDIA Jetson Orin) atau FPGA untuk menjalankan kanal CAF real-time. Kirim hanya format terstruktur (JSON/Protobuf) berisi timestamp UTC, DoA, dan Doppler vector ke central cloud untuk agregasi multi-statis.
  2. Skenario Central Cloud (Prototyping / Riset Terpusat): Terapkan jika node penerima memiliki akses direct fiber optics (10 Gbps) ke pusat data lokal, atau untuk eksperimen kalibrasi awal di mana algoritma pencarian sinyal Starlink (misalnya estimasi sinkronisasi frame OFDM non-kooperatif) belum stabil dan membutuhkan evaluasi raw waveform berulang kali.
Sistem operasional radar bistatik skala besar memerlukan pendekatan hibrida: eksekusi matched-filter dan CFAR secara lokal di edge untuk mengurangi ukuran payload, dengan fasilitas ring buffer raw IQ di memori lokal edge yang hanya diunggah ke cloud ketika anomali atau target bernilai tinggi terkonfirmasi.