Domanda:
Ottimo compromesso tra profondità di bit ADC e frequenza di campionamento
Jeffrey Nichols
2016-01-12 01:59:48 UTC
view on stackexchange narkive permalink

Ho un campionamento ADC a 24 bit a 31250 campioni al secondo. Li sto raccogliendo su un dispositivo wireless e li invio in tempo reale a un PC per la registrazione (e l'analisi successiva). La mia banda di interesse è 0-1000 Hz e l'ADC produce un rumore più o meno gaussiano con un livello di circa 19 LSB RMS.

Il mio collegamento radio ha un throughput limitato, quindi non posso inviare ogni campione da l'ADC al PC (richiederebbe 750 kbps) e deve invece inviare un sottoinsieme di dati (inferiore a circa 190 kbps).

L'obiettivo è ottenere il livello di rumore più basso possibile su un grafico dello spettro (ad es. metodo Welch) per una determinata durata di dati (ad es. 10 minuti).

Con questo obiettivo in mente, è meglio calcolare la media di più campioni a 24 bit insieme e inviare l'intero contenuto di bit (frequenza di campionamento inferiore, numero di bit più alto) o è meglio calcolare la media di un numero inferiore di campioni a 24 bit e scartare i bit meno rumorosi (frequenza di campionamento più alta, numero di bit inferiore)? scartare i bit rumorosi, quanti ne devo tenere per un adeguato sovracampionamento sul lato PC?

Esiste un metodo di elaborazione alternativo che fornirebbe risultati migliori rispetto alla semplice media? Sembra che Delta-Sigma possa essere applicato solo mentre il segnale analogico viene digitalizzato, non dopo il fatto (e non posso cambiare il mio hardware).

AGGIORNAMENTO:

Ho letto molto sull'argomento da quando ho posto questa domanda e ho scoperto che avevo molte idee sbagliate.

Il punto centrale che non ho capito è che avere un campionamento più elevato rate non consente di ridurre il rumore bianco nella banda di interesse. Stavo confondendo l'idea di ridurre il rumore di quantizzazione mediante sovracampionamento e decimazione con l'idea di ridurre il rumore nello spettro di potenza calcolando la media su un periodo di tempo più lungo.

In superficie, entrambi sembrano indicare che avere più dati consente di rimuovere più rumore. Ma nel caso del metodo di Welch, questo è vero solo se la finestra temporale in esame viene allungata. Non aiuta ad aumentare la frequenza di campionamento (e in effetti aumentare la frequenza di campionamento crea un carico di elaborazione più pesante).

D'altro canto, la tecnica di sovracampionamento e decimazione non può ridurre il rumore termico (o qualsiasi altro rumore analogico). Riduce semplicemente il rumore di quantizzazione in banda distribuendo la potenza del rumore fisso su una gamma di frequenze più ampia. Una volta che il rumore di quantizzazione in banda è stato ridotto al di sotto del livello di rumore analogico, l'ulteriore applicazione di sovracampionamento e decimazione diventa notevolmente meno utile.

Esiste una tecnica completamente digitale per ridurre il rumore di quantizzazione nella banda di interesse chiamata Riduzione del rumore. È parte integrante del funzionamento di un convertitore Delta-Sigma, ma può essere applicato indipendentemente, ad esempio quando si riduce la profondità di bit. Come per il sovracampionamento e la decimazione, non può fare nulla per il rumore termico, poiché fa già parte del segnale misurato. Poiché il rumore di quantizzazione non è un fattore limitante (dato che controllo la profondità di bit in onda) è di utilità limitata per me.

Con questa nuova conoscenza, mi sembra che dovrei ridurre la frequenza di campionamento il più possibile senza distorcere o influenzare negativamente la banda passante del segnale (ad esempio, prestando attenzione alla velocità di Nyquist). Posso limitare la frequenza di campionamento al minimo e quindi risparmiare energia non utilizzando il throughput massimo della radio. Come ulteriore vantaggio, questo riduce i requisiti di archiviazione e la complessità di elaborazione.

Una risposta:
Fred Schleifer
2016-01-13 03:34:48 UTC
view on stackexchange narkive permalink

La media di set di campioni a 24 bit consiste essenzialmente nell'applicazione di un filtro con una risposta all'impulso rettangolare, che porta a una risposta in frequenza di una funzione sinc. I picchi nelle code della funzione sinc ridurranno parte del rumore nella banda di interesse.

Tuttavia, la media semplice potrebbe funzionare bene. Ad esempio, la media di gruppi di otto campioni sul trasmettitore riduce il rumore gaussiano a

$$ {19 \ textrm {LSB rms} \ over \ sqrt {8}} = 6.7 \ textrm {LSB rms} $ $

Dato che il rumore risultante è ancora ben al di sopra dell'LSB, il taglio della media ai 24 bit originali sembra corretto, pur prevenendo il potenziale overflow. Questo esempio utilizza una potenza di due per il fattore di downsampling poiché la divisione per la media è un semplice spostamento a destra.

Downsampling di più di un fattore di circa otto (con questo semplice filtro) rischia di avvicinarsi troppo a la frequenza di Nyquist per la banda passante da 1 kHz.

La media di un minor numero di campioni dovrebbe aliasare meno rumore nella banda passante, ma se poi devi troncare i bit bassi per soddisfare il limite di larghezza di banda, potresti finire con un LSB che è maggiore del rumore di fondo, il che è negativo.

Se hai abbastanza potenza di elaborazione sul tuo trasmettitore, il modo migliore per farlo è con un filtro di decimazione FIR passa basso che preserva la tua banda di interesse evitando l'aliasing del rumore.

Ho aggiornato la mia domanda cercando di spiegare le mie idee sbagliate (e perché la mia domanda non aveva senso come chiesto).La tua risposta riguarda la parte rimanente e ha molto senso.Un filtro di decimazione FIR sembra l'approccio migliore.
L'altro tipo di rumore che non aiuta è la non linearità.Se il tuo AD legge sempre un valore basso, diciamo, 1 LSB, fare la media di quel tempo N non aiuta.Stranamente, l'aggiunta di rumore al segnale può aiutare a calcolare la media della non linearità differenziale


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...