• Non ci sono risultati.

Capitolo 3

N/A
N/A
Protected

Academic year: 2021

Condividi "Capitolo 3"

Copied!
13
0
0

Testo completo

(1)

CAPITOLO 3

PROGRAMMI DI ACQUISIZIONE IN LABVIEW 6.1

3.1 INTRODUZIONE

L’analisi dei segnali ad ultrasuoni richiede una strumentazione in grado di acquisire questo tipo di frequenze e di conseguenza un software in grado di gestirlo.

L’hardware utilizzato per l’acquisizione è rappresentato dalla scheda della National Instruments DAQCard-6062E che permette campionamenti fino a frequenze di 250kHz, potenzialità che una normale scheda audio per portatile o computer fisso non ci permette, poiché la banda di utilizzo è normalmente limitata a quella audio. Con questo tipo di hardware la scelta del software è obbligata al LabVIEW.

Usando tale linguaggio di programmazione vengono realizzate le operazioni di controllo e gestione delle operazioni DAQ (Data Acquisition), l’elaborazione dei dati acquisiti con scopi di misura delle grandezze significative dei segnali trattati, la presentazione grafico-numerica dei dati elaborati nonché la gestione interattiva con l’utente.

Sono stati quindi sviluppati vari programmi in ambiente LabVIEW che ci permettono l’acquisizione dei dati nella banda degli ultrasuoni. La scheda

DAQ restituisce campioni con la frequenza di campionamento preimpostata,

per questo motivo abbiamo scartato l’opzione delle registrazioni in formato wave e introdotto le registrazioni dei dati in formato “.txt ”. La registrazione viene memorizzata con un nome comprendente data e ora con precisione fino al secondo, in modo da poter attribuire una cronologia alle registrazioni e una maggior riconoscibilità del file al momento dell’analisi.

(2)

3.2 COSA

E’

LABVIEW

Il linguaggio di programmazione utilizzato è il LabVIEW prodotto dalla National Instruments. Esso consente di creare interfacce grafiche interattive di immediato utilizzo e di pilotare opportune interfacce di acquisizione. Tale programma ha un codice di programmazione grafico (il G) che consente di creare diagrammi a blocchi che descrivono il funzionamento del programma. Un applicativo creato con LabVIEW, denominato Virtual

Instrument (VI) (poiché l’aspetto è quello di un tradizionale strumento di

misura), è costituito da un Front Panel e da un Block Diagram.

Il Front Panel costituisce l’interfaccia utente che ricorda uno

strumento di misura ed è composta essenzialmente da controlli (variabili d’ingresso) e indicatori (variabili di uscita). Sia i controlli che gli indicatori si trovano in una speciale palette (Controls), sono diversificati per ogni tipologia di dato (booleano, integer, double, ecc...), si possono personalizzare e adattare (dimensioni, forme, colori, ecc.) alle specifiche esigenze e possono essere anche ridefiniti completamente dall’utente. Il Block Diagram è il corrispondente del codice di un normale linguaggio di programmazione ed in esso vengono specificate le azioni che deve compiere il programma. Ogni funzione o comando è individuata da una icona avente degli ingressi che rappresentano i parametri d’ingresso e delle uscite che rappresentano i risultati che la funzione produce in seguito alla sua esecuzione. Le icone possono essere rappresentative di funzioni più complesse che si presentano come vere e proprie “.VI” dotate anche di propri Front Panel e Block

(3)

Figura 3.1 – Esempio di Front Panel.

(4)

In tal caso le “.VI” vengono definite SubVI e il programma si struttura in più livelli. Il Block Diagram si costruisce connettendo con i fili di collegamento le varie icone e i terminali che rappresentano gli oggetti del

Front Panel e cioè gli indicatori e i controlli presenti. LabVIEW dispone di

varie librerie di funzioni per l’elaborazione dei segnali, per la gestione dei dati e dei file, per la gestione delle interfacce e per le schede di acquisizione. Inoltre è presente una libreria in cui sono incluse le tipiche strutture di programmazione comuni a moltilinguaggi. E’ inoltre possibile la creazione di variabili locali e globali e la possibilità di utilizzare anche delle forme di codice convenzionale da inserire all’interno del Block Diagram.

