Aggiunta di un filtro anti-aliasing all'op-amp prima di ADC


9

Sto progettando un circuito destinato a catturare campioni audio da più canali per la localizzazione della sorgente sonora.

Ogni canale ha il seguente circuito op-amp a 2 stadi, prima di entrare in un ADC a 13 bit:

inserisci qui la descrizione dell'immagine

Vorrei essere in grado di localizzare sorgenti sonore fino a circa 10 KHz, ma maggiore è la larghezza di banda, meglio è (penso che i microfoni a condensatore possano gestire fino a circa 16 KHz, non sicuro al 100%)

Più veloce campiono, migliore è la risoluzione spaziale che posso ottenere. Sono in grado di spremere una frequenza di campionamento di circa 75 KHz.

Domanda Devo preoccuparmi dei filtri anti-aliasing prima dell'ADC? A quanto ho capito, l'aliasing si verifica solo quando si opera al di sotto del limite di Nyquist, quindi una componente di frequenza massima teorica di 75 KHz / 2 sarebbe il mio limite, che è molto più alto di quanto mi serva.

Se non ho bisogno di filtri anti-aliasing, c'è qualcos'altro che dovrei fare per rimuovere il rumore indesiderato sull'output? Quando guardo un ambito sembra essere OK, ma questo è solo con 1 canale creato, sono preoccupato quando aggiungo tutti e cinque i canali sulla stessa scheda che interferiranno l'uno con l'altro.


1
Ti mancano alcuni punti nel tuo schema. Un caso particolare fa sembrare che l'unico scopo per la coppia R2 / R4 sia quello di aggiungere un carico di 25 uA sull'alimentazione + 5V.
Michael Karas,

1
Il crosstalk tra i canali non è "rumore". Il filtro non lo eliminerà.
Scott Seidman,

1
Ho aggiornato lo schema. @ScottSeidman c'è qualcosa che posso fare per prevenire / eliminare la diafonia?
David Berlin,

1
Come disegnato, R3 e R5 sono inutili. Manca un limite inteso tra l'output di IC1A e il nodo tra R5 e R3.
Olin Lathrop,

1
Buon avvistamento @OlinLathrop, l'ho aggiunto ora.
David Berlin,

Risposte:


13

È sempre buona norma utilizzare il filtro antialiasing prima di digitalizzare un segnale. Sebbene il segnale target non contenga componenti di frequenza superiori alla frequenza di Nyquist, potrebbero esserci altre fonti di rumore.

Prima di tutto devi decidere quale larghezza di banda vuoi coprire. Se il tuo ADC campiona a 75 kHz, allora non dovrebbero esserci frequenze superiori a 37,5 kHz. Successivamente, calcoliamo l'attenuazione e l'ordine necessari del filtro anti-aliasing. Per questo considera la seguente figura:

Relazione tra filtro antialiasing e sovracampionamento

Questa figura presenta due casi uno con una frequenza di campionamento fs e uno con K * fs . A causa del campionamento del segnale di ingresso (missaggio digitale), tutti i componenti di frequenza superiori a fs / 2 verranno "ripiegati". I componenti di frequenza superiori a fs-fa verranno quindi aliasati nel segnale di interesse (rosso).
Nella figura (A), supponiamo che tu voglia campionare un segnale con una larghezza di banda ( fa ) vicino alla velocità di Nyquist ( fs / 2 ). Per garantire un determinato intervallo dinamico (DR) abbiamo bisogno di un ripido roll-off, ad esempio un filtro alto oder che attenua qualsiasi rumore con frequenze superiori a fs-fa . Nella figura (B) utilizziamo una frequenza di campionamento più alta ( K * fs) che rilassa l'ordine richiesto del filtro e semplifica la progettazione del circuito.

Come hai già detto, il tuo ADC ha una risoluzione di 13 dB. Il tuo SNR ideale (rapporto segnale / rumore) o in questo caso il tuo DR è quindi:

SNR=N6.02+1.76[dB]=80dB

Quindi, nel caso ideale, si desidera un'attenuazione di almeno 80 dB a fs-fa . Un filtro passa-basso di base del primo ordine ha un'attenuazione di 20 dB / dec. Se si limita la larghezza di banda del segnale a dire 20kHz, la frequenza di campionamento ideale è di 200 MHz.

