Como o erro de quantização gera ruído?

11

Estou aprendendo sobre amostragem e DSP por conta própria. É difícil entender como o erro de quantização resulta em ruído. Acho que sinto falta de um entendimento fundamental, mas não sei dizer o que é. Então, como o erro de quantização gera ruído?

Jan Deinhard
fonte
É mais distorção do que ruído. Depende do sinal e não é aleatório.
Endolith 15/07
endólito, acho que o que não entendo é como o erro resulta em frequências.
Jan Deinhard 15/07
2
distorção sempre produz frequências adicionais. se você distorce uma onda senoidal, ela se torna uma forma de onda repetitiva diferente. qualquer forma de onda repetitiva que não seja uma onda senoidal é composta de múltiplas frequências.
Endolith 15/07
1
Como o @endolith mencionou, vamos supor que você tenha um ADC muito ruim, de modo que você dê um tom puro, mas obtenha um sinal que se pareça com um seno, mas com grandes passos nele. (Portanto, agora o seu sinal se parece com uma escada que sobe e desce com o seno original.) Agora, você sabe intuitivamente que um passo é composto de muitas frequências. É assim que um ADC adiciona frequências conforme você pergunta. É uma operação não linear entre. Se fosse linear, você não poderia criar novas frequências, apenas sobrepor muitas delas juntas.
Spacey
Outra observação: Yannis Tsividis, no ICASSP 2004, fornece uma boa interpretação: Quantização é uma não linearidade rígida e gera um "número infinito de harmônicos". O processo de amostragem dobra todos eles para baixo. Para sinais suficientemente complexos, esses "harmônicos dobrados" parecem um piso de ruído branco.
divB 12/09

Respostas:

6

Suponha que eu tenha um sinal multitoon (seis portadoras, a ± 1/1000, ± 2/1000 e ± 7/1000 da frequência de amostragem)

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

quantizado usando um ADC de 14 bits

wave_quant = round(wave * 16384) / 16384;

A diferença

wave_qnoise = wave_quant - wave;

dá o erro de quantização

Ruído de quantização por tempo

O espectro correspondente

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

Ruído de quantização por frequência

mostra o piso de ruído gerado em todo o espectro.

Isso pressupõe que o erro de quantização não introduz um viés. Se o ADC sempre escolher o valor mais baixo

wave_quant_biased = floor(wave * 16384) / 16384;

obtemos um erro de quantização que não está mais centrado em torno de zero

wave_qnoise_biased = wave_quant_biased - wave;

Erro de quantização com viés por tempo

que tem um pico definido na FFT no compartimento DC

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

Erro de quantização com viés por frequência

Isso se torna um problema real com, por exemplo , a modulação em amplitude em quadratura , onde um deslocamento DC no sinal desmodulado corresponde a uma onda senoidal na frequência de desmodulação.

Simon Richter
fonte
Isso é muito bom, obrigado por sua ajuda. Desta forma, eu explorei a distorção relacionada à quantização.
9

"Ruído", neste contexto, refere-se a qualquer coisa indesejada adicionada ao sinal, não significa necessariamente que seja ruído gaussiano, ruído branco ou qualquer processo aleatório bem descrito.

No contexto da quantização, é um argumento puramente algébrico. Pode-se ver a quantização como a adição de um sinal indesejado ("ruído") igual a ... a diferença entre o sinal original e o sinal quantizado. Observe que esse ruído de quantificação não é aleatório e está correlacionado com o sinal de entrada. Por exemplo, se um sinal é periódico, o ruído de quantização introduzido ao quantificá-lo também será periódico.

pichenettes
fonte
Acho que entendi como a quantização causa o próprio erro. O que me intriga é como gera frequência. Meu entendimento é: "Sinal indesejado" significa frequências indesejadas. Suponha que eu experimente um sinal sinusoidal puro. Em seguida, o erro de quantização introduz "conotações". Suponho que as conotações se originem da forma "escada" do sinal amostrado. Isso está correto?
Jan Deinhard 15/07
1
@FairDinkumThinkum: sim, se você distorcer uma onda senoidal pura, obterá distorção harmônica, que produz novas frequências em múltiplos da frequência da sua onda senoidal. en.wikipedia.org/wiki/Distortion#Harmonic_distortion
endolith 15/07/12
3

Para expandir o que as pichenettes disseram, considere se você possui um sinal de áudio que está sendo digitalizado por um conversor D-A-A que possui apenas uma resolução de 0,01 volt. Se, em algum momento específico do tempo, o sinal de áudio estiver em 7,3269 volts, que será arredondado para 7,33 volts ou truncado para 7,32 volts (dependendo do design do conversor). No primeiro caso, você adicionou um "ruído" de 7,33-7,3269 volts ou 0,0031 volt. No segundo caso, você adicionou "ruído" de 7,32-7,3269 volts ou -0,0069 volt.

Obviamente, há ruído adicional devido ao fato de que o conversor certamente não é infinitamente preciso e provavelmente tem uma precisão parecida com a sua precisão.

Daniel R Hicks
fonte
0

Aqui está uma explicação mais básica para transmitir o ponto fundamental.

  1. Alcance o seu bolso e retire o seu iPhone.
  2. Abra o aplicativo Health -> Atividade Fitness -> Passos seguidos (ativado por padrão).
  3. Anote quantos passos você deu nos últimos dez dias.

Arredonde esses números para os milhares e publique-os aqui. Agora, as outras pessoas aqui precisam adivinhar seus números originais com base no que você postou.

Outras pessoas não conseguem adivinhar com segurança o número exato com base no número arredondado que você forneceu. Isso é perda de dados. E neste caso (porque você usou o arredondamento), isso é chamado de erro de quantização.

William Entriken
fonte