SONAR-INFO-p38




L'INTERPOLAZIONE NUMERICA

SULLA PRECISIONE DI RILEVAMENTO SONAR


1) Premessa

In merito alla precisione di rilevamento sonar con i sistemi a fasci preformati riportiamo integralmente quanto scritto nell'introduzione del documento in pdf collegato a P3:

Ad una prima analisi del problema relativo alla determinazione del minimo numero di fasci preformati
necessari ad un sistema sonar, per la scoperta panoramica dei bersagli navali, verrebbe spontaneo
risolverlo ragionando nel modo seguente: se il sonar deve rivelare la presenza di più bersagli
contemporaneamente nell'arco dell'orizzonte, con un errore strumentale non superiore, ad esempio,
di 0.5° il sistema deve essere progettato con 360 fasci preformati, orientati grado dopo grado,
su tutti i 360.
In questo modo infatti qualsiasi bersaglio potrà essere rilevato con la precisione voluta, o perché
la sua direzione coincide con quella di un fascio (in questo caso non si avrà errore strumentale
di rilevamento), o perché la sua posizione angolare è comunque collocata tra due fasci
adiacenti (in questo caso l'errore massimo di rilevamento non potrà essere maggiore di 0.5°).
Questa semplice impostazione consentirebbe di raggiungere lo scopo prefissato, ma risulterebbe
inutilmente ridondante e troppo costosa. L'approccio corretto deve invece partire dal
presupposto che la caratteristica di direttività di una base idrofonica ricevente può essere
"ricostruita" per infinite direzioni dell' orizzonte "campionando" opportunamente lo spazio
subacqueo con tanti fasci preformati quanti sono i campioni richiesti secondo il criterio
di Nyquist.
In tal modo, interpolando tra i campioni, cioè tra i segnali rivelati in uscita dai singoli fasci,
si possono ottenere infinite caratteristiche di direttività artificiali comunque orientate in
tutto l'arco dell'orizzonte.

A seguito di quanto esposto e con l'ausilio delle matrici software illustrate su P36 iniziamo il percorso che ci condurrà alle modalità di impostazione e calcolo degli algoritmi di interpolazione numerica; .


2) Esame di una caratteristica di direttività

In figura 1 è riportata la curva di direttività già utilizzata in P36; questa è relativa ad un generico sistema idrofonico ricevente che impiega i metodi di correlazione:



L'asse delle ascisse, angolo di puntamento "a", si estende da   a1 = 310°   ad   a21 = 50°   ed è diviso ad intervalli di 5°; le ordinate, ampiezze k, sono tracciate a passi di 0.1, la sorgente del segnale è impostata per as = 32°; le tracce rosse servono per i successivi calcoli.
Come primo passo per giungere alle tecniche di interpolazione è necessario stabilire il minimo
numero di fasci da assegnare al sistema ricevente in dipendenza dell'errore di puntamento accettabile.
Seguendo i criteri esposti nel pdf collegato a P3 possiamo scrivere la seguente espressione che consente la determinazione, approssimata, del minimo numero di fasci preformati "n" in funzione del massimo errore ammesso:



I logaritmi indicati nella formula sono neperiani, le variabili appaiono con i simboli:
ko ; bo; err

*ko è ricavato dalla direttività di figura 1 nella quale, fissata a piacere l'ascissa
ao = 37.6°, si ha ko = 0.59 che caratterizza il profilo della curva.

*bo si calcola come differenza tra (ao) e l'ascissa del massimo (as) , in altre parole:
bo = ao - as = 37.6° - 32° = 5.6°.

*err è il valore massimo dell'errore

