Error de cuantificación

From glossaLAB

[gL.edu] Este artículo recoge contribuciones de José María Díaz Nafría, elaboradas en el contexto de la Clarificación conceptual en torno al "tratamiento digital de la señal", bajo la supervisión de Antonio Jesús Muñoz Montoro y J.M. Díaz Nafría.

Definiciones

También llamado ruido de cuantificación, es el error introducido al representar la señal continua mediante un conjunto finito de de niveles discretos, el cual se define como la diferencia entre las secuencias de valores cuantificados y las muestra reales (antes de la cuantificación):

donde: representa la secuencia original (antes de la cuantificación); es la secuencia de muestras cuantificadas, y Q[.] la operación de cuantificación[1].

Relación señal a ruido de cuantificación

Para cuantificar la relevancia de dicho error respecto a la señal, se usa la relación señal a ruido de cuantificación definida como la relación entre la potencia de la señal (o su valor cuadrático medio) y la potencia del ruido de cuantificación (o su valor cuadrático medio), ya sea en unidades naturales o decibélicas:

En general, esta relación aumenta exponencialmente con el número de bits empleados en la cuantificación, pero dicha dependencia puede varias con las características de la señal. Proakis y Manolakis (2007) proponen un modelo que permite aproximar dicha relación[1]:

Código

La siguiente función de MATLAB permite determinar el error de cuantificación y la relación señal a ruido de cuantificación a partir de las secuencias original y cuantificada:

function [e_q, SQNR] = error_c(x, x_q)
% [e_q, SQNR] = error_c(x, x_q)
% Esta función devuelve el error de cuantificación y la relación señal-a-
% ruido de cuantificación a partir de las secuencias original y cuantificada.
% ENTRADAS
%    x:     secuencia original antes de la cuantificación (vector fila)
%    x_q:   secuencia cuantificada (vector fila)
% SALIDAS
%    e_q:   valor decibélico de dicha relación (vector fila)
%    SQNR:  relación señal a ruido de cuantificación
e_q = x  x_q;
SQNR = 10*log10((x*x')/(e_q*e_q)); % comparación de la energía total de las secuencias, válido para vectores reales y complejos, Ex = [x][x]*
end

Referencias

  1. 1.0 1.1 Proakis, J.G., Manolakis, D.G. (2007). Tratamiento digital de señales. Madrid: Pearson Educación, p.27.