SONAR-INFO-p56




Le matrici di correlazione a 16 bit

Untitled

1)Generalità
Le matrici di correlazione sono la soluzione via software dei processi per la ricerca della coerenza tra segnali a due stati ( si veda p5 : par. 1.4; par. 2.3 ).
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 FALCON ( si veda p4 ), attraverso il quale si sono elaborati a mezzo P.C. gruppi di 8 segnali mediante matrici di correlazione a 8 bit.
Il processo menzionato, illustrato sommariamente secondo la disposizione circuitale di figura 1, è indicativo di un qualsiasi diverso impiego; in figura 1 è mostrata la differenza tra la correlazione via hardware ( in celeste ) e la correlazione di matrice su P.C. ( in giallo ) .
E' fondamentale osservare che per la realizzazione di più fasci, come normalmente accade, l'hardware viene moltiplicato per il numero di essi con un notevole appesantimento dell'elettronica di processo; a ciò si sopperisce invece con un più fattibile incremento del numero delle matrici software.



Nel continuo sviluppo della tecnica dei calcolatori il passaggio dalle matrici a 8 bit a quelle a 16 bit è uno strumento in più nelle mani del progettista.
Il confronto tra la soluzione di correlazione in hardware per basi a 16 sensori e la soluzione con matrici di correlazione a 16 bit è riportata in figura 2.



La maggiore difficoltà nel passaggio tra le 8 bit e le 16 bit consiste nel controllo di quest'ultime che implicando ben 65536 dati non consentono la loro tabulazione così come fatto, invece, per le 8 bit che coinvolgono soltanto 256 dati.
Vediamo come risolvere questo problema iniziando da un esame sommario del concetto di matrice di correlazione.

2)Cenno sulle matrici di correlazione a 8 bit
Se i segnali di una base ricevente a 8 idrofoni ( 4 coppie di sensori ) sono amplificati, filtrati, limitati in ampiezza a due stati ( 0 = 0V; 1 = +5V ) possono essere inviati ad un P.C. ( vedi figura 1 ) che è in grado di leggere la sequenza dei segni 0 ed 1, come un valore numerico Y 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.
E' naturale che un processo così complicato non possa essere illustrato chiaramente in poche righe ; una descrizione completa è visionabile su p4 - par. 11.
Un esempio della matrice ad 8 bit, riportata su p4, è di seguito mostrata sotto forma di tabella di riferimento e controllo:



Nella tabella si leggono le 256 corrispondenze tra i numeri Y 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. è y = 235 il valore della somma dei quattro coefficienti di correlazione sarà pari a C = 2.

3)Il software per la costruzione della matrice a 8 bit
Il 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 nel 2),
C36 = 4
In modo analogo può essere interrogata tutta la matrice controllandola, con relativa semplicità, secondo la tabella di riferimento mostrata nel paragrafo 2).


4)Il software per la costruzione della matrice a 16 bit
Il software della matrice 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 della matrice 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; questo argomento è trattato nel seguente paragrafo.

5)Le routine di controllo per le matrici a 16 bit
La 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 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 Y inferiore od uguale ad 65535 e la successiva pressione di Command1 si ha la presentazione video del valore di correlazione C ottenuto dopo l'interrogazione della matrice in esame.
Ripetendo l'interrogazione per qualsivoglia numero della gamma indicata è possibile registrare diverse coppie Yn - Cn per la successiva fase di controllo.

La seconda routine di controllo 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

compaiono, in due Label, sia la stringa binaria relativa al decimale Y1, sia il valore di C1' ( come numero di coincidenze) dedotto dal programma di controllo in base alle simmetrie della stringa menzionata; il valore di C1' dovrà essere uguale a C1.
Procedendo in tal modo per un considerevole numero di coppie Y - C, 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 Y1'- C1' con la quale, in modo inverso al precedente, interrogare la matrice in fase di controllo, tale matrice con il valore di Y = Y1' deve dare come risposta C = C1'.
Nella schermata di figura 3 è stato inserito, a piacere, Y = 21865 ; da esso scaturisce la stringa binaria 01010101 01101001 e il corrispondente valore delle coincidenze di segno : C = 4.
La routine è disponibile in file exe cliccando su mtr16

6)Conclusioni
Abbiamo visto nel paragrafo 2) come una matrice ad 8 bit, impiegata a suo tempo per la formazione dei fasci del sonar FALCON con base circolare, sia utilizzabile per una base rettilinea o qualsivoglia struttura idrofonica nella quale si ricerchi la coerenza tra segnali provenienti da idrofoni tra loro simmetrici.
Con l'esame condotto al paragrafo 4) è stata illustrata la struttura e la procedura software per la costruzione di una matrice a 16 bit applicabile ad una base rettilinea 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 mostrate nel paragrafo 4) cercando di trovare in esse le motivazioni e i criteri di base che informano tutta la routine.
Home

Stampa immagine grafica o descrizione testuale