# Simulazione delle condizioni di variabilità del rapporto segnale/disturbo nella correlazione digitale

Nella fase di progettazione e messa a punto dei circuiti di correlazione, che utilizzano segnali a due stati, le simulazioni dinamiche sono indispensabili.
I simulatori possono essere sia in soluzioni hardware, sia in soluzioni software.
Le configurazioni possono variare, sia per specifiche esigenze tecniche, sia per lo sviluppo di nuove idee.
Una delle caratteristiche salienti dei sistemi di correlazione tra segnali coerenti a due stati si configura nella dipendenza dell'ampiezza della funzione di correlazione, $C(0)$, dal rapporto $Si/Ni$ all'ingresso del dispositivo secondo l'espressione:
$C(0)={\frac {2}{\pi }}\cdot \arcsin {\frac {1}{1+({\frac {N}{S}})^{2}}}$
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 corretto funzionamento.

## Il software per il tracciamento della funzione C(0) = f (Si/Ni)

Per gli sviluppi successivi mostriamo il listato di una semplice routine di calcolo e grafica, in linguaggio Visual Basic, per la presentazione della $C(0)=f(Si/Ni)$ che ci servirà per il prosieguo della lezione.
In figura 1 il risultato della routine:
Il grafico mostra come per una variazione del rapporto $Si/Ni$ da $-\ 60\ dB\$ a $+\ 60\ dB$ l'ampiezza della $C(0)$ normalizzata varia da $\ 0\ a\ 1.$

## Esempio di un circuito di prova per il controllo di un correlatore hardware per segnali a due stati

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, tratto nero di figura 2, relativo ad un semplice correlatore a coincidenza di segni debba essere costruito e provato in laboratorio prima del suo impiego sperimentale..
Il circuito non richiede unità di ritardo temporale dovendo essere i segnali tra loro coerenti.
Per eseguire il controllo del correlatore è necessaria la parte circuitale a tratto blu ,sia per la simulazione dei segnali da applicare ad esso, sia per i rilievi dei dati.
I componenti strumentali riportati in figura sono:
* A- Per il circuito sperimentale da testare, a tratto nero :
(l1) ; (l2) limitatori dei segnali per la trasformazione degli stessi in tensioni a due stati indicate con $n1\ ;n2$
(ml) moltiplicatore dei segni (correlatore a coincidenza di polarità) secondo l'algoritmo: $C=1-n1\ Xor\ n2$
(int) circuito integratore analogico secondo l'espressione $\ Cr=1/T\cdot \int _{0}^{t}C\ dt$
* - Per il circuito di simulazione, a tratto blu:
1 -generatore del segnale: emette un segnale di rumore $Yo$ ad ampiezza costante
2,3 -generatori del disturbo: emettono due segnali di rumore tra loro incoerenti dai livelli costanti di $nl1\ ;nl2$
4 -attenuatore del segnale: attenua il livello $Yo$ del segnale secondo un coefficiente variabile $J$ per ottenere un segnale d'ampiezza $J\cdot Yo$.
Con la variazione manuale di $J$ si generano le condizioni per il controllo del correlatore secondo la funzione $C(0)=f(Si/Ni)$
5,6 -sommatori per la combinazione del segnale e dei disturbi: rendono alla loro uscita i segnali + rumori pari a $Y1=nl1+j\cdot yo$ $Y2=nl2+j\cdot yo$
7,8 -strumenti di misura per il rilievo dei dati
Risultati del controllo
Se con la variazione dell'ampiezza del segnale $J\cdot Yo$, tramite l'attenuatore 4, i valori di $C(0)=f(Si/Ni)$ coincidono con gli analoghi teorici calcolati con l'algoritmo
$C(0)={\frac {2}{\pi }}\cdot \arcsin {\frac {1}{1+({\frac {N}{S}})^{2}}}$
si ha la certezza che il correlatore sperimentale in hardware è perfettamente funzionante.

## La correlazione tra segnali a due stati sviluppata tramite software.

Se si presenta la necessità di sviluppare il processo di correlazione su di un computer si può seguire la traccia del correlatore sperimentale esaminato in precedenza come illustrato nelle seguenti sezioni di programmazione..
PREMESSA:
tutte le operazioni sviluppate sul computer sono, ovviamente, eseguite su grandezze campionate secondo Nyquist.
Il software deve simulare, sia la funzione di correlazione $\ Cr=1/T\cdot \int _{0}^{t}C\ dt$, sia la generazione dei segnali e dei disturbi necessari per il controllo delle caratteristiche intrinsiche del correlatore software.

## Sezione per lo sviluppo del software di correlazione

Nel software per la realizzazione del correlatore l'implementazione dell'algoritmo per il computo del prodotto logico $C=1-n1\ Xor\ n2$ e di seguito per l'integrazione numerica $\ Cr=1/T\cdot \int _{0}^{t}C\ dt$
riportati in figura 2 è molto semplice come mostra il listato seguente:
Si tratta di un ciclo For che ad ogni giro inserisce nuovi campioni di n1 ; n2 e pone in apposita memoria il valore di Cr.

## Sezione per lo sviluppo del software per la simulazione dei rumori e del segnale