3.3 INTERFACCIA UTENTE “Wave.vi”

I colleghi che mi hanno preceduto hanno realizzato il programma Wave.vi tenendo presente lo schema di principio sottostante (figura 3.3), in modo da separare la programmazione in sottoprogrammi più semplici e maggiormente controllabili.

(5)

Il programma è stato quindi concepito per compiere tre funzioni principali: • visualizzazione in tempo reale del segnale acquisito nel dominio del

tempo;

• visualizzazione in tempo reale dello spettrogramma del segnale acquisito;

• registrazione in files di formato testo del segnale registrato; In figura 3.1 è riportato il front panel di Wave.vi.

Legenda relativa al front panel di Wave.vi:

1. Time domain: andamento temporale (con range di ampiezze variabile). 2. Spectgram: spettrogramma (con range di frequenze variabile).

3. colorbar : scala colori (standard matlab).

4. overlap [%] : spostamento della finestratura della FFT (default 50%). 5. windows length : dimensione della finestra mobile (default 1536). 6. window selector : seleziona il tipo di finestra con cui viene eseguita la

FFT (defaut rettangolare).

7. device : seleziona l’ingresso al quale è collegata la scheda di

acquisizione (default 1).

8. number of samples : il numero di campioni nel buffer di ingresso

(default 1536 campioni).

9. sample rate [sample/sec] : frequenza di campionamento (default 360000).

10. higth/low limit [volt] : limiti di tensione accettabili dal device (default ±10).

11. REC [ultrasuoni]: pulsante di registrazione 12. OFFSET: regolazione offset di tensione. 13. ON-OFF : standby del programma.

(6)

15. OSCILLOSCOPE : pulsante di richiamo dell’oscilloscopio.

16. SPECTRUM ANALYSER : pulsante di richiamo dell’ analizzatore di

spettro.

17. FILTER: pulsante di richiamo del pannello dei filtri.

18. MIN REC [min] : impostazione dei minuti di registrazione (default

1.5) .

19. MANUAL-AUTO-PROG: selezione tipologia di registrazione.

Questo programma, come si può evincere dai valori di default, è stato utilizzato per registrazioni a frequenza di campionamento di 360 Ksample/sec visualizzando nello stesso tempo in modo continuo spettrogramma ed andamento temporale del segnale acquisito. Tutto ciò in realtà causava la perdita di un certo numero di campioni nell’unità di tempo, quindi si è dovuti intervenire al fine di modificare il programma in modo da ricavarne una versione in grado di registrare il segnale acquisito senza perdita di campioni.

3.4 PROGRAMMA

“Rec6.vi”

Nel paragrafo 1.3 si é parlato del problema del riempimento del buffer. In seguito a delle prove effettuate sul nostro sistema abbiamo infine stabilito una frequenza di campionamento di 200 Ksample/sec, corrispondenti ad una banda di 100 kHz, ed abbiamo inoltre modificato il modo di registrare, separando la parte di analisi e visualizzazione in tempo reale dalla vera e propria registrazione del segnale.

A tal fine è stato utilizzato il programma Wave.vi per la visualizzazione in tempo reale dello spettrogramma e dell’andamento temporale del segnale, mentre è stato creato il programma Rec6.vi per registrare i segnali emessi dai delfini durante le nostre uscite in barca.

(7)

Come riferimento indicativo del segnale nel programma di registrazione, é stato inserito waveform graph, che visualizza l’andamento temporale. Semplificando il programma, ovvero minimizzando le operazioni da eseguire contemporaneamente, é stato possibile ottenere delle registrazioni senza perdita di campioni alla frequenza appunto di 200 Ksample/sec.

