SONAR-INFO-p32
SIMULAZIONI E CONTROLLI DEI PROCESSI DI CORRELAZIONE SU P.C. 1) GENERALITA' 2) ESEMPIO DI UN CIRCUITO DI CORRELAZIONE PER SEGNALI A DUE STATI
3) IL SOFTWARE PER LA GRAFICA DELLA FUNZIONE TEORICA Crt = f (Si/Ni) 4) IL SOFTWARE DI SIMULAZIONE E CONTROLLO 5) PROGRAMMA DIMOSTRATIVO DELLE ROUTINE DI SIMULAZIONE E CONTROLLO
-segnali a due stati-
Nella fase di progettazione dei circuiti di correlazione che utilizzano segnali a due stati
diverse possono essere le configurazioni relative al modo della loro realizzazione.
Le configurazioni possono variare, sia per specifiche esigenze tecniche, sia per lo sviluppo
di nuove idee.
Per i motivi sopra citati si comprende quale utilità possa avere la simulazione ed il controllo al P.C. del
processo ideato per accertarsi della correttezza del progetto stesso senza dover assemblare tutto
il circuito e, ancora più gravoso, allestire gli strumenti di misura per il suo controllo.
Dato che una delle caratteristiche salienti dei sistemi di correlazione tra
segnali coerenti a due stati si configura nella dipendenza dell'ampiezza
della funzione di correlazione, Crt, dal rapporto Si/Ni
all'ingresso del dispositivo (si veda p5 ;cap.4; par.4.3) secondo l'espressione:
e che, a seguito di lunghe attività sperimentali, si è appurato che se il comportamento di
un circuito di correlazione per segnali coerenti a due stati rispetta la legge sopra riportata
si ha la garanzia del suo buon funzionamento; non resta pertanto che presentare graficamente
tale funzione sul P.C. e confrontare con essa il processo di simulazione.
L'implementazione della funzione Crt = f(Si/Ni) in un programma in Visual Basic è abbastanza
semplice, più complesso è lo sviluppo del software di simulazione e controllo del circuito in fase di studio .
Dato che è importante vedere come procedere sul percorso sopra accennato prenderemo in esame un
circuito di correlazione tra i più semplici lasciando poi al lettore interessato a sviluppi più
complessi la traccia indicata su questa pagina.
Procediamo all'esame di un circuito il cui funzionamento è certo, allo scopo di creare
un indicativo percorso di lavoro.
Supponiamo che il circuito sotto riportato, a tratto nero, relativo ad un semplice correlatore a
coincidenza di segni debba essere costruito e dopo provato (dovendo essere i segnali tra loro
coerenti la misura non richiede unità di ritardo temporale).
Per eseguire il controllo del dispositivo sarebbe necessaria la parte circuitale a tratto blu
,sia per la simulazione dei segnali da applicare al correlatore, sia per i rilievi dei dati.
Se tutto quanto riportato in figura può essere simulato su P.C. potremo avere risposte certe sul
funzionamento del dispositivo prima di procedere alla sua costruzione senza eccessivo dispendio di mezzi.
I componenti riportati in figura sono:
A- Per il circuito da testare:
(l1) ; (l2) limitatori dei segnali per la trasformazione degli stessi in tensioni a due stati
(ml) moltiplicatore dei segni (correlazione a coincidenza di polarità)
(int) circuito integratore analogico
B- Per il circuito di simulazione:
1 -generatore del segnale
2,3 -generatori del disturbo
4 -attenuatore del segnale
5,6 -sommatori per la combinazione del segnale e dei disturbi
7,8 -strumenti di misura per il rilievo dei dati
I simboli che compaiono in figura sono gli stessi che sono riportati nelle routine software;
vediamo nei paragrafi seguenti come simulare il loro funzionamento in Visual Basic.
3.1)Costruzione del reticolo per la presentazione grafica
Tra le innumerevoli possibilità di tracciamento del sistema cartesiano di presentazione
è stata implementata la seguente routine che non commenteremo:
Sub reticolo' routine per il reticolo cartesiano
For xi = 0 To 4600 * 2 Step 230 * 2
For yi = 0 To 3200 * 2 Step 20 * 2
PSet (xi, yi)
Next yi
Next xi
For yi = 0 To 3200 * 2 Step 160 * 2
For xi = 0 To 4600 * 2 Step 30 * 2
PSet (xi, yi)
Next xi
Next yi
Line (0, 1600 * 2)-(4600 * 2 + 160, 1600 * 2)
Line (4600, 0)-(4600, 3200 * 2)
End Sub 'fine routine
3.2)Routine per il calcolo della Crt = f (Si/Ni) teorica.
L'espressione riportata in 1) è così implementata:
Private Sub Command1_Click() 'esegue il calcolo e la presentazione grafica a comando di un pulsante
For sn = -60 To 60 Step 0.1 'impostazione della variabile (Si/Ni) nel campo -60dB +60dB a passi di 0.1 dB
sk = sn + 60 ' variabile per la grafica delle ascisse
t = 1 / (1 + (1 / (10 ^ ((sn) / 20)) ^ 2)) 'calcolo del Seno
arc = Atn(t / Sqr(-t * t + 1)) 'calcolo dell'arco
Su = (2 / 3.14) * arc 'calcolo della funzione Crt = f (Si/Ni)
PSet (9200 * sk / 120, 3200 - 3200 * Su), vbRed 'traccia la Crt=f(Si/Ni)
Next
End Sub' fine della routine
Con riferimento alla grafica blu della figura iniziamo a definire le caratteristiche
del generatore (1) e dell'attenuatore (4); il generatore deve produrre un segnale di rumore casuale yo in banda 1000-3000Hz,
realizzato a software con una serie di "campioni" numerici casuali.
L'attenuatore deve consentire la variazione di livello dei campioni yo di +/- 60 dB mediante moltiplicazione con la variabile j.
I generatori (2) e (3) devono produrre due rumori casuali, statisticamente indipendenti nl1 e nl2, a
livello costante, realizzabili a software con due serie di "valori" numerici casuali.
I sommatori (5) e (6) hanno il compito di sommare i due rumori nl1 e nl2 al segnale yo*j sì
da ottenere i due dati di ingresso per i limitatori del correlatore:
Y1 = yo * j + nl1
Y2 = yo * j + nl2
All'uscita dei limitatori d'ampiezza l1 , l2 (convertono i segnali analogici ,Y1,Y2, in segnali a due stati) sono
presenti i segnali numerici n1 e n2 da applicare al moltiplicatore di segni ml per ottenere:
c = n1 Xor n2
L'integratore analogico int, trasformato nella routine in integratore numerico, (si veda p27) esegue infine l'operazione che porta alla funzione di correlazione Cr:
Cr = c + Cr - ( Cr / beta )
Il beta è l'analogo numerico della costante di tempo RC dell'integratore analogico.
La routine in grado di produrre numericamente questi segnali è la seguente:
Private Sub Command2_Click() 'con la pressione del pulsante si avvia la routine
'=============INIZIO ROUTINE==============
'PREDISPOSIZIONI
'===============
Cls 'pulizia dello schermo
reticolo ' richiamo del reticolo
'SELEZIONE VALORI DI BETA TRAMITE COMBO1
beta = 100 ' valore all'avvio
If Combo1.Text = "100" Then beta = 100
If Combo1.Text = "200" Then beta = 200
If Combo1.Text = "400" Then beta = 400
If Combo1.Text = "800" Then beta = 800
If Combo1.Text = "1600" Then beta = 1600
If Combo1.Text = "3200" Then beta = 3200
If Combo1.Text = "6400" Then beta = 6400
'SELEZIONE VALORI DELLA VARIABILE "campioni" TRAMITE COMBO2
campioni = 20000 'valore all'avvio
If Combo2.Text = "20000" Then campioni = 20000
If Combo2.Text = "200000" Then campioni = 200000
'SIMULAZIONI
'==========
For sn = -60 To 60 Step 0.5 ' Anello FOR principale: esegue 240 giri per il calcolo
'di 240 valori di Cr = f(Si/Ni) a passi di 0.5 dB
sx = sn + 60 ' variabile per la grafica delle ascisse
Cr = 0 'all'inizio di ogni giro cancella i dati calcolati i precedenza
' SIMULAZIONE ATTENUATORE
'COEFFICIENTE D'ATTENUAZIONE j
j = 10 ^ (sn / 20)' si computa il valore di j in dipendenza di ciascun valore di sn
Randomize Timer ' si attiva il generatore VB dei campioni numerici casuali compresi tra 0 e +1
For x = 0 To campioni ' Anello FOR secondario: per ciascun valore di sn esegue
'un numero di giri pari al valore numerico assegnato alla variabile "campioni"
'in modo che ogni valore di Cr sia computato con un adeguato numero di dati
'che consenta l'operazione di integrazione numerica (si veda p27); dalla velocità dell'anello
'dipende la banda delle frequenze elaborabili
' SIMULAZIONE GENERATORI DI RUMORE ANALOGICI CAMPIONATI
k1 = Rnd
k2 = Rnd
k3 = Rnd
k4 = Rnd
k5 = Rnd
nl1 = (k1 + k2 + k3 + k4 + k5) - 2.5
'generazione dei campioni di rumore nl1 (simula campioni di tensioni analogiche
'di ampiezza compresa tra -2.5 e +2.5)
ka1 = Rnd
ka2 = Rnd
ka3 = Rnd
ka4 = Rnd
ka5 = Rnd
nl2 = (ka1 + ka2 + ka3 + ka4 + ka5) - 2.5
'generazione dei campioni di rumore nl2 (simula campioni di tensioni analogiche
'di ampiezza compresa tra -2.5 e +2.5)
' SIMULAZIONE GENERATORE DEL SEGNALE ANALOGICO CAMPIONATO
ks1 = Rnd
ks2 = Rnd
ks3 = Rnd
ks4 = Rnd
ks5 = Rnd
yo = (ks1 + ks2 + ks3 + ks4 + ks5) - 2.5
'generazione dei campioni della sorgente del segnale (simula campioni di tensioni
'analogiche di ampiezza compresa tra -2.5 e +2.5)
'PROCESSO DI SOMMA ANALOGICA TRA CAMPIONI DEL SEGNALE E DEL RUMORE
Y1 = yo * j + nl1 'somma analogica del segnale attenuato e del rumore nl1
'per ottenere i campioni Y1 (campioni analogici)
Y2 = yo * j + nl2 ' somma analogica del segnale attenuato e del rumore nl2
' per ottenere i campioni Y2 (campioni analogici)
' SIMULAZIONE DEL PROCESSO DI LIMITAZIONE D'AMPIEZZA
'DETERMINAZIONE DELLE POLARITA' n1 e n2 DEI CAMPIONI ANALOGICI Y1, Y2
If Y1 > 0 Then n1 = 1 Else n1 = 0 'dove n1 = segno istantaneo dei campioni Y1
If Y2 > 0 Then n2 = 1 Else n2 = 0 'dove n2 = segno istantaneo dei campioni Y2
'CORRELAZIONE TRA I SEGNALI A DUE STATI
c = 1 - (n1 Xor n2) ' moltiplicazione logica dei segni dei campioni n1 n2
Cr = c + Cr - (Cr / beta) ' integrazione numerica dei valori di Cr secondo il valore impostato di beta
Next x 'Anello FOR secondario -fine-
y = (Cr / beta) ' normalizzazione del valore di Cr
ya = y - 0.5 ' spostamento per la corretta presentazione sull'asse delle ordinate
Circle (9200 * sx / 120, 3200 - 3200 * 2 * ya), 10, vbBlue 'traccia di seguito 240 punti della funzione calcolata
Next sn ' Anello FOR principale -fine-
fine: ' punto di salto
End Sub' -fine routine-
L'insieme delle routine sopra illustrate possono essere adattate a qualsivoglia processo di correlazione
a segnali limitati; secondo il percorso indicato si dovranno sostituire/modificare/aggiungere istruzioni per renderle compatibili
ai nuovi circuiti in fase di studio.
Il programma di cui al titolo, in versione file.exe, è disponibile cliccando su SimExe.
Una volta avviato il SimExe si ha la possibilità di verificare la bontà del processo di simulazione
e controllo le cui routine sono state illustrate nel paragrafo 4).
Con SimExe possiamo ottenere la schermata sotto riportata che andiamo a commentare:
I grafici visibili sono due:
-traccia rossa: è relativa alla funzione teorica Crt = f (Si/Ni) riportata in primo piano; questa funzione
non è modificabile dal pannello di controllo, si ottiene cliccando sul pulsante Crt = f(Si/Ni).
-punteggiata blu: è relativa alla simulazione del sistema completo, sviluppata per un valore di beta = 3200
ed un numero di "campioni"=20000' , si ottiene, dopo impostazione valori di "beta" e "campioni",
cliccando sul pulsante Crsp = f (Si/Ni).
Il risultato di questa simulazione mostra come la risposta del sistema sotto esame sia aderente
alla funzione teorica, per s/n > -6 dB, entro il +/-2 % circa (+/- 0.2 dB), questo è da ritenersi un ottimo traguardo
nella simulazione impostata.
Un risultato simile per diverse strutture di correlazione a segnali limitati potrà essere la
garanzia di una possibile fattibilità dell'hardware.
Al di là del risultato mostrato con SimExe è di notevole interesse vedere come agisce l'integrazione
numerica sulla tecnica di simulazione; ciò si ottiene variando da pannello il valore del beta:
valori piccoli hanno come risultato un aumento della varianza
valori elevati portano a varianza minore.
Per il controllo di tutta la simulazione si deve scegliere un valore di beta che contenga
la dispersione dei punti rispetto all'andamento della curva teorica.
Se il valore del beta è maggiore di 3200 il numero di 20000 campioni non è più sufficiente
per consentire una corretta integrazione, in tal caso è necessario impostare il valore
dei "campioni a 200000.