Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Derivata rumorosa

46 views
Skip to first unread message

Marco Trapanese

unread,
Jun 21, 2011, 3:39:49 AM6/21/11
to
Ciao,

supponiamo di acquisire due segnali tramite un ADC. Li filtriamo con un
filtro mediano e vogliamo la loro derivata. Ovvero, dati:

a_n -> campione corrente segnale A
a_p -> campione precedente segnale A
b_n -> campione corrente segnale B
b_p -> campione precedente segnale B

voglio ottenere:

d = (a_n - a_p) / (b_n - b_p)

di questo segnale mi interessa il *segno*.

Il problema ᅵ che le letture dell'ADC hanno sempre un minimo di rumore,
per cui ho i miei valori a e b che saltano attorno al valore medio. Di
poche unitᅵ certo, ma sufficienti a farmi cambiare segno alla derivata.

A parte utilizzare la forza bruta ( = soglie e isteresi) c'ᅵ qualche
modo piᅵ furbo per migliorare l'immunitᅵ al rumore in una situazione
come questa?

Marco

aa

unread,
Jun 21, 2011, 5:34:41 AM6/21/11
to
Un filtro digitale,nota la frequenza di taglio...
ma se il segnale si muove poco, e' piu' efficiente usare il
sistema "bruto" :-)
A.


Claudio_F

unread,
Jun 21, 2011, 12:32:28 PM6/21/11
to
Marco Trapanese ha scritto:

> A parte utilizzare la forza bruta ( = soglie e isteresi) c'è qualche
> modo più furbo per migliorare l'immunità al rumore in una situazione
> come questa?

Una media di piu' letture rallenta troppo? (eventualmente anche una
media mobile)


Claudio_F

Marco Trapanese

unread,
Jun 21, 2011, 3:06:25 PM6/21/11
to
Il 21/06/2011 18:32, Claudio_F ha scritto:

> Una media di piu' letture rallenta troppo? (eventualmente anche una
> media mobile)


Il segnale ᅵ lentamente variabile.
Acquisisco a 50 Hz e ho un filtro mediano a 11 campioni.

I filtri riducono l'ampiezza del rumore ma i saltellamenti attorno alla
"media" per quanto innocui per la lettura in sᅵ mi fanno cambiare il
segno della derivata!

Per questo stavo pensando a un barbatrucco che mi permettesse di
calcolare una derivata anche approssimativa, ma con la certezza del segno.

L'unico modo che ho trovato ᅵ appunto l'utilizzo di finestre a isteresi:
fin tanto che il segnale non supera una certa soglia lo considero
costante (delta = 0).

Marco

claudio

unread,
Jun 21, 2011, 3:51:22 PM6/21/11
to

"Marco Trapanese" <marcotrapa...@gmail.com> ha scritto nel messaggio
news:itqq3h$6n8$1...@tdi.cu.mi.it...

> Il 21/06/2011 18:32, Claudio_F ha scritto:
>
>> Una media di piu' letture rallenta troppo? (eventualmente anche una
>> media mobile)
>
>
> Il segnale � lentamente variabile.

> Acquisisco a 50 Hz e ho un filtro mediano a 11 campioni.
>
> I filtri riducono l'ampiezza del rumore ma i saltellamenti attorno alla
> "media" per quanto innocui per la lettura in s� mi fanno cambiare il segno
> della derivata!
>
> Per questo stavo pensando a un barbatrucco che mi permettesse di calcolare
> una derivata anche approssimativa, ma con la certezza del segno.
>
> L'unico modo che ho trovato � appunto l'utilizzo di finestre a isteresi:
> fin tanto che il segnale non supera una certa soglia lo considero costante
> (delta = 0).
>
> Marco

La derivata di una funzione � "rumorosa" per definizione, visto che ne
evidenzia tutte le variazioni.
Se poi la funzione non � "monotona" (sempre crescente o decrescente) il
cambio di segno � inevitabile.
Hai valutato la possibilit� di calcolare prima l'integrale del segnale da
misurare e poi derivare due volte?
Occorre trovare il periodo di integrazione adatto per non perdere troppe
informazioni sul segnale, ma potrebbe essere una strada da verificare.
Non sto assolutamente facendo del sarcasmo ma un consulto da un prof di
analisi matematica (uno dello scientifico dovrebbe bastare) potrebbe fornire
qualche spunto interessante!
Claudio


Marco Trapanese

unread,
Jun 21, 2011, 4:02:48 PM6/21/11
to
Il 21/06/2011 21:51, claudio ha scritto:

> La derivata di una funzione ᅵ "rumorosa" per definizione, visto che ne
> evidenzia tutte le variazioni.


Chiaro, ma qui il problema ᅵ che mi evidenzia le variazioni dovute al
rumore.


> Se poi la funzione non ᅵ "monotona" (sempre crescente o decrescente) il
> cambio di segno ᅵ inevitabile.


E infatti a me serve proprio sapere il segno!


> Hai valutato la possibilitᅵ di calcolare prima l'integrale del segnale da


> misurare e poi derivare due volte?


ehm... no. Non mi sarebbe mai venuto in mente.


> Occorre trovare il periodo di integrazione adatto per non perdere troppe
> informazioni sul segnale, ma potrebbe essere una strada da verificare.
> Non sto assolutamente facendo del sarcasmo ma un consulto da un prof di
> analisi matematica (uno dello scientifico dovrebbe bastare) potrebbe fornire
> qualche spunto interessante!


Ho un'amica ingegnere matematico (ah no, modellista come si
definiscono). Proverᅵ a chiedere!

Marco

ramundo

unread,
Jul 12, 2011, 4:14:00 AM7/12/11
to
On 21 Giu, 09:39, Marco Trapanese <marcotrapaneseNOS...@gmail.com>
wrote:

> Ciao,
>
> supponiamo di acquisire due segnali tramite un ADC. Li filtriamo con un
> filtro mediano e vogliamo la loro derivata. Ovvero, dati:
>
> a_n -> campione corrente segnale A
> a_p -> campione precedente segnale A
> b_n -> campione corrente segnale B
> b_p -> campione precedente segnale B
>
> voglio ottenere:
>
> d = (a_n - a_p) / (b_n - b_p)
>
> di questo segnale mi interessa il *segno*.
>
> Il problema che le letture dell'ADC hanno sempre un minimo di rumore,

> per cui ho i miei valori a e b che saltano attorno al valore medio. Di
> poche unit certo, ma sufficienti a farmi cambiare segno alla derivata.
>
> A parte utilizzare la forza bruta ( = soglie e isteresi) c' qualche
> modo pi furbo per migliorare l'immunit al rumore in una situazione
> come questa?
>
> Marco

il circuito di acquisizione lo hai fatto tu o devi lavorare su dati
che ti vengono presentati? nel primo caso ce lo fai vedere
(alimentazioni ecc.?). Di che natura e' il segnale?

0 new messages