La procedura di registrazione è stata modificata inserendo un buffer software nel programma che accoda tutti i campioni provenienti dalla acquisizione; pertanto la registrazione non avviene più in tempo reale (ogni campione veniva direttamente salvato su hard disk) bensì la scrittura fisica su Hard disk avviene in seguito, cioè quando il buffer raggiunge la dimensione prestabilita. Nel caso specifico, per una frequenza di campionamento di 200 Ksample/sec, é stato stabilito un valore massimo della dimensione del buffer di 2000000 di campioni che corrisponde ad una registrazione di 10 secondi. In questo modo il tempo necessario per la scrittura non influisce sull’acquisizione (valori di default). Tale accorgimento, pur semplificando notevolmente l’operazione di registrazione, non ha diminuito i tempi di elaborazione dello spettrogramma. D’altra parte la visualizzazione dei fischi è possibile solo tramite lo spettrogramma, pertanto per uno studio accurato occorre prima visualizzare i segnali con Wave.vi e con l’ausilio delle cuffie capire se i delfini sono in prossimità dell’idrofono e successivamente avviare il programma Rec6.vi per le registrazioni. In figura 3.4 é riportato il front panel del programma Rec6.vi.

Il programma è stato concepito al fine, oltre quello di registrare, di visualizzare l’andamento temporale del segnale tramite waveform graph, nel quale è comunque possibile scorgere gli impulsi di ecolocalizzazione emessi dai delfini. In questo modo si può quindi capire quando i delfini sono in prossimità dell’idrofono, anche se non abbiamo informazioni circa l’eventuale emissione di fischi (modulazioni di frequenza visibili solo sullo spettrogramma).

(8)

Con i dati di default l’andamento temporale del segnale viene visualizzato ogni secondo quando il programma non è in fase di registrazione, mentre quando si avvia la registrazione vengono creati automaticamente dei files contenenti ognuno 10 secondi di segnale campionato e tali porzioni di segnale vengono visualizzate in waveform graph. Ogni 10 secondi il computer impiega circa 4 secondi per la memorizzazione del file e dopodiché ricomincia e registrare i 10 secondi successivi, e ciò continua finché non viene stoppata la registrazione.

3.4.1 INTERFACCIA UTENTE “Rec6.vi”

Legenda relativa al front panel di Rec6.vi:

1. time domain: andamento temporale (con range di ampiezze variabile); 2. higth/low limit [volt]: limiti di tensione accettabili dal dispositivo

(default ±10);

3. number of samples: il numero di campioni nel buffer di ingresso

(default 2000000 campioni);

4. sample rate [sample/sec]: frequenza di campionamento (default

200000);

5. samples refresh: il numero di campioni che vengono visualizzati ogni

volta in waveform graph, quando il programma non è in fase di registrazione;

6. campioni registrati: indica i campioni che vengono accodati nel buffer

software e che successivamente vengono poi memorizzati su file (secondo i valori di default verranno registrati 2000000 di campioni ogni volta);

7. Files registrati: indica il numero di files che sono stati memorizzati

(9)

8. time(sec): indica i secondi effettivi di registrazione consecutiva.

Impostando tale parametro, il programma creerà dei file di durata prefissata fintanto che il tasto rec è premuto (10 sec default);

9. REC: pulsante che avvia la registrazione; quando il programma è in

registrazione il led è acceso, viceversa è spento.

Figura 3.4 – Front panel del programma Rec6.vi.

I parametri impostati per default garantiscono dei files corrispondenti a 2000000 di campioni ciascuno, ovvero registrazioni di 10 secondi. Tutti i files vengono registrati in C:\test sottoforma di files di testo così denominati: ‘giorno_mese_anno@hhmmss’; ad esempio: 10_05_2004@101929. La

(10)

registrazione viene memorizzata con un nome comprendente data e ora con precisione fino al secondo, in modo da poter attribuire una cronologia alle registrazioni ed una maggior riconoscibilità del file al momento dell’analisi. Files consecutivi sono intervallati tra loro mediamente da 4 secondi in quanto questo è il tempo in cui il computer scrive i dati nell’hard disk.

3.4.2 ACQUISIZIONE DI “Rec6.vi”

Figura 3.5 - AI Acuire waveform VI utilizzata nel Block Diagram generale.

