Vai al contenuto

Dinamica di un correlatore

Da Wikiversità, l'apprendimento libero.
figura 1 schema a blocchi di un ricevitore in correlazione

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]
figura 2 Pannello di comando del sistema

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:
  1. -Frequenza inf. della banda di ricezione (Hz)
  2. -Frequenza sup. della banda di ricezione (Hz)
  3. -Ritardo tra i due segnali da correlare
  4. -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]
figura 3 schermata corr. analogica in banda 0-F

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]
figura 3a schermata corr. analogica in banda 0-F

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]
figura 4 schermata corr. analogica in banda F1-F2

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]
figura 5 schermata corr. digitale in banda 0-F2

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]
figura 6 schermata corr. digitale in banda F1-F2


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]
figura 7 schermata funzione di correlazione secondo trasformata di Hilbert

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]
figura 8 Pannello di comando del sistema

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]
  1. Indicata come funzione di correlazione
  2. 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.
  3. 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.
  4. Gli algoritmi di calcolo possone essere copiati e trasferiti su altri linguaggi di programmazione.
  5. Il listato del programma, data la sua semplicità, non è commentato
  6. 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