Il radar digitale: campionamento diretto in RF, conversione in banda base, formazione digitale dei fasci, Capon, radar cognitivo
Il sottocampionamento nelle zone di Nyquist, la quantizzazione e il jitter, la conversione digitale in banda base, la formazione digitale dei fasci e il metodo di Capon dimostrato che separa due sorgenti più vicine del fascio, MIMO, radar cognitivo e apprendimento automatico.
Per decenni un radar è stato in gran parte hardware analogico: oscillatori, mixer, filtri a frequenza intermedia, rivelatori, sfasatori. Oggi il convertitore analogico-digitale si è avvicinato all’antenna fino quasi a toccarla, e quasi tutto quello che le lezioni precedenti hanno descritto (compressione d’impulso, Doppler, CFAR, formazione dei fasci, inseguimento) è software. Questa lezione descrive il radar digitale moderno: il campionamento diretto in radiofrequenza, la conversione digitale in banda base, la formazione digitale dei fasci e le stime ad alta risoluzione, i radar MIMO, il radar cognitivo e l’uso dell’apprendimento automatico. Il codice campiona un segnale a 3,21 GHz con un convertitore a 2,4 GS/s, lo porta in banda base, e separa due sorgenti più vicine della larghezza del fascio.
L’idea in parole semplici
Un tempo un radar era un armadio di circuiti, ognuno con un compito fisso: filtrare, convertire, rivelare. Oggi il segnale viene trasformato in numeri appena esce dall’antenna, e tutto il resto lo fa un calcolatore. È la stessa evoluzione delle radio, diventate smartphone: lo stesso hardware, con programmi diversi, fa cose diverse. Per il radar questo significa formare molti fasci contemporaneamente, cambiare forma d’onda a ogni impulso, adattarsi all’ambiente e usare l’intelligenza artificiale per riconoscere i bersagli.
Dal ricevitore supereterodina al campionamento diretto
Il ricevitore classico è una supereterodina: il segnale a radiofrequenza viene amplificato, convertito a una frequenza intermedia fissa con un oscillatore locale, filtrato, e infine rivelato; nei radar coerenti si estraggono in analogico le componenti in fase e in quadratura (I e Q). Ogni stadio introduce errori: sbilanciamento tra I e Q, derive termiche, prodotti spuri dei mixer.
Il convertitore campiona in un punto sempre più vicino all’antenna:
- campionamento a frequenza intermedia: un solo mixer, poi il convertitore; I e Q si ottengono numericamente, senza sbilanciamenti;
- campionamento diretto in RF: con convertitori da alcuni GS/s (miliardi di campioni al secondo) e banda analogica d’ingresso di diversi GHz, il segnale in banda L, S e anche C viene campionato direttamente, senza mixer.
Il campionamento diretto sfrutta il sottocampionamento (campionamento passa-banda): un segnale a frequenza
più alta di
compare, dopo il campionamento, a
con
intero. Non è un errore se il segnale occupa una sola zona di Nyquist (gli intervalli larghi
) e un filtro analogico elimina le altre. Con
GS/s, un segnale a 3,21 GHz è nella terza zona (da 2,4 a 3,6 GHz) e compare a 0,81 GHz.
La quantizzazione. Un convertitore ideale a
bit, con una sinusoide a fondo scala, ha un rapporto segnale/rumore di quantizzazione
![]()
(il passo di quantizzazione
dà un errore uniforme di potenza
, e la sinusoide di ampiezza
ha potenza
; il rapporto è
). A 12 bit fa 74 dB. I convertitori reali hanno un numero di bit effettivi (ENOB) più basso, per il rumore e la non linearità e soprattutto per il jitter dell’orologio: un errore di tempo
su un segnale a frequenza
limita il rapporto a
, quindi a 3 GHz servono orologi con jitter di decine di femtosecondi. Per questo il campionamento diretto nelle bande più alte è recente.
La conversione digitale in banda base (DDC, digital down-conversion): il segnale campionato viene moltiplicato per un oscillatore numerico
(NCO) che lo porta a frequenza zero, poi filtrato e decimato (si tiene un campione ogni
), perché la banda utile è molto più stretta di
. Il risultato sono i campioni complessi I e Q a bassa velocità, su cui lavorano gli algoritmi delle lezioni precedenti. Nel codice, decimando per 16, si passa da 2,4 GS/s a 150 MS/s e la fase del segnale (0,300 rad) viene misurata esattamente.

