¿Cómo genera ruido el error de cuantización?

11

Estoy aprendiendo sobre muestreo y DSP por mi cuenta. Me cuesta entender cómo el error de cuantificación produce ruido. Creo que extraño un entendimiento fundamental pero no puedo decir qué es. Entonces, ¿cómo genera ruido el error de cuantización?

Jan Deinhard
fuente
Es más distorsión que ruido. Depende de la señal y no es aleatorio.
endolito
endolito, creo que lo que no entiendo es cómo el error produce frecuencias.
Jan Deinhard
2
La distorsión siempre produce frecuencias adicionales. Si distorsiona una onda sinusoidal, se convierte en una forma de onda repetitiva diferente. cualquier forma de onda repetitiva que no sea una onda sinusoidal está compuesta por múltiples frecuencias.
endolito
1
Como ha mencionado @endolith, supongamos que tiene un ADC muy malo, de modo que le da un tono puro, pero recibe una señal que parece un seno pero que tiene grandes pasos. (Entonces, su señal parece una escalera que sube y baja con el seno original.) Ahora, sabe intuitivamente que un escalón está compuesto de muchas frecuencias. Así es como un ADC agregará frecuencias a medida que lo solicite. Es una operación no lineal por cierto. Si fuera lineal, no podría crear nuevas frecuencias, solo superponer muchas de ellas juntas.
Spacey
Otra observación: Yannis Tsividis da una buena interpretación en ICASSP 2004: la cuantización es una no linealidad dura y genera un "número infinito de armónicos". El proceso de muestreo los pliega a todos. Para señales suficientemente complejas, estos "armónicos plegados" parecen un ruido de fondo blanco.
divB

Respuestas:

6

Supongamos que tengo una señal multitono (seis portadoras, a ± 1/1000, ± 2/1000 y ± 7/1000 de frecuencia de muestreo)

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

que se cuantifica usando un ADC de 14 bits

wave_quant = round(wave * 16384) / 16384;

La diferencia

wave_qnoise = wave_quant - wave;

da el error de cuantización

Ruido de cuantización por tiempo

El espectro correspondiente

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

Ruido de cuantización por frecuencia

muestra el ruido de fondo generado en todo el espectro.

Esto supone que el error de cuantificación no introduce un sesgo. Si el ADC siempre elige el valor más bajo

wave_quant_biased = floor(wave * 16384) / 16384;

obtenemos un error de cuantización que ya no se centra alrededor de cero

wave_qnoise_biased = wave_quant_biased - wave;

Error de cuantización con sesgo por tiempo

que tiene un pico definido en el FFT en el contenedor DC

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

Error de cuantización con sesgo por frecuencia

Esto se convierte en un problema real con, por ejemplo , la modulación de amplitud en cuadratura , donde un desplazamiento de CC en la señal demodulada corresponde a una onda sinusoidal a la frecuencia de demodulación.

Simon Richter
fuente
Esto es muy bueno, gracias por su ayuda. De esta manera he explorado la distorsión relacionada con la cuantización.
9

"Ruido" en este contexto se refiere a cualquier cosa no deseada agregada a la señal, no necesariamente significa que sea ruido gaussiano, ruido blanco o cualquier proceso aleatorio bien descrito.

En el contexto de la cuantización, es un argumento puramente algebraico. Uno puede ver la cuantización como la adición de una señal no deseada ("ruido") igual a ... la diferencia entre la señal original y la señal cuantificada. Tenga en cuenta que este ruido de cuantificación no es aleatorio y está correlacionado con la señal de entrada. Por ejemplo, si una señal es periódica, el ruido de cuantificación introducido al cuantificarla también será periódico.

pichenettes
fuente
Creo que entendí cómo la cuantización causa el error en sí. Lo que me desconcierta es cómo genera frecuencia. Mi entendimiento es: "Señal no deseada" significa frecuencias no deseadas. Supongamos que muestreo una señal sinusoidal pura. Luego, el error de cuantificación introduce "armónicos". Supongo que los armónicos se originan en la forma de "escalera" de la señal muestreada. ¿Es eso correcto?
Jan Deinhard
1
@FairDinkumThinkum: sí, si distorsionas una onda sinusoidal pura, obtendrás una distorsión armónica, que produce nuevas frecuencias en múltiplos de la frecuencia de tu onda sinusoidal. es.wikipedia.org/wiki/Distortion#Harmonic_distortion
endolith
3

Para ampliar lo que dicen las pichenettes, considere si tiene una señal de audio que está siendo digitalizada por un convertidor D-a-A que solo tiene una resolución de 0.01 voltios. Si, en algún instante particular en el tiempo, la señal de audio está en 7.3269 voltios, eso se redondeará a 7.33 voltios o se truncará a 7.32 voltios (dependiendo del diseño del convertidor). En el primer caso, ha agregado "ruido" de 7.33-7.3269 voltios, o 0.0031 voltios. En el segundo caso, ha agregado "ruido" de 7.32-7.3269 voltios, o -0.0069 voltios.

Por supuesto, se agrega ruido adicional debido al hecho de que el convertidor ciertamente no es infinitamente preciso, y probablemente tenga una precisión a la par con su precisión.

Daniel R Hicks
fuente
0

Aquí hay una explicación más básica para transmitir el punto fundamental.

  1. Busca en tu bolsillo y saca tu iPhone.
  2. Abra la aplicación Salud -> Actividad física -> Pasos recorridos (esto está activado de forma predeterminada).
  3. Escriba cuántos pasos caminó durante cada uno de los últimos diez días.

Redondea esos números a los miles y publícalos aquí. Ahora las otras personas aquí tienen que adivinar sus números originales en función de lo que publicaron.

Otras personas no pueden adivinar de manera confiable el número exacto basado en el número redondeado que proporcionó. Eso es pérdida de datos. Y en este caso (porque usaste redondeo) eso se llama error de cuantización.

William Entriken
fuente