Shazam e la Vespa velutina. Dall'analogico al digitale?

Daniele Besomi e Danilo Soldati

Associazione per il Rispetto e la Conoscenza delle Api

 

L’intuizione alla base di questo scritto nasce da un articolo[1] con una spiegazione tecnica del funzionamento di Shazam, una diffusa applicazione per smartphones e altri dispositivi in grado di riconoscere in pochi secondi musica, filmati e altri spezzoni audio captati dal microfono del telefono. Semplificando all’osso, Shazam cerca dei punti significativi nello spettrogramma del brano, li confronta con il suo database, e identifica accuratamente il brano in questione anche in presenza di un intenso rumore di fondo. La conclusione dell’articolo è quanto ha fatto rizzare le orecchie: “La robustezza non sta nella potenza del segnale. Sta nella struttura”.

Cosa c’entra con la Vespa velutina? Riconoscere un segnale debole in mezzo a un rumore forte è il problema dei cercatori di vespe con la telemetria. Una vespa viene liberata dopo l’applicazione di una trasmittente, e viene seguita fino al nido tramite delle riceventi. Il segnale è debole perché la trasmittente deve essere leggera per poter essere trasportata dalla vespa, il che limita la potenza del trasmettitore e la durata della batteria. Il rumore di fondo dello spettro radio, specialmente in contesto urbano, a lunghe distanze è invece relativamente forte, e oltre una certa distanza il rapporto tra potenza del segnale e del rumore cade al di sotto del limite dell’udibile.

Nel contesto analogico del radiotracciamento il problema è contenibile solo in una certa misura: si possono impiegare dei filtri a banda passante che tagliano parte delle frequenze indesiderate, oppure si possono applicare degli attenuatori per ridurre l’intensità del rumore, ma al prezzo di perdere anche parte del segnale; questa tecnica può essere utilizzata quando ci si avvicina al target.

E se si cambiasse approccio, trovando un trucco per isolare il segnale dal rumore? Dopotutto, il segnale di una trasmittente per la caccia alle vespe è molto semplice: un beep ogni secondo, più forte in vicinanza dell’obiettivo e più debole quanto più si è lontani. Trovare questa struttura (nota in anticipo) in un rumore non strutturato è certamente meno difficile che non trovare una canzone tra decine di milioni nel database di Shazam.

Abbiamo esplorato questa intuizione iniziale con l’aiuto dell’intelligenza artificiale di Gemini, a cui inizialmente abbiamo chiesto se l’approccio di Shazam fosse applicabile al problema del tracciamento della vespa. La risposta è che lo è, ma una volta elaborati i dettagli pratici risulta che l’approccio specifico di Shazam ha dei limiti per il lavoro sul campo, legati al fatto che richiede comunque il suo tempo per identificare il segnale, mentre noi dobbiamo ruotare l’antenna con una certa velocità ed avere dei riscontri in tempo reale per inseguire una vespa in movimento. Tuttavia, l’idea di digitalizzare il segnale conserva il suo senso.

In primo luogo, il segnale digitale può essere espresso in forma grafica, e per la nostra configurazione anatomica è più facile percepire un segnale visivo rispetto ad un segnale acustico.

In secondo luogo, mentre in ambito analogico è più conveniente attenuare il segnale e il rumore che non amplificarli, in ambito digitale ha invece senso amplificare il tutto. Il rumore di fondo si presenta infatti come una nebbia (ricordate la fine trasmissioni delle stazioni televisive di qualche anno fa?), più o meno fitta a seconda dell’intensità del rumore. Ma un segnale luminoso di struttura costante diventa riconoscibile anche in un mare di rumore persino più inteso del segnale stesso (questo è l’effetto Shazam).

In terzo luogo, esistono vari metodi per accentuare il segnale rispetto al rumore: per esempio, si può aumentare la persistenza del segnale, trasformandolo in una ben visibile linea continua in mezzo a una cascata di rumore indistinto, oppure mantenere i picchi di segnale per poter effettuare dei confronti tra le diverse posizioni dell’antenna.

Quarto, è anche possibile ridurre di parecchio il rumore, impiegando un approccio da radiotelescopisti. Questi hanno il medesimo problema dei cacciatori di vespe: cogliere un segnale debole rispetto al rumore dell’insieme di tutti i corpi celesti. Il nostro rumore è essenzialmente un ‘rumore bianco’, distribuito casualmente in tutte le frequenze (di nuovo, la fine trasmissioni delle stazioni televisive di una volta). La caratteristica statistica di questo rumore è che il suo valore medio nel tempo è = 0. Questo significa che lo si può far scomparire (o comunque ridurre di parecchio) semplicemente calcolando il valore medio su qualche secondo di quanto recepito dall’antenna: il rumore scompare, e resta il segnale, indipendentemente dalla potenza del rumore iniziale.

E in termini pratici?

Esistono dei software open source per accedere a segnali radio digitalizzati: si chiamano SDR, per Software Defined Radio, disponibili per diverse piattaforme. Tra le migliori SDR#, per Windows e Linux, mentre su mac si può usare il multipiattaforma SDR++. Il segnale, tramite l’antenna, viene catturato e convertito digitalmente da chiavi USB del tipo RTL-SDR (a basso costo, sui 30$).

Tramite questa strumentazione è possibile trasformare il bip – bip acustico in onde sonore che si sovrappngono alle onde del rumore di fondo, che si possono visualizzare sia come onde in un grafico che mostra l’ampiezza in base alla frequenza, sia come una cascata che rappresenta le frequenze (asse orizzontale) rilevate nel tempo (asse verticale) con una scala di colori per riportare l’ampiezza delle onde. Quest’ultima visualizzazione è di fatto uno storico del segnale ricevuto tra l’istante in corso e qualche secondo nel passato. Questo aiuta a riconoscere visivamente la presenza di una strutturazione del segnale.