Il software per la simulazione dei rumori $nl1\ ;nl2$ e del segnale di rumore $Yo$ per il controllo del correlatore è affidato alle seguenti routine:
SIMULAZIONE DEI GENERATORI DI RUMORE ANALOGICI CAMPIONATI, nl1 e nl2, DI AMPIEZZA COMPRESA TRA - 2.5 e + 2.5
Next n
Si tratta di un ciclo For che ad ogni giro inserisce nuovi campioni di n1 ; n2 e Yo

## Sezione per lo sviluppo del software per la simulazione della variabile d'attenuazione

Software per la simulazione dell'attenuatore
Si determina il coefficiente d'attenuazione J con la routine:
si computa il valore di j in dipendenza di ciascun valore di sn espresso in deciBell ( Il valore del rapporto segnale
disturbo , Si/Ni, impostato dall'operatore ).

## Sezione per lo sviluppo del software per la simulazione delle funzioni di somma

Software per le funzioni analogiche di somma
Le somma tra il segnale attenuato secondo il coefficiente j : ( J Yo) e i rumori nl1 e nl2 si ottiene con la routine:
Si tratta di un ciclo For che ad ogni giro inserisce nuovi campioni di Y1 e Y2

## Sezione per la limitazione d'ampiezza dei segnali somma

Trasformazione dei segnali analogici Y1 e Y2 in segnali a due stati n1 e n2
Si esegue la trsformazione con la routine:
Si tratta di un ciclo For che ad ogni giro trasforma i campioni analogici Y1 e Y2 in campioni a due stati n1 e n2 necessari per sviluppare la correlazione con segnali a due stati.

## Programma dimostrativo delle routine di simulazione e controllo software

Per entrare nell'operatività delle strutture software viste in precedenza è stato studiato il programma Simexe disponibile cliccando indifferentemente uno dei due indirizzi:
CorrSoft
[CorrSoft]
Il programma consente, mediante presentazione video, di confrontare il risultato della correlazione sviluppata via software con la curva caratteristica indicativa del processo teorico:
$C(0)={\frac {2}{\pi }}\cdot \arcsin {\frac {1}{1+({\frac {N}{S}})^{2}}}$
Per sviluppare questa possibilità alla lista delle istruzioni indicate in precedenza sono aggiunte:
* a) istruzioni per il calcolo e il tracciamento della $C(0)$ teorica
* b) in sostituzione di j = 10 ^ (sn / 20) l'anello:
per il tracciamento della $C(0)$ dinamica sviluppata via software

## Indicazioni d'impiego del simexe

Il pannello operativo di simexe.exe è costituito da:
* reticolo cartesiano per la presentazione dei grafici ( in alto a sinistra )
* textbox per l'inserzione del numero dei campioni (primo in basso a sinistra) è impostato di base a $20000$
* textbox per l'inserzione del valore di beta (secondo in basso a sinistra) è impostato di base a $100$
* pulsante per il comando del tracciamento della $C(0)$ teorica (primo in alto a destra)
* pulsante per l'avvio del calcolo della $C(0)$ sperimentale ( secondo a destra )
* pulsante di reset
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 in precedenza.
Con Simexe possiamo ottenere la schermata di figura 3 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=6400$ ed un numero di "campioni"= $200000'$, si ottiene, dopo impostazione valori di </math>beta</math> e "campi.
La dispersione dei punti di calcolo attorno alla curva teorica sono dovuti alla naturale varianza in uscita dei sistemi di correlazione.
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 $\pm 2\%$ circa $(\pm 0.2\ dB),$ questo è da ritenersi un ottimo traguardo nella simulazione impostata.
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.$
Al di là del risultato mostrato in precedenza è 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 di /math>beta</math> hanno come risultato un aumento della varianza così come mostra figura 4 per $beta=100.$
L'ottimo risultato ottenuto è dovuto in parte alle routine di simulazione dei segnali che sono le analoghe dei blocchi di figura 2.

## Conclusioni

I risultati ottenuti con l'impiego di simexe hanno mostrato che il correlatore implementato in software con le due routine:
* Trasformazione dei segnali da analogici a due statì
Analogo software dei blocchi dei limitatori l1; l2 di figura 2:
* 'Correlazione tra segnali a due stati
Analogo software dei blocchi ml; int di figura 2
ha una risposta praticamente coincidente con quella teorica espressa dalla funzione:
$C(0)={\frac {2}{\pi }}\cdot \arcsin {\frac {1}{1+({\frac {N}{S}})^{2}}}$ salvo la presenza della varianza che in tale funzione non viene computata.
L'ottimo risultato ottenuto è dovuto in parte alle routine di simulazione dei segnali che sono le analoghe dei blocchi 1; 2; 3; 4; 5; 6 di figura 2

## note

* ↑ Si tratta della soluzione hardware
* ↑ Gli algoritmi software per le procedure seguenti sono scritti in linguaggio Visual Baic; qualsiasi altro linguaggio di calcolo può essere impiegato
* ↑ Per comodità di confronto tra la struttura hardware e software i simboli di tutte le variabili riportate in figura 2 sono ripetute nelle istruzioni software
* ↑ il beta è l'equivalente della costante di tempo RC del circuito integratore analogico (si veda 8^ lezione di questa materia)
* ↑ Il valore di $beta$ impostato è l'analogo di un elevato valore della costante di tempo $RC$ di un correlatore hardware
* ↑ Il numero dei campioni impostato è necessario per ottenere una precisione elevata nel calcolo di $Crt$