Il blocco di acquisizione viene realizzato con una funzione implementata da Labview denominata AI Acuire waveform VI la quale fornisce in uscita un segnale nel dominio temporale.

La funzione campiona il segnale analogico posto in ingresso e restituisce dei valori di tensione corrispondentemente alla frequenza di campionamento prefissata. Gli ingressi previsti sono:

(11)

A. 1: scelta del dispositivo che utilizza questo programma; al dispositivo

di acquisizione DAQ durante la configurazione è stato assegnato il numero 1.

B. sample rate: numero di campioni che il dispositivo acquisisce al

secondo; nel nostro caso in base alle specifiche della scheda di acquisizione e dallo stadio di amplificazione imponiamo 200 KSample/sec.

C. samples refresh/number of samples: numero di campioni che il

sistema acquisisce parzialmente e inserisce in un buffer di ingresso. Con un selettore viene quindi scelto number of samples se si è in fase di registrazione, al contrario viene scelto samples refresh. La dimensione del buffer dipende dall’impostazione di tale parametro, per default il sistema preleva dei “pacchetti” di 1000 campioni alla volta. Tutte le operazioni, ad esempio la FFT evolvente, vengono calcolate dal programma con questo numero di campioni.

D. low/hight limits: sono i limiti di tensione che il sistema può acquisire.

Il segnale in uscita viene quindi rappresentato tramite la funzione

waveform graph e viene anche utilizzato come ingresso della funzione Get waveform components, che permette di prelevare tre tipi di informazioni: t0, dt e Y, dove Y rappresenta il segnale utile.

3.4.3 REGISTRAZIONE DI “Rec6.vi”

La registrazione dei files in formato testo avviene premendo lo start (figura 3.6) sul pannello di controllo; tale operazione tradotta nel programma consiste in un ciclo true-false concatenato, pilotato mediante un comando di tipo booleano.

(12)

Figura 3.6 – Pulsante di registrazione.

Figura 3.6 – Blocco di registrazione in formato “.txt”.

Se il comando è “true”, corrispondente al caso di pulsante premuto, si attiva la finestra true del primo ciclo: questa fase ci permette di registrare i dati con

(13)

estensione “.txt” nella cartella test ed ogni file registrato prende nome in maniera automatica dalla data e l’ora della registrazione stessa. Successivamente il contatore denominato files registrati viene incrementato di 1 ed inizia l’acquisizione dei successivi 2000000 di campioni (per default), a meno di non premere il tasto stop.

Figura

Figura 3.2 – Esempio di Block Diagram.
Figura 3.3 – Schema di principio del programma Wave.vi.
Figura 3.4 – Front panel del programma Rec6.vi.
Figura 3.5 - AI Acuire waveform VI utilizzata nel Block Diagram generale.
+2

Riferimenti

Documenti correlati

Il Blocco d’Emergenza della propria Identità Digitale equivale alla Sospensione della stessa, ma può essere eseguito dalla pagina di Autenticazione del "Pannello SPID

Inserisci gli estremi del tuo documento di identità: i dati devono essere quelli presenti al momento della Registrazione; se successivamente rinnovi il documento, potrai accedere

Attenzione: per il completamento della fase di Registrazione alla Segreteria online è necessario disporre di un indirizzo mail valido: al termine della procedura

La registrazione si intende perfezionata solo al momento della conferma da parte della Segreteria Organizzativa I dati raccolti saranno trattati, utilizzati e diffusi in conformità

“perché il fatto non sussiste”. Ancorché i procedimenti penali siano indipendenti rispetto alle vertenze amministrative, che quindi potrebbero terminare con un esito

Il Dipartimento Politiche Europee, d’intesa con l’Istituto Europeo di Pubblica Amministrazione (EIPA) e in collaborazione con le reti Enterprise Europe Network (EEN) e

Descrivere gli aspetti innovativi e i principali vantaggi, i benefici economici che potrebbe offrire il vostro potenziale partner. Descrivere il tipologia di partner ricercato

• al termine della compilazione di ogni scheda della domanda online clicca sempre sul pulsante Salva;.. • è possibile controllare il corretto inserimento dei dati cliccando