Come rilevare cambiamenti "rapidi" nell'elaborazione del segnale


12

Sto lavorando a un progetto in cui misuriamo la saldabilità dei componenti. Il segnale misurato è rumoroso. Dobbiamo elaborare il segnale in tempo reale in modo da poter riconoscere il cambiamento che inizia al momento di 5000 millisecondi.

Il mio sistema preleva un campione di valore reale ogni 10 millisecondi, ma può essere regolato per un campionamento più lento.

  1. Come posso rilevare questo calo a 5000 millisecondi?
  2. Cosa ne pensi del rapporto segnale / rumore? Dovremmo concentrarci e cercare di ottenere un segnale migliore?
  3. C'è un problema che ogni misura ha risultati diversi, e talvolta il calo è ancora più piccolo di questo esempio.

Segnale campione Segnale campione 2 Segnale campione 3

Collegamento a file di dati (non sono gli stessi di quelli utilizzati per i grafici, ma mostrano lo stato del sistema più recente)

  1. https://docs.google.com/open?id=0B3wRYK5WB4afV0NEMlZNRHJzVkk
  2. https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
  3. https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQmc
  4. https://docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
  5. https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ

5
Sembra che tu abbia un rapporto segnale-rumore relativamente piccolo. Come con la maggior parte dei problemi di rilevamento, ti consigliamo di considerare l'equilibrio tra la probabilità di rilevare correttamente la funzionalità che hai indicato e la probabilità di dichiarare erroneamente che uno è lì. Qual è più importante per la tua applicazione? Hai dei requisiti di latenza di rilevamento?
Jason R,

2
Il "rumore" sembra più un'interferenza a una particolare frequenza. Se questo è il caso (un grafico dello spettro sarà di aiuto), il filtraggio appropriato farà la maggior parte del lavoro.
Juancho,

In realtà il rilevamento di questa funzione è molto importante. Ma posso vivere con un po 'di latenza, ma ho bisogno di regolare la posizione di arresto finale, perché non so esattamente dove la parte tocca la saldatura e devo controllare la profondità di immersione. Quindi, ad esempio, se so che l'immersione dovrebbe essere di 0,5 mm, calcolo la posizione teorica in base alla dimensione ideale del globulo di saldatura, ma quindi devo fare la correzione per la dimensione effettiva di un globulo che rilevo al tatto - appare come un cambiamento in vigore.
Petr

L'intero strumento di misurazione si trova sulle molle, quindi può muoversi liberamente, ma produce anche il rumore e inoltre abbiamo molle fisse per l'intera gamma di misurazioni, e naturalmente questi problemi si presentano quando si utilizza la massima sensibilità, dove le forze misurate sono terribilmente piccolo.
Petr

Juancho - forse questo potrebbe aiutare, ma come posso risolverlo per diversi weghts di parti, risultando in frequenze diverse? Anche questo componente cambia quando la parte viene immersa nella saldatura, perché il processo di bagnatura riduce il livello di rumore, ma ciò accade solo per le parti più grandi, qui è quasi lo stesso quando si entra o si esce.
Petr

Risposte:



4

Di solito inquadra questo problema come uno di rilevamento della pendenza. Se si calcola una regressione lineare su una finestra mobile, la goccia illustrata sarà visibile come una variazione significativa del segno di pendenza e / o della grandezza. Questo approccio offre una serie di fattori che richiedono "messa a punto": ad esempio, la frequenza di campionamento, le dimensioni della finestra, ecc., Influiranno sulla robustezza (resistenza al rumore) del rivelatore di pendenza. Qui è possibile applicare alcuni dei commenti sopra. Qualsiasi filtro o soppressione del rumore che può essere applicato prima del raccordo di linea migliorerà i risultati.


2

Ho fatto questo genere di cose calcolando una statistica T della media della parte sinistra dei dati rispetto alla parte destra dei dati. Questo presuppone che tu sappia dove si trova il punto di transizione che ovviamente non lo fai.

Quindi, quello che fai è provare diverse centinaia di punti di divisione lungo l'asse temporale e trovare quello con la statistica T più significativa.

u_left, u_right : mean of left and right portion
s_left, s_right : SD of left and right portion
n_left, n_right : number of samples on left and right (subtract one from each for the one degree of freedom)

se = sqrt(s_left^2 / n_left^2 + s_right^2 / n_right^2)
T = (u_left - u_right) / se

Puoi farlo come qualcosa di simile a una ricerca binaria. Prova 10 punti dati, trova i due più grandi, quindi prova 10 punti tra quelli ecc. In questo modo potresti ottenere un punto di transizione piuttosto preciso. Non sto rivendicando l'accuratezza. :-)

Fateci sapere come va!

PS Puoi calcolare media e sd come somme correnti che riducono la complessità del calcolo di questa funzione di partizione per ogni singola possibilità da N ^ 2 a N. In questo modo puoi probabilmente permetterti di calcolare la statistica T in ogni possibile punto di partizione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.