PDA

View Full Version : Filtro anti-aliasing


serbring
17-11-2009, 15:44
Ho una certa time history di un segnale di accelerazione. Vorrei applicare un filtro Anti-aliasing digitale (uso matlab per far questo) per eliminare tutte le componenti in frequenza non volute. Ho capito che la frequenza di taglio del filtro la devo scegliere in funzione della max frequenza di interesse e che il roll-off del filtro lo devo scegliere in funzione del rapporto tra le max frequenza di interesse e la minima frequenza che devo eliminare. In termini pratici, come faccio a scegliere in maniera ottimale questi parametri? Ma il filtro anti-aliasing viene applicato automaticamente dai vari software di acquisizione in funzione della frequenza di campionamento?

lowenz
17-11-2009, 17:05
Ma il filtro anti-aliasing viene applicato automaticamente dai vari software di acquisizione in funzione della frequenza di campionamento?
Bella domanda :D

serbring
17-11-2009, 21:51
un filtro antialiasing è un filtro passa basso che viene applicato sul segnale da campionare prima del campionamento, per evitare che le componenti di frequenza troppo alte vadano a disturbare il segnale tempo discreto acquisito... ora, se tu devi acquisire un segnale con frequenza fmax maggiore della metà della frequenza di campionamento, va da sè che il filtro antialiasing taglia fuori delle componenti dal segnale in ingresso al campionatore. per il resto, in termini pratici, più il filtro è bello più sarà complesso maggiore sarà il ritardo di gruppo ecc.ecc.ecc. quindi lo devi sapere tu in base ai tuoi vincoli come scegliere i parametri. per progettare il filtro in matlab (ti conviene comunque un FIR) usa fdatool.

te che magari sei esperto e se hai tempo, non riusciresti a farci un esempio pratico tanto per capire come fare?

hibone
18-11-2009, 15:23
Ho una certa time history di un segnale di accelerazione. Vorrei applicare un filtro Anti-aliasing digitale (uso matlab per far questo) per eliminare tutte le componenti in frequenza non volute. Ho capito che la frequenza di taglio del filtro la devo scegliere in funzione della max frequenza di interesse e che il roll-off del filtro lo devo scegliere in funzione del rapporto tra le max frequenza di interesse e la minima frequenza che devo eliminare. In termini pratici, come faccio a scegliere in maniera ottimale questi parametri?

Disclaimer:
Premetto che non sono un esperto, quindi potrebbero esserci imprecisioni, scorrettezze e quant'altro... Questo per dire che ricevere una correzione mi sta bene, ricevere una lectio magistralis per di più sulla fiducia no. :D

in soldoni :

la massima frequenza di interesse dipende da cosa consideri. Sono un pochino arrugginito su questo ma vediamo:

innanzi tutto il segnale quando passa da analogico a digitale viene campionato, e quindi vige il teorema di shannon, e fin qui nulla da dire. La frequenza di shannon è quella minima necessaria a preservare il contenuto informativo del segnale ideale...

Se il segnale non è ideale e c'è rumore di fondo, possiede, teoricamente, infiniti contributi in frequenza, per cui bisogna prima capire quale contenuto in frequenza dipende dal segnale e quale dal rumore. ( distinzione operabile in base all'ampiezza "minima" dei segnali )

Volendo ci sarebbe un'altra considerazione che coinvolge il mezzo trasmissivo che, comportandosi come un filtro passabasso distorce i segnali digitali e quindi introduce la cosiddetta interferenza di intersimbolo. Tale interferenza risulta superabile se il segnale si mantiene al di sotto di una certa soglia simboli/tempo, e questo incide sul numero di simboli trasmettibili, e quindi sul tempo di campionamento, e quindi sulla frequenza di interesse massima che può essere raggiunta.

( Cioè se anche hai un ADC molto veloce, e riesci a trasmettere tutti i simboli ottenuti, ma non riesci poi a riceverli, devi trasmettere meno informazione, ma recuperabile, tale considerazione ti serve a stabilire quanta parte del segnale originale è da considerarsi rumore e quanta informazione )



il roll-off ti dice con che pendenza decade l'ampiezza del filtro, e quindi, sempre in soldoni, l'intervallo "DeltaF" di frequenze sul quale il guadagno passa da 1/2 a zero...

roll-off = 1 hai la funzione porta. ( "DeltaF" uguale a zero )
roll-off = 0.5 hai il coseno rialzato. ( in questo caso il "DeltaF" dipende da diversi fattori )

http://it.wikipedia.org/wiki/Filtro_a_coseno_rialzato

Quindi la scelta del rolloff ti permette di scegliere quanta parte del rumore di transizione portarti dietro.


Ma il filtro anti-aliasing viene applicato automaticamente dai vari software di acquisizione in funzione della frequenza di campionamento?


Ni...

I software di acquisizione lavorano per via numerica, non simbolica, di conseguenza fanno uso della fft. Questa prevede l'introduzione della finestra temporale di acquisizione che rende periodico lo spettro e pertanto rende necessaria una finestra di frequenze per evitare l'aliasing. D'altra parte la finestratura in frequenza genera la periodicizzazione del segnale nel tempo ma la sovrapposizione temporale è evitata proprio grazie alla finestratura nel tempo...

A quanto ricordo le due finestre non vengono scelte indipendentemente l'una dall'altra ne tantomeno in modo "casuale". Ci sono degli schemi ricorrenti a seconda dello specifico algoritmo, ( alcuni ad esempio prevedono eventuale zero padding del segnale e così via).

Quindi il problema non è tanto se il filtro anti-aliasing viene applicato, ma quale viene applicato. La risposta però dipende dalla particolare implementazione del software che usi, e in genere dovrebbe essere inserita tra le specifiche tecniche del software stesso.

:D

Spero di non aver fatto troppi casini, sto prendendo mano con matlab solo da poco.

serbring
26-11-2009, 21:26
guarda... genera un file audio col microfono di windows... importalo in matlab... poi apri fdatool e fai un pò di prove col filtro FIR e ricampiona il tutto a frequenze più basse (devi decimare..) ... e vedi un pò le differenze... è troppo generica la tua domanda, ci vuole solo un pò di esperienza caso per caso e devi adattarti al segnale che vuoi importare...

pensavo che ci fosse una linea guida da eseguire che potesse andar bene per la maggioranza dei casi

serbring
26-11-2009, 21:34
Ni...

I software di acquisizione lavorano per via numerica, non simbolica, di conseguenza fanno uso della fft. Questa prevede l'introduzione della finestra temporale di acquisizione che rende periodico lo spettro e pertanto rende necessaria una finestra di frequenze per evitare l'aliasing. D'altra parte la finestratura in frequenza genera la periodicizzazione del segnale nel tempo ma la sovrapposizione temporale è evitata proprio grazie alla finestratura nel tempo...

A quanto ricordo le due finestre non vengono scelte indipendentemente l'una dall'altra ne tantomeno in modo "casuale". Ci sono degli schemi ricorrenti a seconda dello specifico algoritmo, ( alcuni ad esempio prevedono eventuale zero padding del segnale e così via).

Quindi il problema non è tanto se il filtro anti-aliasing viene applicato, ma quale viene applicato. La risposta però dipende dalla particolare implementazione del software che usi, e in genere dovrebbe essere inserita tra le specifiche tecniche del software stesso.

:D

Spero di non aver fatto troppi casini, sto prendendo mano con matlab solo da poco.

Ora che mi hai nominato il windowing mi hai fatto sorgere un dubbio...ma il windowing è sempre applicato dal sw di acquisizione, giusto?