Dinamica di un correlatore
La dinamica di un correlatore [1] indica come varia il suo segnale[2] d’uscita in funzione delle variabili indipendenti che caratterizzano la scoperta sonar, queste sono:
- Frequenze delle bande d’ascolto
- Direzione di provenienza del suono rispetto alla posizione della base idrofonica ricevente, ovvero tempo di ritardo tra i due segnali applicati al ricevitore.
- Rapporto tra il segnale e il disturbo
- Tempo d’integrazione del segnale d’uscita
Lo schema a blocchi di un ricevitore in correlazione, per segnali limitati d'ampiezza, è mostrato in figura 1:
Questa elementare struttura hardware[3] rappresenta un prototipo di laboratorio per la realizzazione di un sistema ricevente in correlazione.
Le modalità di computazione dell’andamento dell’uscita di un ricevitore
[modifica]Prima dell'avvento dei computer gli sviluppi matematici necessari per la previsione delle caratteristiche d’uscita di un correlatore richiedevano lunghi tempi di lavoro con risultati non sempre soddisfacenti.
Oggi, grazie ai personal computer, questo tipo d’analisi può utilizzare particolari routine di calcolo sviluppate in linguaggio Visual Basic che, oltre ai singoli livelli numerici, consentono la costruzione grafica dell'andamento del livello d’uscita del ricevitore in ogni condizione operativa del sonar.
Il calcolo delle funzioni di correlazione, sviluppato in Visual Basic [4], consente un’analisi accurata del comportamento dei ricevitori tramite una semplice interfaccia tra operatore e software di calcolo.
Con il software si sviluppano gli algoritmi clasici, caratteristici dei ricevitori in correlazione, che prevedono il dimensionamento delle larghezze delle bande di frequenza dei segnali ricevuti e il tempo di ritardo esistente tra i due segnali da correlare; facendo di seguito variare il tempo di analisi dell'algoritmo si traccia la funzione di correlazione in cerca del suo massimo in corrispondenza del valore impostato.
Tramite variazioni delle larghezze di banda e il valore di si possono studiare e ottimizzare i profili delle funzioni di correlazione che meglio possono adattarsi alle richieste di progetto del ricevitore.
Il software di cacolo
[modifica]Implementando sul P.C. il programma in Visual Basic, riportato in calce, si realizza il pannello virtuale di controllo del sistema di valutazione costituito da:
- quattro Textbox, evidenziati con numeri rossi per la routine di programma, per l'inserzione delle variabili caratteristiche:
- -Frequenza inf. della banda di ricezione (Hz)
- -Frequenza sup. della banda di ricezione (Hz)
- -Ritardo tra i due segnali da correlare
- -Predisposizione dell’intervallo di tempo d’analisi
- 5 command. di selezione e avvio del computo per il tipo di funzione di correlazione, ciascun pulsante ha l'indicazione del tipo di funzione calcolata e l'indicazione della banda di lavoro del ricevitore.
I 5 pulsanti assumono colore verde una volta avviato il calcolo specifico.
- un reticolo cartesiano per la presentazione delle curve di correlazione calcolate come mostrato in figura 2:
Il sistema, una volta copiate le routine di calcolo, può essere implementato con qualsiasi linguaggio di programmazione.
Esempi di valutazione
[modifica]Una volta installato il software si possono sviluppare alcuni esempi di valutazione che riguardano il calcolo ed il tracciamento di 6 funzioni di correlazioni relative ad un generico ricevitore; ad esempio:
- Corr. analogica in banda (due casi)
- Corr. analogica in banda
- Corr. digitale in banda
- Corr. digitale in banda
- Corr. digitale secondo Hilbert in banda
Per ciascuna funzione sono impostabili a piacere, sia i valori delle frequenze che stabiliscono la banda di ricezione , sia i ritardo tra i due segnali.
Primo
[modifica]Funzione di correlazione analogica del segnale in uscita da un ricevitore (segnali filtrati con passa basso)
valore inferiore della banda del ricevitore valore superiore della banda del ricevitore ritardo tra i due segnali applicati al ricevitore valore del fondo scala di calcolo e grafica.
Il grafico è riportato in figura 3, il command colorato in verde indica il tipo di funzione calcolata (segnali filtrati con passa banda)
Secondo
[modifica]Funzione di correlazione analogica del segnale in uscita da un ricevitore (segnali filtrati con passa basso)
valore inferiore della banda del ricevitore valore superiore della banda del ricevitore ritardo tra i due segnali applicati al ricevitore valore del fondo scala di calcolo e grafica.
Il grafico è riportato in figura 3a, il command colorato in verde indica il tipo di funzione calcolata (segnali filtrati con passa banda)
Terzo
[modifica]Funzione di correlazione analogica del segnale in uscita da un ricevitore (segnali filtrati con passa banda)
valore inferiore della banda del ricevitore valore superiore della banda del ricevitore ritardo tra i due segnali applicati al ricevitore valore del fondo scala di calcolo e grafica.
Il grafico è riportato in figura 4 il command verde indica il tipo di funzione calcolata:
Quarto
[modifica]Funzione di correlazione digitale del segnale in uscita da un ricevitore (segnali filtrati con passa basso)
valore inferiore della banda del ricevitore valore superiore della banda del ricevitore ritardo tra i due segnali applicati al ricevitore valore del fondo scala di calcolo e grafica.
Il grafico è riportato in figura 5, il command verde indica il tipo di funzione calcolata:
Quinto
[modifica]
Funzione di correlazione digitale del segnale in uscita da un ricevitore (segnali filtrati con passa banda)
valore inferiore della banda del ricevitore valore superiore della banda del ricevitore ritardo tra i due segnali applicati al ricevitore valore del fondo scala di calcolo e grafica.
Il grafico è riportato in figura 6, il command verde indica il tipo di funzione calcolata:
Sesto
[modifica]Funzione di correlazione digitale, con trasformata di Hilbert, del segnale in uscita da un ricevitore (segnali filtrati con passa banda)
valore inferiore della banda del ricevitore valore superiore della banda del ricevitore ritardo tra i due segnali applicati al ricevitore valore del fondo scala di calcolo e grafica.
Impostazione del software
[modifica]In ambiente di sviluppo Visual Basic inserimento degli oggetti nel Form come indicato in figura 8 nel rispetto della numerazione indicata in rosso; i 5 command devono essere abililitati in style graphical.[5].
Azione di copia e incolla[6] del programma:
Listato
Dim F1 As Double Dim F2 As Double Dim rf As Double Dim ro As Double
Private Sub Command5_Click() Command1.BackColor = &HE0E0E0 Command2.BackColor = &HE0E0E0 Command3.BackColor = &HE0E0E0 Command4.BackColor = &HE0E0E0 Command5.BackColor = vbGreen Cls For xi = 0 To 4600 * 1.4 Step 230 * 1.4 For yi = 0 To 3200 * 1.4 Step 20 * 1.4 PSet (xi, yi) Next yi Next xi For yi = 0 To 3200 * 1.4 Step 160 * 1.4 For xi = 0 To 4600 * 1.4 Step 30 * 1.4 PSet (xi, yi) Next xi Next yi Line (0, 1600 * 1.4)-(4600 * 1.4 + 160, 1600 * 1.4) Line (0, 0)-(0, 3200 * 1.4) F = Val(Text2.Text) rf = Val(Text3.Text) ro = Val(Text4.Text) For R = 0.0000001 To ro Step (ro / 10000) Y1 = Sin(2 * 3.14 * F * (R - rf) / 1000000) _ / (2 * 3.14 * F * (R - rf) / 1000000) ' c1 = (2 / 3.14) * Atn(Y1 / (Sqr(-Y1 * Y1 + 1) + 0.00000001)) PSet (4600 * 1.4 * R / ro, 1600 * 1.4 - 1600 * 1.4 * c1), colore Next End Sub
Private Sub Form_Paint() For xi = 0 To 4600 * 1.4 Step 230 * 1.4 For yi = 0 To 3200 * 1.4 Step 20 * 1.4 PSet (xi, yi) Next yi Next xi For yi = 0 To 3200 * 1.4 Step 160 * 1.4 For xi = 0 To 4600 * 1.4 Step 30 * 1.4 PSet (xi, yi) Next xi Next yi Line (0, 1600 * 1.4)-(4600 * 1.4 + 160, 1600 * 1.4) Line (0, 0)-(0, 3200 * 1.4) End Sub
Private Sub text1_KeyPress(KeyAscii As Integer) If InStr("-+.0123456789", Chr(KeyAscii)) = 0 _ Then KeyAscii = 0 End Sub
Private Sub text2_KeyPress(KeyAscii As Integer) If InStr("-+.0123456789", Chr(KeyAscii)) = 0 _ Then KeyAscii = 0 End Sub
Private Sub text3_KeyPress(KeyAscii As Integer) If InStr("-+.0123456789", Chr(KeyAscii)) = 0 _ Then KeyAscii = 0 End Sub
Private Sub text4_KeyPress(KeyAscii As Integer) If InStr("-+.0123456789", Chr(KeyAscii)) = 0 Then KeyAscii = 0 If InStr("0123456789.-" + Chr(&H8), Chr(KeyAscii)) = 0 _ Then KeyAscii = 0 End Sub
Private Sub Command1_Click() Cls Command1.BackColor = vbGreen Command2.BackColor = &HE0E0E0 Command3.BackColor = &HE0E0E0 Command4.BackColor = &HE0E0E0 Command5.BackColor = &HE0E0E0 For xi = 0 To 4600 * 1.4 Step 230 * 1.4 For yi = 0 To 3200 * 1.4 Step 20 * 1.4 PSet (xi, yi) Next yi Next xi For yi = 0 To 3200 * 1.4 Step 160 * 1.4 For xi = 0 To 4600 * 1.4 Step 30 * 1.4 PSet (xi, yi) Next xi Next yi Line (0, 1600 * 1.4)-(4600 * 1.4 + 160, 1600 * 1.4) Line (0, 0)-(0, 3200 * 1.4) F1 = Val(Text1.Text) F2 = Val(Text2.Text) rf = Val(Text3.Text) ro = Val(Text4.Text) For R = 0.0000001 To ro Step (ro / 10000) Y1 = Sin(2 * 3.14 * ((F2 - F1) / 2) * (R - rf) / _ 1000000) / (2 * 3.14 * ((F2 - F1) / 2) * (R - rf) / 1000000) Y2 = Sin(2 * 3.14 * ((F2 + F1) / 2) * (R - rf) / 1000000) Y3 = Y1 * Y2 c1 = (2 / 3.14) * Atn(Y3 / (Sqr(-Y3 * Y3 + 1) + 0.00000001)) PSet (460 * 14 * R / ro, 160 * 14 - 160 * 14 * c1), colore Next R End Sub
Private Sub Command2_Click() Command1.BackColor = &HE0E0E0 Command2.BackColor = vbGreen Command3.BackColor = &HE0E0E0 Command4.BackColor = &HE0E0E0 Command5.BackColor = &HE0E0E0 Cls For xi = 0 To 4600 * 1.4 Step 230 * 1.4 For yi = 0 To 3200 * 1.4 Step 20 * 1.4 PSet (xi, yi) Next yi Next xi For yi = 0 To 3200 * 1.4 Step 160 * 1.4 For xi = 0 To 4600 * 1.4 Step 30 * 1.4 PSet (xi, yi) Next xi Next yi Line (0, 1600 * 1.4)-(4600 * 1.4 + 160, 1600 * 1.4) Line (0, 0)-(0, 3200 * 1.4) F1 = Val(Text1.Text) F2 = Val(Text2.Text) rf = Val(Text3.Text) ro = Val(Text4.Text) For R = 0.0000001 To ro Step (ro / 10000) Y1 = Sin(2 * 3.14 * ((F2 - F1) / 2) * (R - rf) / 1000000) / _ (2 * 3.14 * ((F2 - F1) / 2) * (R - rf) / 1000000) Y2 = Cos(2 * 3.14 * ((F2 + F1) / 2) * (R - rf) / 1000000) Y3 = Y1 * Y2 PSet (4600 * 1.4 * R / ro, 1600 * 1.4 - 1600 * 1.4 * Y3), colore Next R End Sub
Private Sub Command3_Click() Command1.BackColor = &HE0E0E0 Command2.BackColor = &HE0E0E0 Command3.BackColor = vbGreen Command4.BackColor = &HE0E0E0 Command5.BackColor = &HE0E0E0 Cls For xi = 0 To 4600 * 1.4 Step 230 * 1.4 For yi = 0 To 3200 * 1.4 Step 20 * 1.4 PSet (xi, yi) Next yi Next xi For yi = 0 To 3200 * 1.4 Step 160 * 1.4 For xi = 0 To 4600 * 1.4 Step 30 * 1.4 PSet (xi, yi) Next xi Next yi Line (0, 1600 * 1.4)-(4600 * 1.4 + 160, 1600 * 1.4) Line (0, 0)-(0, 3200 * 1.4) F = Val(Text2.Text) rf = Val(Text3.Text) ro = Val(Text4.Text) For R = 0.0000001 To ro Step (ro / 10000) Y1 = Sin(2 * 3.14 * F * (R - rf) / 1000000) / _ (2 * 3.14 * F * (R - rf) / 1000000) ' PSet (4600 * 1.4 * R / ro, 1600 * 1.4 - 1600 * 1.4 * Y1), colore Next R End Sub
Private Sub Command4_Click() Command1.BackColor = &HE0E0E0 Command2.BackColor = &HE0E0E0 Command3.BackColor = &HE0E0E0 Command4.BackColor = vbGreen Command5.BackColor = &HE0E0E0 Cls For xi = 0 To 4600 * 1.4 Step 230 * 1.4 For yi = 0 To 3200 * 1.4 Step 20 * 1.4 PSet (xi, yi) Next yi Next xi For yi = 0 To 3200 * 1.4 Step 160 * 1.4 For xi = 0 To 4600 * 1.4 Step 30 * 1.4 PSet (xi, yi) Next xi Next yi Line (0, 1600 * 1.4)-(4600 * 1.4 + 160, 1600 * 1.4) Line (0, 0)-(0, 3200 * 1.4) F1 = Val(Text1.Text) F2 = Val(Text2.Text) rf = Val(Text3.Text) ro = Val(Text4.Text) For R = 0.0000001 To ro Step (ro / 10000) Y1 = Sin(2 * 3.14 * ((F2 - F1) / 2) * (R - rf) / 1000000) / _ (2 * 3.14 * ((F2 - F1) / 2) * (R - rf) / 1000000) Y2 = Cos(2 * 3.14 * ((F2 + F1) / 2) * (R - rf) / 1000000) Y3 = Y1 * Y2 c1 = (2 / 3.14) * Atn(Y3 / (Sqr(-Y3 * Y3 + 1) + 0.00000001)) PSet (4600 * 1.4 * R / ro, 1600 * 1.4 - 1600 * 1.4 * c1), colore Next R End Sub
Note
[modifica]- ↑ Indicata come funzione di correlazione
- ↑ Il segnale all’uscita di un correlatore può essere un livello di tensione, se il sistema è costruito con componenti sparsi o un dato numerico se la funzione di correlazione è sviluppata vi a software.
- ↑ Con modelli riceventi simili a quello mostrato sono stati progettati e realizzati i sistemi di scoperta panoramica dei sonar IP70 installati a bordo dei sottomarini Classe Sauro; con 72 di questi ricevitori sono state impostate le strutture a fasci preformati che hanno caratterizzato, positivamente, il funzionamento di questo tipo di sonar.
- ↑ Gli algoritmi di calcolo possone essere copiati e trasferiti su altri linguaggi di programmazione.
- ↑ Il listato del programma, data la sua semplicità, non è commentato
- ↑ Prestare attenzione alle righe di programma che in base alla pagina possono essere scritte in parte a capo
Bibliografia
[modifica]- James j. Faran jr ; Robert Hills jr , Correlators for signal reception, Office of Navaval Research (contract n5 ori-76 project order x technical memorandum no. 27) Acoustics Research Laboratory Division of Applied Science Harvard University – Cambridge, Massachusetts , 1952
- F. Balena, Visual Basic-il linguaggio-, Mondadori Informatica, 2008
- C. Del Turco, La correlazione, collana scientifica ed. Moderna La Spezia, 1993