View Full Version : Elaborazione dati Matlab
martina.energetica
22-06-2017, 16:02
Salve a tutti,
passo direttamente a esporre il problema perché temo sarà lungo e difficile rispondere.
Ho dei dati sperimentali acquisiti tramite Labview, li ho importati su Matlab tramite un apposito file .m che mi hanno passato. Ho così una 90ina di array rappresentati varie grandezze misurati in 6 ore di misurazione (il time step credo sia ogni secondo, onestamente non mi è stato spiegato nulla quindi non saprei). Mi è stato richiesto, per solamente 10 di queste grandezze, di determinare per quale intervalli di tempo siano tutte contemporaneamente stabili e per questi intervalli calcolare il valore medio di ciascuna grandezza. Tutto questo devo farlo in modo automatico, ossia con un algoritmo.
Ora... il mio problema è innanzitutto l'approccio: trattantosi di grandezze sperimentali con un elevato rumore di fondo avere un approccio tramite calcolo delle derivate locali mi pare assurdo. Devo precedentemente filtrare i segnali? Usare un filtro IFR? E successivamente tramite le derivate impostare una variazione temporale massima?
Devo determinare grandezze come lo scarto quadratico o la varianza o funzioni statistiche e poi lavorare su quelle?
Spero nella buonanima di qualcuno che mi indichi anche solo dove cercare soluzioni, premetto che ho già visionato documentazione e Webinar Matlab senza trovare soluzione.
martina.energetica
23-06-2017, 08:50
Innanzitutto grazie per la risposta, non ci speravo.
Parlando con un dottorando che lavora su Matlab lui mi ha consigliato prima uno smoothing del segnale tramite filtro (non lo so usare ma ci posso arrivare) e poi ti stabilire in quale zone si ha un andamento costante tramite, non so, lo scarto quadratico medio?
Per "costante" non so precisamente cosa intendere... Ma ho immaginato che graficamente si debba avere una variazione inferiore al 5/10%.
Per individuare cosa "tagliare" posso plottare e calcolare a spanne la frequenza del rumore, è corretto?
martina.energetica
23-06-2017, 10:27
Su tuo consiglio ho realizzato un filtro moving average medianto su 10 secondi e pare che lavori abbastanza bene. Il mio referente però mi ha detto che non devo "tagliare troppo", ossia il segnale non deve diventare completamente smooth ma deve mantenere un po' l'oscillazione tipica del dato sperimentale. Immagino che il comando che mi hai postato serva per impostare una variazione percentuale che è appunto quello he pensavo di fare. Mi resta da capire come comparare quei punti (quindi quegli intervalli di tempo) in cui tale grandezza è "costante" con gli intervalli di tempo in cui le altre variabili (una decina) sono "costanti".
martina.energetica
23-06-2017, 12:46
Ok, credo di aver capito come fare!
Spero di riuscire, per ora grazie davvero.
martina.energetica
23-06-2017, 13:04
Ok, credo di aver capito come fare!
Spero di riuscire, per ora grazie davvero.
martina.energetica
24-06-2017, 16:36
giusto una precisazione, filtro FIR, moving average, boxcar, smoothing, media pesata.. sono tutti la stessa sinonimi di "applicare un filtro lineare ai dati". solo l'osservazione sperimentale del segnale in frequenza ti potra' dare un'idea di come progettare il filtro.
Grazie per la precisazione... Avevo in qualche modo compreso che si trattasse di fare la stessa cosa in modi diversi. Non avendo però nessuna conoscenza pregressa all'inizio ho avuto qualche difficoltà nell'inquadrare il problema.
Esistono alcuni manuali di riferimento per la progettazione dei filtri o gestione dei segnali più in generale? Me ne puoi suggerire qualcuno? Perché online ho trovato molto sul "come si fa" ma poco sul perché. Ho solo qualche rudimento universitario di dinamica e controllo (non è neanche il medesimo argomento, peraltro). Devo ricorrere allo studio completo della teoria dei segnali per capirci qualcosa in più?
martina.energetica
26-06-2017, 10:53
in poche parole, si. la teoria dei segnali ti da gli strumenti base per capire e applicare certe regole, tra cui il progetto di filtri. in matlab, un filtro si progetta con fdatool, dove puoi specificare banda passante, attunuazione, ed un'altra infinita' di parametri.
ma in genreale non puoi prescindere dallo studio del dominio che ti interessa; per esempio tu hai trovato la teoria dei segnali applicata a problemi di dinamica e controllo, esiste teoria dei segnali applicata a segnali audio per esempio, oppure in video. in questo tuo caso, misure meccaniche mi pare (es. accelerazioni). dovresti partire da qualche testo di misure meccaniche credo, ma su questo non posso aiutarti non essendo il mio campo.
Ok, cercherò di farmi consigliare da qualcuno esperto in questo campo qui dove sono. Grazie delle info!
martina.energetica
30-06-2017, 10:55
Riprendo dopo qualche giorno la discussione perché nonostante abbia lavorato parecchio sui filtri non sono riuscita ad arrivare alla soluzione. I filtri lavorano bene in alcune zone ma male in zone in cui il segnale ha un andamento " a gradino smussato", interpolare lì diventa impossibile. Quindi vorrei tentare un altro approccio, "differenziale". Vorrei valutare la media attorno ad un valore (ad esempio con una finestra di 5 punti) e ripetere lo stesso a distanza di 20 punti. A tal punto calcolo il coeff angolare della retta che unisce i due punti mediati e ripeto per valori mediati distanti ancora 20 punti. Se il coeff è uguale o circa uguale (10%) il segnale è stabile, altrimenti no. è una cosa sensata? come si può implementare?
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.