Patching dei dati identificando e copiando il pattern ripetuto

1

Ho un set di dati campionato con un pattern specifico (timestamp). La prima ripetizione del pattern è danneggiata, il che significa che i valori non hanno senso. Per esemplificare, i miei dati assomigliano a questo:

data = [garbage | pattern | pattern + t | pattern +2*t | ... | pattern + n*t];

Dove potrebbero essere garbage e pattern, ad esempio:

garbage = [1 10000 3 10000 1 10000 3 10000] 
pattern = [6 7 8 9 6 7 8 9]

E se t = 5 ...

pattern + t = [11 12 13 14 11 12 13 14]

Quello che voglio fare è ricostruire garbage in modo che garbage = pattern -t , in pratica patching del mio set di dati. Se conoscessi la dimensione del modello, il mio problema sarebbe semplice. Tuttavia, come posso risolvere il problema senza saperlo?

E c'è davvero un modo per risolvere il problema senza dover trovare il modello? Suggerimenti e approfondimenti sono i benvenuti.

EDIT:
Per chiarimenti:
I dati consistono in timestamp di immagini MRI. Ogni "schema" si riferisce al set di timestamp di sezioni 2D all'interno di un volume 3D e acquisisco più volumi. Non conoscere il modello significa che non conosco sempre il numero di fette. Quello che io chiamo spazzatura si riferisce al set di timestamp danneggiati del primo volume. Il motivo per cui sto correggendo i timestamp è correlarlo con altri dati campionati con timestamp corretti.

    
posta dangom 19.02.2016 - 00:24
fonte

1 risposta

2

Se il tuo periodo è ampio o ha un certo margine di errore, come i campioni da un convertitore analogico-digitale, il classico algoritmo per l'analisi della frequenza è un trasformata di Fourier discreta .

Questo potrebbe funzionare anche per periodi più piccoli di dati più precisi, ma potrebbe essere eccessivo se è veramente pulito come mostrano i tuoi esempi. Per i dati che assomigliano a questo, vorrei solo forzarli, cercando periodi più lunghi fino a quando ne ho raggiunto uno che massimizzava il numero di partite precedenti. A meno che i tuoi periodi non siano dell'ordine di centinaia di migliaia di campioni, questo non dovrebbe essere irragionevolmente inefficiente.

    
risposta data 19.02.2016 - 01:22
fonte

Leggi altre domande sui tag