Rilevamento e calcolo della pendenza e del picco in tempo reale


9

Ho un segnale che campiono a 500 khz. Sto cercando di rilevare un aumento, una caduta e il picco nei dati in arrivo. La base del picco potrebbe essere per 250 usec o 2,5msec, l'ampiezza potrebbe essere 6db o 15db sopra il rumore di fondo. Purtroppo non ho una buona snr. Il livello CC del segnale non è costante ma si sposta molto più lentamente del componente CA.  

Al momento della decisione, devo conoscere la pendenza dell'ascesa e della caduta. Questo è un sistema in tempo reale difficile e ho davvero bisogno di prendere una decisione in 100usec dopo che la pendenza verso il basso raggiunge il livello CC. 

Sto cercando suggerimenti su come posso implementare in modo efficiente un algoritmo decente.  

Attualmente faccio una media corrente (oltre 25 punti dati sommati insieme) e provo a rilevare la tendenza. Una volta rilevato il trend in alto, inizio a cercare il trend in basso e, una volta fatto, raccolgo forse altri 50 campioni e inizio a calcolare. 

Il rumore ora avvita facilmente questo algoritmo, da qui la domanda. 

Aggiornare

A beneficio di altri, ho finito per implementare una media mobile seguita da un integratore. La media mobile dei 64 dati passati ha smussato abbastanza ma ha perso un certo grado, integrando gli ultimi 8 valori ha ottenuto il rialzo e cerco semplicemente l'aumento e la caduta, in seguito ho fatto una regressione lineare per la pendenza. Funziona bene, non eccezionale ma va bene.


Puoi pubblicare una trama di una sequenza di dati su cui il tuo attuale algoritmo fallisce?
Jim Clay,

Fare questo genere di cose nonostante il rumore significativo è abbastanza difficile. La proposta di Juancho di un differenziatore è probabilmente valida.
Daniel R Hicks,

Risposte:


5

Dovresti iniziare con un differenziatore bandlimited (equivalente a un differenziatore seguito da un filtro passa-basso). Il differenziatore rimuoverà la tendenza delle basse frequenze e risponderà in modo deciso a picchi e pendenze. Il componente passa-basso rimuoverà il rumore oltre la frequenza di taglio.

Dovresti progettare la frequenza di taglio in modo da ottenere impulsi puliti per le tue pendenze.

Le pendenze positive rallenteranno come impulsi positivi; pendenze negative come impulsi negativi e il picco corrisponderà all'incrocio zero tra positivo e negativo.

Questo tipo di filtro viene normalmente implementato come filtro FIR. Il numero di campioni per il filtro dipenderà quindi dai vincoli in tempo reale, dalla nitidezza alla frequenza di taglio e dalla frequenza di taglio stessa.


Non sono molto esperto di DSP. Potete indicarmi una possibile implementazione? Sulla base della tua risposta e delle mie conoscenze limitate, penso che il link ( holoborodko.com/pavel/numerical-methods/numerical-derivative/… ) faccia esattamente ciò che menzioni. Se dovessi usare un tale approccio, non so 1) Come determinare le mie frequenze? 2) Come selezionare i coefficienti di filtro?
Ktuncer

Anche il seguente link risolve un problema simile e contiene un buon gruppo di link. dsprelated.com/showmessage/123740/1.php
Ktuncer
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.