Procediamo ora al calcolo di n accettando un errore massimo err = 1.25°; il risultato è:
n = 32 fasci, per i 360° dell'orizzonte, distanti l'uno dall'altro di 11.25°.
Per praticità è conveniente fissare n = 36, con i fasci distanti di 10°, con questo piccolo incremento di n si "riduce" di poco anche l'errore.
Il settore angolare da esplorare è compreso tra 310° e 50°; in esso disponiamo 11 fasci, vedi figura 2, che, per comodità di calcolo degli sviluppi successivi (tra due fasci contigui saranno inseriti 8 fasci d'interpolazione), individuiamo con le sigle:

f1= 310°; f9=320°; f17=330°; f25=340°; f33=350°; f41=0°; f49=10°; f57=20°; f65=30°; f73=40°; f81=50°




L'aver stabilito il valore di n significa che 36 fasci, sui 360° dell'orizzonte, sono potenzialmente in grado di riprodurre la caratteristica di direttività con un errore massimo di 1.25° sulla sommità della curva.
Tale potenzialità si estrinseca soltanto se tra i 36 fasci è eseguita una corretta interpolazione.
In assenza d'interpolazione la presentazione video, in forma d'istogramma, è riportata in figura 3 ed è simile a quella di P36, essa non permette il puntamento con la precisione voluta .




3) Formazione della matrice dati

Per il prosieguo del lavoro, similmente a quanto illustrato in P36, si deve costruire la matrice dati con i valori delle ampiezze degli 11 fasci (fasci principali) individuati nel paragrafo 2).
Dal disegno di figura 3 possiamo ricavare facilmente la tabella relativa ai livelli normalizzati in uscita dai singoli fasci:

f1 = 310°   k1 = - .03
f9 = 320°   k9 = 0
f17 = 330°   k17 = .06
f25 = 340°   k25 = .02
f33 = 350°   k33 = -.1
f41 = 0°   k41 = .08
f49 = 10°   k49 = -.03
f57 = 20°   k57 = -.07
f65 = 30°   k65 = .93
f73 = 40°   k72 = .33
f81 = 50°   k72 = -.2

Le coppie di valori ricavate sono tradotte, in linguaggio Visual Basic, nella seguente matrice dati:

Dim Y(81) As Single

Y(1) = - .03
Y(9) = 0
Y(17) = .06
Y(25) = .02
Y(33) = -.1
Y(41) = .08
Y(49) = -.03
Y(57) = -.07
Y(65) = .93
Y(73) = .33
Y(81) = -.2

4)L'interpolazione lineare

Per interpolazione lineare s'intende la creazione, tra fasci principali contigui, di "fasci fittizi" che assumono valori intermedi proporzionali alle ampiezze dei fasci principali stessi, questa tecnica non consente rilevamenti precisi.
L'operazione citata trasforma la matrice Y(n) costruita nel paragrafo 3), con 11 valori, in una struttura a 81 valori.
Per la formazione della matrice a 81 valori è utile l'impiego della seguente routine in V.B. che permette di calcolarne rapidamente i valori anche nel caso di centinaia di fasci principali:

Dim Y(81) As Single
Private Sub Form_Click()
Y(1) = - .03
Y(9) = 0
Y(17) = .06
Y(25) = .02
Y(33) = -.1
Y(41) = .08
Y(49) = -.03
Y(57) = -.07
Y(65) = .93
Y(73) = .33
Y(81) = -.2

For N = 1 To 81 Step 8
Y(N + 1) = (Y(8 + N) - Y(N)) * (1 / 8) + Y(N)
Y(N + 2) = (Y(8 + N) - Y(N)) * (2 / 8) + Y(N)
Y(N + 3) = (Y(8 + N) - Y(N)) * (3 / 8) + Y(N)
Y(N + 4) = (Y(8 + N) - Y(N)) * (4 / 8) + Y(N)
Y(N + 5) = (Y(8 + N) - Y(N)) * (5 / 8) + Y(N)
Y(N + 6) = (Y(8 + N) - Y(N)) * (6 / 8) + Y(N)
Y(N + 7) = (Y(8 + N) - Y(N)) * (7 / 8) + Y(N)
Next N
End Sub