Illustriamo questa rappresentazione tramite qualche video. Il primo mostra un primo tentativo di captare il segnale della trasmittente di prova (T.kali della Plecotus, analogo a quello montato sulle vespe eccetto per le batterie a lunga durata e sostituibili).

La parte alta della schermata mostra il segnale che emerge periodicamente dal mare del rumore di fondo. La parte bassa della schermata mostra la cascata con la nebbiolina corrispondente al rumore e il segnale che emerge ben visibile. Naturamente questa rappresentazione non è ancora molto soddisfacente. Qualche tentativo di regolare i parametri ha portato a questo risultato in campo:

Qui una valutazione della capacità di ricezione sulla lunga distanza (la trasmittente era a vista vicino al monastero che si vede nel finale del video:

Anche solo con le regolazioni più semplici presenti di default nel programma è possibile migliorare di parecchio la situazione.

Il grafico con le onde ha due coordinate: la fequenza e l’ampiezza; entrambe possono essere aggiustate. In primo luogo è possibile concentrarsi sulle frequenze vicine al bip del segnale ignorando quelle più lontane, cioè in pratica restringendo il campo di rappresentazione, fino ad includere solamente l’onda che rappresenta il bip. Questo comincia a occultare, sul grafico, il rumore che proviene da frequenze più lontane: non ci interessa assolutamente e dà solo fastidio. Corrispondentemente, ciò rende più visibile (in quanto più grande), la parte di segnale visibile nella cascata.

In secondo luogo, si possono restringere i campi di ampiezza a quanto interessa. Se, per esempio, il rumore di fondo ha un’ampiezza di -60db mentre il segnale arriva a -30 db, restringendo l’asse verticale del grafico tra -30 e -60db si taglia matematicamente il rumore e si vede solo il segnale. Si noti che in analogico questa operazione non avrebbe alcun senso: il rumore percepito consiste nella somma di molti piccoli rumori (ciascuno fino a -60db) che nel complesso sono molto fastidiosi e possono occultare il segnale, che è più forte ma su una frequenza ristretta (si pensi a qualcuno che cerca di tenere un discorso in una sala in cui i presenti parlottano tra loro abassa voce: il conferenziere, seppure parli ad un volume più alto di ciascun membro del pubblici, risulta inudibile). In digitale, invece, tagliando i rumori al di sotto di -60db li eliminiamo tutti e manteniamo solo il segnale, con un notevole miglioramento del rapporto tra segnale e rumore.

Per questi primi risultati si modifica unicamente il fuoco del grafico. Ci sono poi altre manovre un po’ più complicate che portano beneficio. Una consiste nel filtrare la banda in considerazione in un piccolo intorno del segnale. Non è questione di visualizzazione (quello che non si vede è comunque presente), ma un vero e proprio taglio (matematico) delle frequenze al di sopra e al di sotto del desiderato.

La seconda manovra è quella della media di cui si parlava in precedenza. La chiave RTL-SDR raccoglie un dato ogni mezzo milionesimo di secondo. I grafici che abbiamo descritto risultano da questa massa enorme di dati, in forma di onde che oscillano incessantemente (il rumore) o per una frazione di secondo (il segnale). È possibile (tramite un plugin per SDR# o il comando “decimate” per SDR++) rappresentare, anziché i dati grezzi, una media su un numero (specificabile) di dati consecutivi. Il valore medio del rumore si abbassa drasticamente, perché le oscillazioni verso l’alto sono (in buona parte) compensate da oscillazioni verso il basso. Anche il valore del segnale diminuisce, ma essendo sistematico diminuisce molto meno di quanto non faccia il rumore. Il rapporto segnale/rumore migliora, anche di parecchio se la media è presa su diversi dati.

Il video successivo mostra qualche manipolazione nel senso appena indicato per migliorare la percezione di un segnale debole facendolo emergere dal rumore, grazie alla possibilità, data dal digitale, di effettuare operazioni matematiche (regolate da cursori o da parametri specifici) che permettono di ridurre il rumore e far emergere la struttura del segnale che ci interessa (con un o’ di abilità, ancora da acquisire, si può fare nettamete meglio, come ostreremo in prossimi video). Possono anche essere captate la seconda, la terza e la quarta armonica, che escono dal confine delle apparecchiature radio dedicate al tracciamento ma permettono ricerche molto più accurate a breve distanza usando leloro antenne specifiche.

Conclusione (molto provvisoria)

L’ovvio limite di questo approccio, così come illustrato, è nella difficoltà di operare sul campo. Può essere impiegato nel controllo di un drone, ma difficilmente si può correre su un terreno accidentato con un computer portatile. SDR# può essere usato su smartphone o tablet Android, ma ha richieste energetiche esorbitanti che esauriscono presto le batterie. Una via che vogliamo esplorare è quella di una strumentazione dedicata — una micro-console con ricevitore SDR, ma immaginiamo che ce ne possano anche essere altre.

Eventuali imput e collaborazioni (anche perché siamo vicini al limite delle nostre capacità tecniche) sono benvenuti, tramite il forum o scrivendo a dbesomi [at] bluewin.ch

 

Note

[1] L’impronta nel rumore, in SignalPirate, https://pinperepette.github.io/signal.pirate/articoli/shazam-sotto-il-cofano.html

[2] La conversazione è leggibile qui

Accedi per commentare