2015-12-16 22 views
5

Sto cercando un metodo per eliminare i valori anomali dal dataset specificato. Ad esempio:Matlab: eliminazione dei valori anomali nel set di dati

Dataset to be filtered

Tutti questi picchi dovrebbero essere eliminati. Ho provato diversi filtri come medfilt, ma i picchi sono ancora lì. Ho anche provato un filtro passa-basso, ma non ha funzionato neanche. Sono un principiante nel filtrare i segnali, quindi probabilmente ho sbagliato.

È possibile scaricare set di dati per x array here e y array here.

Potrei anche immaginare un ciclo per confrontare i valori uno accanto all'altro, ma sono sicuro che ci deve essere una funzione integrata?

Ecco il risultato usando medfilt1(input,15):

filtered signal

I picchi stanno scomparendo, ma l'allora ottengo questi brutti passi, che non voglio.

+5

Un metodo semplice è diffare i tuoi dati e vedere dove la variazione di valore supera una certa soglia. – excaza

+5

[This] (http://i.stack.imgur.com/IdJsU.jpg) è quello a cui mi sono associato quando ho letto "valori anomali nel set di dati". –

+0

Haha Andras, in realtà ho appena tradotto la parola tedesca e ho ottenuto "valori anomali" = D excaza, quindi vuoi dire fare un ciclo attraverso i dati, controllare un certo diff ed eliminarlo? Ho avuto anche questa Idea, ma ho pensato che ci potrebbe essere una build in funzione ... – deSteini

risposta

7

basta usare il filtro mediano! medfilt1(data,3) farà se questo è un picco "cosmico" da 1 pixel. Se i picchi rimangono, aumentare le dimensioni della finestra di 5 o più ...

EDIT: quindi questo è come i dati di op assomiglia:

enter image description here Così vediamo che i dati non è esattamente uniforme o ordinato, e ci sono un sacco di punti di dati nei picchi a differenza di quello che prima si capisce dalla domanda (ragazzi per favore traccia i tuoi dati correttamente!) La domanda è ora, sono i dati negli spike o nella baseline?

+0

Ho provato nuovamente la funzione medfilt1, ma ho bisogno di almeno 15 per ottenere il massimo dei picchi, ma poi invece di eliminare i picchi, ottengo dei passaggi nel grafico ... Aggiungerò il grafico nella domanda ... – deSteini

+0

meglio ancora, dai un link ai dati stessi nel file .mat – bla

+0

L'ho fatto .. grazie! – deSteini