Per il controllo della nuova matrice, difficilmente tracciabile a mano, si è impostata una simulazione al P.C. e i risultati sono mostrati nell'istogramma di figura 4; in essa si osserva che la collimazione del massimo indica un rilevamento di 30° contro i 32° della direzione reale.
Questo tipo di interpolazione consente comunque, in generale, di collimare la sorgente acustica per la direzione più vicina a quella effettiva.
Per eseguire un rilevamento entro il limite di errore assunto nel par. 2) si deve interpolare secondo un processo più complesso così come illustrato nel paragrafo che segue.




5)L'interpolazione secondo la funzione Sen(x)/x

L'interpolazione via software, secondo la funzione Sen(x)/x, esegue la ricostruzione della direttività campionata in base ai dati contenuti nella matrice del paragrafo 3).
La funzione citata è "l'analogo" dell'interpolazione hardware eseguita con un filtro passa basso collegato all'uscita del serializzatore dei fasci prefomati.
Questo tipo di interpolazione genera una nuova serie di fasci che sostituiscono la matrice originale.
Nel caso in esame gli 11 fasci reali, definiti dalla matrice Y(1); Y(9); ...Y(81), sono sostituiti da una nuova matrice da 100 locazioni.
L'algoritmo d'interpolazione è ricavato dalla funzione classica per la ricostruzione dei segnali campionati:



La routine, commentata, che contiene la funzione di campionamento e tutti gli algoritmi accessori per la composizione della nuova matrice è la seguente:

' DICHIARAZIONE MATRICI
Dim y(100) As Single 'dichiarazione matrice originale
Dim g(100) As Single 'dichiarazione matrice con indici convertiti
Dim c(100) As Single 'dichiarazione matrice dati interpolati

' ROUTINE DI CALCOLO
Private Sub .......()'

'PULIZIA MATRICE DATI INTERPOLATI
For s = 0 To 100
c(s) = 0
Next

'CARICAMENTO MATRICE ORIGINALE
y(1) = -0.03
y(9) = 0
y(17) = 0.06
y(25) = 0.02
y(33) = -0.1
y(41) = 0.08
y(49) = -0.03
y(57) = -0.07
y(65) = 0.93
y(73) = 0.33
y(81) = -0.2

' GENERAZIONE MATRICE DI CONVERSIONE INDICI
'la matrice g(x) è la copia dell'originale ma con gli indici di posizione f1;f9;..
'sostituiti da valori angolari 0; 10°; 20°;.....

For f = 1 To 81 Step 8
n = f * (5 / 4) - 1.25
g(n) = y(f)
Next f

ROUTINE DI GENERAZIONE MATRICE DATI INTERPOLATI
'si osservi che ad alcune variabili e costanti sono state aggiunte code numeriche centesimali
'per evitare che nelle fasi di calcolo si abbiano divisioni per zero
For s = 0 To 100 Step 1
For n = 0 To 10
w = 3.14159265 * ((s / 10.001) - n)
c(s) = c(s) + g(10 * n) * (Sin(w) / (w + 0.00001))
Next n
Next s
End Sub

Per il controllo della nuova matrice si è impostata una simulazione al P.C. e i risultati sono mostrati nell'istogramma di figura 5; in essa si osserva che la collimazione del massimo indica un rilevamento di 31.25° contro i 32° della direzione reale, pari ad un errore di 0.75°.
Il risultato mostra che lo scopo prefissato è stato raggiunto; la sorgente acustica è stata rilevata con un errore inferiore ai 1.25°.





Concludiamo questa pagina ricordando che i dati ottenuti sono teorici e non tengono conto di tutte le variabili fisiche che invece sono presenti, sia nell'elettronica di elaborazione dati, sia nel mezzo di trasmissione delle onde acustiche, il mare.









Home

Stampa immagine grafica o descrizione testuale