f-80dB=fun'1080dB20dB=200MHz

Per soddisfare questa limitazione con la frequenza di campionamento di 75 kHz, è necessario un filtro passa basso di 8 ° ordine. Questo è certamente molto, ma tutti questi calcoli assumono un rumore uguale in ampiezza come segnale di interesse. In pratica molto probabilmente è sufficiente un filtro di secondo o terzo ordine.

Per ulteriori informazioni, consultare: W. Kester, Manuale per la conversione dei dati: dispositivi analogici. Amsterdam: Elsevier Newnes, 2005.


1
Grazie Martin. Hai forse un link a dove provengono queste equazioni in modo che io possa leggere un po 'di più e capirle?
David Berlin,

1
@david W. Kester, il manuale sulla conversione dei dati dei dispositivi analogici è un ottimo libro sugli ADC in generale. La figura è tratta dal capitolo 2 pagina 2.29. Ho aggiunto un link nel mio post sopra.
Martin,

Giusto per essere chiari. Un filtro anti aliasing è essenzialmente solo un filtro passa-basso, sì?
Luca,

1
@luke Correct. Le frequenze al di sotto di fs / 2 possono passare mentre qualsiasi altra cosa dovrebbe essere attenuata il più possibile. C'è un'eccezione. Se il tuo segnale di interesse ha una banda limitata con tutte le frequenze sopra lo zero (ad es. Segnale passa-banda), allora usi il sottocampionamento e quindi hai bisogno di un filtro anti-aliasing passa-banda. Vedi anche il sottocampionamento
Martin

10

Devo preoccuparmi dei filtri anti-aliasing prima dell'ADC

A meno che il tuo ADC non abbia un filtro anti-aliasing integrato, allora sì, dovresti occupartene anche se sei interessato solo a frequenze al di sotto del limite di nyqist.

Il motivo è che le frequenze superiori alla piega limite nyquist (specchio) rientrano nella gamma di frequenza di interesse. Ad esempio, se stai campionando a 20 kHz e il tuo microfono a condensatore raccoglie l'audio a 15 kHz, troverai un forte segnale da 5 kHz nei dati campionati.

Dato che stai già utilizzando opamps, puoi facilmente aggiungere un filtro passa-basso economico al circuito esistente. Per fare ciò basta mettere un condensatore in parallelo a R6 e R7. Agiranno come una bassa resistenza alle alte frequenze e ridurranno il guadagno complessivo lasciando inalterate le basse frequenze. Questo aiuterà già un po 'ad attenuare i componenti ad alta frequenza e ridurre l'aliasing.

Se vuoi prestazioni migliori dai un'occhiata ai filtri passa-basso sallen-key. Un filtro di terzo ordine può essere costruito attorno a un singolo opamp.

Per quanto riguarda il tuo circuito in generale: se stai alimentando gli opamp TL64 da un solo alimentatore da 5 V che non funzionerà. Si superano diversi parametri dalla scheda tecnica. Il più notevole è che hai solo la metà della tensione di alimentazione minima. Inoltre, gli opamp TL64 hanno un intervallo di tensione di uscita minimo garantito a 4 V di distanza dalle rotaie, quindi anche con un'alimentazione di 10 V il segnale sarebbe limitato a una piccola banda di 2 V.

Ti suggerisco di scegliere un opamp per le operazioni di alimentazione singola come LM358 (TSH80 / TSH84 è un aggiornamento moderno) o utilizzare un opamp rail-to-rail.


2
Grazie per il prezioso feedback. Sono andato a controllare il foglio dati per questo opamp e tu hai ragione, comunque il mio circuito funziona !? Sto solo dando + 5 V e 0 V, eppure la mia onda inizia a tagliare a circa 3,5 V picco-picco. più bizzarro. Non sono sicuro se dovrei cambiarlo in linea di principio o lasciarlo perché funziona ...
David Berlin,

3
I parametri nella scheda tecnica sono i valori peggiori. Il tipico opamp può avere caratteristiche migliori. Imho usando l'opamp fuori specifica va bene se è per un progetto personale o un prototipo.
Nils Pipenbrinck,
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.