La formazione digitale dei fasci
In una schiera a scansione elettronica analogica (lezione sulle schiere di fase) gli sfasatori formano un fascio alla volta. Se invece ogni elemento (o ogni sottoschiera) ha il proprio ricevitore e convertitore, i segnali di tutti gli elementi arrivano al calcolatore, e i fasci si formano dopo, numericamente:
, con
il vettore dei campioni degli
elementi e
il vettore di puntamento,
.
Le conseguenze sono profonde:
- molti fasci simultanei dagli stessi dati: il radar ascolta in tutte le direzioni insieme, trasmettendo un fascio largo e ricevendo con tanti fasci stretti;
- annullamento adattativo dei disturbatori (lezione sul clutter) e cancellazione del clutter spazio-temporale (STAP), che richiedono l’accesso ai segnali dei singoli elementi;
- stime ad alta risoluzione della direzione, oltre il limite della larghezza del fascio.
Il fascio classico ha risoluzione angolare limitata dall’apertura: per 16 elementi a
, circa
radianti, cioè 6,3°. Due sorgenti a 10° e 14° cadono nello stesso fascio e si vedono come un solo picco. Il metodo di Capon (MVDR, minimum variance distortionless response) calcola per ogni direzione i pesi che lasciano passare senza distorsione la direzione
e minimizzano la potenza totale in uscita:
![Rendered by QuickLaTeX.com \[ \min_{\mathbf{w}}\ \mathbf{w}^H\mathbf{R}\mathbf{w}\quad\text{con}\quad \mathbf{w}^H\mathbf{a}(\theta) = 1\ \Longrightarrow\ \mathbf{w} = \frac{\mathbf{R}^{-1}\mathbf{a}}{\mathbf{a}^H\mathbf{R}^{-1}\mathbf{a}},\qquad P(\theta) = \frac{1}{\mathbf{a}^H(\theta)\mathbf{R}^{-1}\mathbf{a}(\theta)} \]](https://www.electronics-engineering.com/wp-content/ql-cache/quicklatex.com-85777960392998e56a9cb078273f5a2a_l3.png)
dove
è la matrice di covarianza dei segnali degli elementi, stimata dai dati. (La soluzione si ricava con i moltiplicatori di Lagrange: il gradiente di
si annulla per
, e il vincolo fissa
.) Quando punta su
, Capon mette automaticamente degli zeri sulle sorgenti vicine, e i due picchi si separano. Nella simulazione (200 istantanee, 10 dB di rapporto segnale/rumore per elemento), il fascio classico mostra un solo picco a 11,9°, mentre Capon trova 10,1° e 14,0° con un avvallamento di 5,4 dB tra i due. Altri metodi della stessa famiglia, come MUSIC ed ESPRIT, sfruttano la struttura degli autovettori di
(sottospazio del segnale e del rumore). Il prezzo è la necessità di molte istantanee e la sensibilità agli errori di calibrazione della schiera.

Radar MIMO
Nei radar MIMO (lezione sui radar FMCW) ogni trasmettitore emette una forma d’onda distinguibile (ortogonale nel tempo, in frequenza o con codici), e ogni ricevitore separa i contributi dei diversi trasmettitori. Con
trasmettitori e
ricevitori si ottiene una schiera virtuale di
elementi, le cui posizioni sono le somme delle posizioni di trasmettitori e ricevitori: con 3 trasmettitori e 4 ricevitori opportunamente distanziati, 12 elementi virtuali in fila. La risoluzione angolare è quella dell’apertura virtuale, con soli 7 canali fisici. I radar automobilistici di ultima generazione (“radar 4D”, con la misura anche dell’elevazione) arrivano a centinaia di canali virtuali con più chip in cascata.
Il radar cognitivo e software-defined
Se tutto è software, anche la forma d’onda può cambiare da un impulso all’altro. Un radar definito dal software usa hardware generico (convertitori veloci, FPGA, processori grafici) e carica funzioni diverse: sorveglianza, inseguimento, mappatura, perfino comunicazione. Il passo successivo è il radar cognitivo, che chiude il ciclo tra ricezione e trasmissione:
- sceglie la forma d’onda in base all’ambiente: frequenze libere da interferenze, banda maggiore dove serve risoluzione, impulsi più lunghi per i bersagli lontani;
- gestisce le risorse (il tempo del radar): visite più frequenti ai bersagli che manovrano, meno a quelli prevedibili, ricerca nelle zone più probabili;
- condivide lo spettro con le comunicazioni (il 5G e il radar usano bande vicine o comuni), anche con forme d’onda che svolgono insieme le due funzioni (ISAC, integrated sensing and communication, prevista nel 6G).
L’apprendimento automatico nel radar
Le reti neurali (corso di Machine Learning) entrano a tutti i livelli della catena:
- classificazione dei bersagli dal micro-Doppler (lezione dagli scan points agli oggetti): pedoni, ciclisti, droni, uccelli hanno firme Doppler-tempo diverse, che una rete convoluzionale riconosce come immagini;
- rivelazione: reti che lavorano direttamente sulla mappa distanza-Doppler o sulle nuvole di punti e sostituiscono o affiancano CFAR e raggruppamento;
- riconoscimento delle forme d’onda nei ricevitori di guerra elettronica;
- gestione delle risorse con l’apprendimento per rinforzo (corso di Reinforcement Learning): l’agente decide dove e come puntare il radar e viene premiato dalla qualità dell’inseguimento;
- fusione con telecamere e lidar nei veicoli autonomi.
I limiti sono quelli noti: servono molti dati etichettati (spesso generati con simulatori), le reti possono sbagliare in modo imprevedibile fuori dalle condizioni di addestramento, e nelle applicazioni di sicurezza (automotive, aviazione) bisogna dimostrare l’affidabilità. Per questo gli algoritmi classici, con le loro garanzie (probabilità di falso allarme costante, filtri di Kalman), restano lo scheletro, e l’apprendimento automatico si aggiunge dove i modelli sono troppo complicati da scrivere a mano.
In sintesi
- Il convertitore si è avvicinato all’antenna: campionamento diretto in RF con sottocampionamento nelle zone di Nyquist, poi conversione digitale in banda base (NCO, filtro, decimazione).
- La dinamica del convertitore (6,02N + 1,76 dB) e il jitter dell’orologio limitano le prestazioni.
- La formazione digitale dei fasci dà molti fasci insieme, annullamento adattativo e stime ad alta risoluzione (Capon, MUSIC) oltre la larghezza del fascio.
- MIMO, radar definiti dal software e cognitivi adattano forma d’onda e risorse all’ambiente.
- L’apprendimento automatico aiuta in classificazione, rivelazione e gestione delle risorse, affiancando gli algoritmi classici.
Il codice
import numpy as np
rng = np.random.default_rng(0)
# 1) campionamento diretto in RF: un segnale a 3,21 GHz campionato a 2,4 GS/s (terza zona di Nyquist)
fs, f0 = 2.4e9, 3.21e9
zona = int(f0 // (fs / 2)) + 1
alias = abs(f0 - round(f0 / fs) * fs)
print(f"segnale a {f0 / 1e9:.2f} GHz, fs = {fs / 1e9:.1f} GS/s: zona di Nyquist {zona}, compare a {alias / 1e9:.2f} GHz")
n = np.arange(8192)
bit = 12
x = 0.9 * np.cos(2 * np.pi * f0 * n / fs + 0.3) + rng.normal(0, 1e-4, len(n))
xq = np.round(x * 2 ** (bit - 1)) / 2 ** (bit - 1) # convertitore a 12 bit
spettro = np.abs(np.fft.rfft(xq * np.hanning(len(n))))
picco = np.argmax(spettro) * fs / len(n)
err = xq - x
snr = 10 * np.log10(np.mean((0.9 * np.cos(2 * np.pi * f0 * n / fs + 0.3)) ** 2) / np.mean(err ** 2))
print(f"picco della FFT a {picco / 1e9:.3f} GHz; SNR di quantizzazione {snr:.1f} dB (teoria 6,02 N + 1,76 + 20 log 0,9 = {6.02 * bit + 1.76 + 20 * np.log10(0.9):.1f} dB)")
# conversione digitale in banda base: oscillatore numerico (NCO), filtro e decimazione per 16
nco = np.exp(-2j * np.pi * alias * n / fs)
bb = xq * nco
h = np.hamming(129); h /= h.sum() # filtro passa-basso FIR
bb = np.convolve(bb, h, "same")[::16]
print(f"dopo la decimazione per 16: {len(bb)} campioni complessi a {fs / 16 / 1e6:.0f} MS/s, fase misurata {np.angle(np.mean(bb[10:-10])):.3f} rad (vera 0,300)")
# 2) formazione digitale dei fasci: 16 elementi a mezza lunghezza d'onda, due sorgenti a 10 e 14 gradi
N, d = 16, 0.5
ang = np.radians([10.0, 14.0])
vett = lambda th: np.exp(2j * np.pi * d * np.arange(N)[:, None] * np.sin(np.atleast_1d(th)))
K = 200 # istantanee
S = (rng.normal(size=(2, K)) + 1j * rng.normal(size=(2, K))) / np.sqrt(2)
rumore = (rng.normal(size=(N, K)) + 1j * rng.normal(size=(N, K))) / np.sqrt(2) * 10 ** (-10 / 20)
X = vett(ang) @ S + rumore # SNR 10 dB per elemento
Rxx = X @ X.conj().T / K
griglia = np.radians(np.linspace(-30, 30, 1201))
A = vett(griglia)
fascio = np.real(np.sum(A.conj() * (Rxx @ A), axis=0)) / N ** 2 # tutti i fasci insieme, dagli stessi dati
Ri = np.linalg.inv(Rxx)
capon = 1 / np.real(np.sum(A.conj() * (Ri @ A), axis=0)) # Capon (MVDR)
def picchi(p): # massimi locali entro 3 dB dal più alto
i = np.where((p[1:-1] > p[:-2]) & (p[1:-1] > p[2:]))[0] + 1
return np.degrees(griglia[i[p[i] > p.max() / 2]])
print(f"larghezza del fascio a -3 dB: {np.degrees(0.886 * 2 / N):.1f} gradi, sorgenti distanti 4 gradi")
for nome, p in (("fascio classico", fascio), ("Capon", capon)):
tra = p[(griglia > np.radians(10.5)) & (griglia < np.radians(13.5))].min()
print(f"{nome:15s}: picchi a {np.round(picchi(p), 1)} gradi, minimo tra le sorgenti {10 * np.log10(tra / p.max()):.1f} dB")L’esecuzione stampa la terza zona di Nyquist e il segnale a 0,81 GHz, 73,0 dB di rapporto segnale/rumore di quantizzazione (teoria 73,1 dB per un’ampiezza di 0,9 del fondo scala), 512 campioni complessi a 150 MS/s con la fase di 0,300 rad, un fascio di 6,3°, un solo picco a 11,9° per il fascio classico e i due picchi a 10,1° e 14,0° per Capon.




