Possiamo avere un filtro anti aliasing digitale?


12

Sto lavorando su una scheda che non ha filtri antializzati all'ingresso dell'ADC. Ho la possibilità di implementare il mio filtro usando il circuito RC + Opamp. Ma è anche possibile implementare il filtro anti aliasing dopo il campionamento da parte di ADC e l'elaborazione nel dominio digitale: un filtro antialiasing digitale?

Risposte:


11

Giusto per supportare la risposta di Matt e fornire qualche dettaglio in più:

La maggior parte degli ADC moderni svolge la maggior parte del duro lavoro di antialiasing nel dominio digitale. Il motivo è che i filtri digitali tendono a produrre meno sottoprodotti a un costo molto più basso. La catena attuale è:

  • Ingresso analogico.
  • Filtro anti-aliasing analogico.
  • Sovracampionamento (ad es. A 8x).
  • Filtro antialiasing digitale.
  • Decimazione (riduzione a 1x).
  • Output digitale.

L'ulteriore illustrazione, considera quanto segue:

  • L'audio viene campionato a 44100Hz.
  • Ciò fornisce una frequenza di Nyquist di 22050 Hz.
  • Qualsiasi frequenza superiore a 24100 Hz tornerà al range udibile (inferiore a 20 kHz).
  • Da 20000Hz a 24100 è circa un quarto di un'ottava.
  • Anche con un filtro ripido 80dB / 8ve ridurrete le frequenze di aliasing solo di 20dB.

Ma con 8x oversampling:

  • L'audio viene campionato a 352,8 kHz (44,1 kHz x 8).
  • Nyquist è 176,4 kHz.
  • Solo le frequenze superiori a 332,8 kHz rispecchieranno la gamma udibile.
  • Sono circa 4 ottave.
  • Quindi puoi applicare un filtro analogico 24dB / 8ve per ridurre le frequenze di aliasing di 96dB.
  • Quindi sovracampionare.
  • Quindi applicare un filtro digitale a fase lineare tra 20 kHz e 24,1 kHz

Il seguente libro è una risorsa eccellente e chiara per questo tipo di cose.


1
Quello che dici è certamente vero per le applicazioni audio (in cui i chip di codec integrati pronti all'uso hanno sostituito ADC / DAC molto tempo fa) - ma ci sono molti campi dell'ingegneria in cui l'acquisizione viene ancora effettuata dagli ADC SAR vanilla (come standalone chip o integrati in microcontrollori) - e con questi devi fare il duro lavoro!
Pichenettes,

È un bel commento. Tuttavia credo che la risposta sia ancora valida: se puoi permetterti, i filtri antialiasing digitali comportano molti vantaggi.
Izhaki,

volevo solo sapere è questo il modo per assicurarsi che i filtri analogici abbiano geometria e peso ridotti?
gpuguy,

1
Se capisco correttamente la domanda, allora sì: l'uso di un filtro digitale significherà un fiter analogico molto più semplice (in particolare se la qualità deve essere presa in considerazione).
Izhaki,

Intendi "decimare" nella penultima fase del flusso di lavoro di sovracampionamento?
Nick T,

15

No, questo non ha senso. Supponiamo che la frequenza di campionamento ADC sia 1kHz. Un'onda sinusoidale da 100 Hz e un'onda sinusoidale da 900 Hz produrranno esattamente la stessa sequenza di campioni digitali una volta immessi nell'ADC, ma si desidera passare il primo e attenuare il successivo. Come ti aspetti che il tuo filtro digitale produca output diversi quando viene alimentato lo stesso input?

L'unica cosa che potrebbe funzionare sarebbe campionare il segnale di input con la massima velocità consentita dall'ADC, quindi decodificarlo nel dominio digitale fino alla frequenza di campionamento target, ma a meno che non si debbano sprecare cicli della CPU, è meglio utilizzare un analogo filtro a monte.


1
"Un'onda sinusoidale da 100 Hz e un'onda sinusoidale da 900 Hz produrranno esattamente la stessa sequenza di campioni digitali". Questo in generale non è vero (anche se capisco cosa intendi).
niaren,

3
Va bene, questo richiede una condizione particolare per le loro fasi per funzionare, ma non è questo il punto! Il punto è che i tuoi campioni digitali potrebbero apparire come se provenissero da un'onda sinusoidale a 100 Hz, mentre la stessa sequenza di dati avrebbe potuto essere generata da un'onda sinusoidale a 900 Hz.
Pichenettes,

puoi dire qual è quella condizione (esattamente per contenere)?
niaren,

1
π

c'è un errore nella tua risposta. 100Hz e 900 Hz non hanno la stessa uscita campionata. In realtà è [100 +/- k * 1000] che fornirà gli stessi campioni. Quindi, -900, 1100, 2100 ecc. Sono le frequenze con alias corrispondenti a 100Hz. In realtà, 900Hz sarà negativo dell'onda di dimensioni 100Hz.

15

Concordo con la risposta di Pichenettes, ma vorrei aggiungere che è una pratica abbastanza comune utilizzare un semplice filtro anti-aliasing analogico di basso ordine e fare il resto del filtro anti-aliasing nel dominio digitale. Ciò implica ovviamente che non si elabora alla massima frequenza di campionamento ma che si esegue il downsampling dopo il filtro antialiasing digitale. riassumendo:

  1. Naturalmente è necessario un filtro anti-aliasing analogico.

  2. Il filtro analogico può essere mantenuto molto semplice se puoi sottocampionare il tuo segnale. In questo caso è possibile eseguire una maggiore rimozione dell'aliasing nel dominio digitale (prima del downsampling).

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.