In che modo l'errore di quantizzazione genera rumore?


11

Sto imparando il campionamento e il DSP da solo. Ho difficoltà a capire come l'errore di quantizzazione si traduca in rumore. Penso che mi manca una comprensione fondamentale ma non so dire di cosa si tratti. In che modo l'errore di quantizzazione genera rumore?


È più distorsione che rumore. Dipende dal segnale e non è casuale.
endolith,

endolito, penso che ciò che non capisco sia come l'errore si traduca in frequenze.
Jan Deinhard,

2
la distorsione produce sempre frequenze aggiuntive. se distorci un'onda sinusoidale, diventa una forma d'onda ripetitiva diversa. qualsiasi forma d'onda ripetitiva diversa da un'onda sinusoidale è composta da più frequenze.
endolith,

1
Come accennato da @endolith, supponiamo che tu abbia un ADC pessimo, tale da dargli un tono puro, ma ottieni un segnale che sembra un seno ma ha grandi passi in esso. (Quindi ora il tuo segnale sembra una scala che va su e giù con il seno originale.) Ora, sai intuitivamente che un passo è composto da molte frequenze. Ecco come un ADC aggiungerà le frequenze quando lo chiedi. È un'operazione non lineare tra l'altro. Se fosse lineare, non potresti creare nuove frequenze, sovrapponendole solo molte insieme.
Spacey,

Un'altra osservazione: una bella interpretazione è data da Yannis Tsividis in ICASSP 2004: la quantizzazione è una non linearità dura e genera un "numero infinito di armoniche". Il processo di campionamento li ripiega tutti. Per segnali sufficientemente complessi, queste "armoniche ripiegate" sembrano un rumore bianco.
divB

Risposte:


6

Supponiamo che io abbia un segnale multitono (sei portatori, a ± 1/1000, ± 2/1000 e ± 7/1000 della frequenza di campionamento)

x = (1:1000);
wave = sin(x/1000*2*pi) + sin(x/1000*2*pi*2) + sin(x/1000*2*pi*7);

che è quantizzato usando un ADC a 14 bit

wave_quant = round(wave * 16384) / 16384;

La differenza

wave_qnoise = wave_quant - wave;

dà l'errore di quantizzazione

Quantizzazione Rumore per tempo

Lo spettro corrispondente

wave_qnoise_freq = mag(fftshift(fft(wave_qnoise)) / sqrt(1000));

Rumore di quantizzazione per frequenza

mostra il rumore generato attraverso l'intero spettro.

Ciò presuppone che l'errore di quantizzazione non introduca una distorsione. Se l'ADC sceglie sempre il valore più basso

wave_quant_biased = floor(wave * 16384) / 16384;

otteniamo un errore di quantizzazione che non è più centrato attorno a zero

wave_qnoise_biased = wave_quant_biased - wave;

Errore di quantizzazione con distorsione temporale

che ha un picco definito nell'FFT nel contenitore DC

wave_qnoise_biased_freq = mag(fftshift(fft(wave_qnoise_biased)) / sqrt(1000));

Errore di quantizzazione con distorsione per frequenza

Questo diventa un vero problema, ad esempio con la modulazione di ampiezza in quadratura , in cui un offset CC nel segnale demodulato corrisponde a un'onda sinusoidale alla frequenza di demodulazione.


Grazie mille per il tuo aiuto. in questo modo ho esplorato la distorsione legata alla quantizzazione.

9

"Rumore" in questo contesto si riferisce a qualsiasi cosa indesiderata aggiunta al segnale, non significa necessariamente che si tratti di rumore gaussiano, rumore bianco o qualsiasi processo casuale ben descritto.

Nel contesto della quantizzazione, è un argomento puramente algebrico. Si può vedere la quantizzazione come l'aggiunta di un segnale indesiderato ("rumore") uguale a ... la differenza tra il segnale originale e il segnale quantizzato. Si noti che questo rumore di quantificazione non è casuale ed è correlato al segnale di ingresso. Ad esempio, se un segnale è periodico, anche il rumore di quantizzazione introdotto durante la quantizzazione sarà periodico.


Penso di aver capito come la quantizzazione causa l'errore stesso. Ciò che mi confonde è come genera frequenza. La mia comprensione è: "Segnale indesiderato" significa frequenze indesiderate. Supponiamo di campionare un segnale sinusoidale puro. Quindi l'errore di quantizzazione introduce "sovratoni". Suppongo che le sfumature provengano dalla forma a "scala" del segnale campionato. È corretto?
Jan Deinhard,

1
@FairDinkumThinkum: sì, se distorci un'onda sinusoidale pura, otterrai una distorsione armonica, che produce nuove frequenze a multipli della frequenza dell'onda sinusoidale. it.wikipedia.org/wiki/Distortion#Harmonic_distortion
endolith

3

Per espandere ciò che ha detto Pichenette, considera se hai un segnale audio che viene digitalizzato da un convertitore D-A che ha solo una risoluzione di 0,01 volt. Se, in un determinato istante nel tempo, il segnale audio è a 7,3269 volt, verrà arrotondato a 7,33 volt o troncato a 7,32 volt (a seconda del design del convertitore). Nel primo caso hai aggiunto "rumore" di 7,33-7,3269 volt, o 0,0031 volt. Nel secondo caso hai aggiunto "rumore" di 7,32-7,3269 volt, o -0,0069 volt.

Naturalmente, c'è del rumore aggiuntivo aggiunto a causa del fatto che il convertitore non è certamente infinitamente accurato e probabilmente ha un'accuratezza alla pari con la sua precisione.


0

Ecco una spiegazione più basilare per chiarire il punto fondamentale.

  1. Mettiti in tasca ed elimina il tuo iPhone.
  2. Apri l'app Salute -> Attività fitness -> Passi pedonali (attivata per impostazione predefinita).
  3. Annota quanti passaggi hai percorso durante ciascuno degli ultimi dieci giorni.

Arrotonda quei numeri a migliaia e pubblicali qui. Ora le altre persone qui devono indovinare i tuoi numeri originali in base a ciò che hai pubblicato.

Altre persone non possono indovinare in modo affidabile il numero esatto in base al numero arrotondato fornito. Questa è la perdita di dati. E in questo caso (perché hai usato l'arrotondamento) che si chiama errore di quantizzazione.

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.