Matrici di correlazione
Le matrici di correlazione sono la soluzione via software dei processi per la ricerca della coerenza tra segnali a due stati.
L'impiego delle matrici, tramite la loro interrogazione, si rivela il metodo molto più veloce che non il richiamo di una subroutine che svolga, al momento, tutto l'iter di calcolo richiesto per la correlazione a due stati da svolgere su un considerevole numero di coppie di segnali idrofonici.
Le citate soluzioni sono state alla base dello studio del Sonar di emergenza FALCON attraverso il quale si sono elaborati a mezzo P.C. gruppi di 8 segnali generati da basi idrofoniche circolari mediante matrici di correlazione a 8 bit.
Selezione idrofoni della base circolare
modificaPer la formazione dei fasci preformati FALCON si selezionano gruppi d'idrofoni simmetrici rispetto alla direzione di un fascio così come mostra la figura 1a:
Nel disegno sono indicate le quattro coppie d'idrofoni:
che individuano il fascio acustico indirizzato per °
- 1-18
- 2-17
- 3-16
- 4-15
collegate con il P.C. secondo figura 1b:
I fasci preformati da costruire sono 36, un fascio ogni ° ; per il fascio indirizzato per °, ad esempio, sono interessate le coppie:
- 1-2
- 18-3
- 17-4
- 16-5
I segnali delle 4 coppie, una volta limitati d'ampiezza, sono acquisiti dal P.C. per l'interrogazioni della matrice a 8 bit, in esso implementata, che restituisce il coefficiente di correlazione al software d'elaborazione per la costrizione dei 36 dei fasci preformati.
Cenno sulle matrici di correlazione a 8 bit
modificaSe i segnali di una base ricevente circolare, presi a gruppi di 8 idrofoni ( 4 coppie di sensori ), sono amplificati, filtrati, limitati in ampiezza a due stati possono essere inviati ad un P.C. che è in grado di leggere la sequenza dei segni , come un valore numerico in forma binaria, e ricavare da esso il corrispondente grado di correlazione C esistente tra le 4 coppie di tensioni idrofoniche.
Questo processo utilizza una matrice di correlazione a 8 bit, implementata nel P.C, mediante la quale si esegue la conversione immediata tra numero all'ingresso del P.C. stesso e il valore corrispondente della somma dei quattro valori di correlazione tra i segnali delle quattro coppie d'idrofoni simmetriche rispetto al centro della base. Un esempio della matrice ad 8 bit è di seguito mostrata sotto forma di tabella di riferimento e controllo:
Nella tabella si leggono le corrispondenze tra i numeri all'ingresso del P.C. e la somma dei quattro coefficienti di correlazione attribuibili alle quattro coppie di segnali idrofonici; se ad esempio il valore decimale del numero binario all'ingresso del P.C. è il valore della somma dei quattro coefficienti di correlazione sarà pari a
I valori di intermedi a quelli indicati in matrice vengono generati automaticamente dal software d'integrazione presente nella routine del FALCON, l'integrazione media tra i tempi di permanenza tra livelli e livelli .
L'uso della matrice unica a 8 bit richiede ben 36 operazioni di input da parte del P.C. con evidenti pesi dell'hardware d'acquisizione e notevole dispendio di tempo; l'alternativa per la minimizzazione dei tempi di acquisizione è l'impiego di matrici a 16 bit che richiedono soltanto 3 acquisizioni come sotto indicato:
La sequenza dei 3 input è individuabile secondo le lettere: X1; X2; X3 che introducono rispettivamente i segnali idrofonici limitati degli idrofoni:
- X1 = 11; 13; 15; 17; 19; 21; 23; 25.
- X2 = 27; 29; 31; 33; 35; 1; 3; 5.
- X3 = 7; 9; 11; 13; 15; 17; 19; 21
Il software per la costruzione della matrice a 8 bit
modificaIl software per la costruzione della matrice, sviluppato in VB, è sotto riportato e commentato:
Dim I8(256) As Integer 'dichiarazione dimensione matrice For x = 0 To 255 ' inizio anello di calcolo Y1 = x And 15 'si isolano i 4 bit msb di x Y2 = x And 240 'si isolano i 4 bit MSB di x y3 = Int(Y2 / 16)'si spostano i 4 bit MSB al posto di msb creando y3 ' si capovolge l'ordine dei bit di y3 per ottenere y4 y4 = Int((y3 And 1) * 8) + Int((y3 And 2) * 2) + Int((y3 And 4) / 2) + Int((y3 And 8) / 8) Y5 = Abs((Y1 Xor y4) - 15) ' si esegue EXOR tra y1 e y4 ' si sommano i quattro contributi di correlazione Y6 = (Y5 And 1) + ((Y5 And 2) / 2) + ((Y5 And 4) / 4) + ((Y5 And 8) / 8) I8(x) = Y6 'si carica la matrice I8 con i 256 valori del calcolo Next x 'chiusura del ciclo di calcolo
Se la matrice viene interrogata via software, ad esempio con le istruzioni:
C36 = I8(36) Print "C36 ="; C36
la stampa indicherà, in conformità alla tabella mostrata in precedenza,
C36 = 4
In modo analogo può essere interrogata tutta la matrice controllandola, con relativa semplicità, secondo la tabella di riferimento.
Il software per la costruzione delle matrici a 16 bit
modificaIl software per le matrici a 16 bit è più complicato di quello a 8 bit pur seguendo la stessa logica d'impostazione; la routine in oggetto è la seguente:
Dim I16(65536) As Integer ' dichiarazione matrice For x = 0 To 65535 ' inizio ciclo di calcolo Y1 = x And 255 ' si isolano gli 8 bit msb di x Y2 = x And 65280 ' si isolano gli 8 bit MSB di x y3 = Int(Y2 / 256) 'si spostano gli 8 bit MSB al posto di msb creando y3
' si capovolge l'ordine dei bit di y3 per ottenere y4
y4 = Int((y3 And 1) * 128) + Int((y3 And 2) * 32) + Int((y3 And 4) * 8) + Int((y3 And 8) * 2) + + Int((y3 And 16) / 2) + Int((y3 And 32) / 8) + Int((y3 And 64) / 32) + Int((y3 And 128) / 128)
' si esegue EXOR tra y1 e y4 Y5 = Abs((Y1 Xor y4) - 255)
' si sommano gli 8 contributi di correlazione
Y6 = (Y5 And 1) + ((Y5 And 2) / 2) + ((Y5 And 4) / 4) + ((Y5 And 8) / 8) + ((Y5 And 16) / 16) + + ((Y5 And 32) / 32) + ((Y5 And 64) / 64) + ((Y5 And 128) / 128)
I16(x) = Y6 ' si carica la matrice I16 con i 65536 valori del calcolo Next x 'chiusura dell'anello
L'interrogazione delle matrici a 16 bit, a scopo di controllo, è difficoltosa mancando la tabella delle corrispondenze disponibile invece per gli 8 bit. D'altra parte non è pensabile l'accettazione della matrice ottenuta dal software sopra indicato senza alcun riscontro sulla sua corretta implementazione sul P.C.
A questo scopo sono state studiate due routine in VB che consentono un ottimo controllo a campione; di questo argomento trattiamo nel seguito.
Le routine di controllo per le matrici a 16 bit
modificaIndicazione di due routine di controllo:
Prima routine
modificaLa prima routine per il controllo consiste in una copia, assolutamente fedele, della routine di costruzione della matrice implementata nel P.C. nel quale la matrice stessa deve essere utilizzata.
Alla copia del programma illustrato in precedenza si aggiungono poche istruzioni d'interrogazione della matrice stessa:
Private Sub Command1_Click() k = Val(Text1.Text) Print I16(k) End Sub
Inserendo nel TextBox un qualsiasi numero inferiore od uguale ad e la successiva pressione di Command1 si ha la presentazione video del valore di correlazione ottenuto dopo l'interrogazione della matrice in esame.
Ripetendo l'interrogazione per qualsivoglia numero della gamma indicata è possibile registrare diverse coppie per la successiva fase di controllo.
Seconda routine
modificaLa seconda routine di controllo, sviluppata come file eseguibile, si avvale del pannello di lavoro mostrato in figura 3:
questo richiede:
- a)- l'abilitazione di OptionButton " man."
- b)- l'inserzione nel TextBox dei primo dei valori Y1 registrato in precedenza con C1 (con la prima
routine di controllo)
- c)- il click sul Form
Dopo il click compaiono, in due Label, sia la stringa binaria relativa al decimale , sia il valore di ( come numero di coincidenze) dedotto dal programma di controllo in base alle simmetrie della stringa menzionata; il valore di dovrà essere uguale a
Procedendo in tal modo per un considerevole numero di coppie , registrate con la prima routine, si potrà avere la certezza che la matrice di correlazione implementata nel P.C. risponde alle attese.
Con l'abilitazione di OptionButton " cas.", invece, si può computare una coppia casuale con la quale, in modo inverso al precedente, interrogare la matrice in fase di controllo, tale matrice con il valore di deve dare come risposta .
Nella schermata di figura 3 è stato inserito, a piacere, ; da esso scaturisce la stringa binaria 01010101 01101001 e il corrispondente valore delle coincidenze di segno : .
La routine è disponibile in file exe cliccando su Il file eseguibile è scaricabile su: Controllo matrice 16 bit.
Conclusioni
modificaCon l'esame condotto è stata illustrata la struttura e la procedura software per la costruzione di una matrice a 16 bit applicabile ad una base circolare o ad altra configurazione della quale si voglia cercare il legame di coerenza tra le tensioni degli idrofoni simmetrici.
Generalmente, sia con una matrice a 8 bit che con una a 16 bit si realizza un solo fascio di scoperta, per realizzare più fasci è necessario implementare nel software più matrici di correlazione.
Se le matrici hanno un numero di bit inferiore al numero delle tensioni idrofoniche da correlare (il FALCON impiega ad esempio matrici da 8 bit con base da 18 idrofoni) i segnali devono essere selezionati in gruppi, o in hardware prima dell'inserzione nel P.C, o via software all'interno del P.C.
Un metodo per evitare o l'una a l'atra procedura consiste nel formare matrici di correlazione con un numero di bit pari al numero delle tensioni idrofoniche da correlare.
Il FALCON, ad esempio, potrebbe essere realizzato con 36 matrici da 18 bit ciascuna; in tal caso l'hardware di selezione idrofoni sarebbe completamente eliminato a tutto vantaggio dei consumi e dell'affidabilità.
Lo studio del software necessario per lo sviluppo di una matrice ad "n" bit potrà sempre essere sviluppato secondo le linee guida indicate cercando di trovare in esse le motivazioni e i criteri di base che informano tutta la routine.
note
modifica
Bibliografia
modifica- C. Del Turco, Sistema di Fasci Acustici per Localizzazione a Coerenza d'Onda Naturale , Direzione Arsenale M.M. di La Spezia, 2002 ]]
- C. Del Turco, La correlazione , Collana scientifica ed. Moderna La Spezia,1993