En teoría de codificación , la decodificación es el proceso de traducir los mensajes recibidos en palabras de código de un código determinado . Existen muchos métodos comunes para asignar mensajes a palabras de código. Estos se utilizan a menudo para recuperar mensajes enviados a través de un canal ruidoso , como un canal simétrico binario .
se considera un código binario con la longitud ; serán elementos de ; y es la distancia entre esos elementos.
Se puede dar el mensaje y luego el observador ideal decodifica el código y genera la palabra clave . El proceso da como resultado esta solución:
Por ejemplo, una persona puede elegir la palabra clave que tiene más probabilidades de recibirse como mensaje después de la transmisión.
Cada palabra clave no tiene una posibilidad esperada: puede haber más de una palabra clave con la misma probabilidad de mutar en el mensaje recibido. En tal caso, el emisor y el receptor deben acordar de antemano una convención de decodificación. Las convenciones más populares incluyen:
Dado un vector recibido, la decodificación de máxima verosimilitud elige una palabra de código que maximiza
es decir, la palabra clave que maximiza la probabilidad de que se haya recibido, dado que se envió. Si todas las palabras clave tienen la misma probabilidad de ser enviadas, entonces este esquema es equivalente a la decodificación del observador ideal. De hecho, por el teorema de Bayes ,
Al fijar , se reestructura y es constante, ya que todas las palabras de código tienen la misma probabilidad de ser enviadas. Por lo tanto, se maximiza como una función de la variable precisamente cuando se maximiza, y la afirmación sigue.
Al igual que con la decodificación del observador ideal, se debe acordar una convención para la decodificación no única.
El problema de decodificación de máxima verosimilitud también se puede modelar como un problema de programación entera . [1]
El algoritmo de decodificación de máxima verosimilitud es un ejemplo del problema de "marginalizar una función producto" que se resuelve aplicando la ley distributiva generalizada . [2]
Dada una palabra de código recibida , la decodificación de distancia mínima elige una palabra de código para minimizar la distancia de Hamming :
es decir, elija la palabra clave que sea lo más cercana posible a .
Tenga en cuenta que si la probabilidad de error en un canal discreto sin memoria es estrictamente menor que la mitad, entonces la decodificación de distancia mínima es equivalente a la decodificación de máxima verosimilitud , ya que si
entonces:
que (ya que p es menor que la mitad) se maximiza minimizando d .
La decodificación de distancia mínima también se conoce como decodificación del vecino más cercano . Puede ser asistida o automatizada mediante el uso de una matriz estándar . La decodificación de distancia mínima es un método de decodificación razonable cuando se cumplen las siguientes condiciones:
Estas suposiciones pueden ser razonables para transmisiones a través de un canal binario simétrico , pero pueden ser irrazonables para otros medios, como un DVD, donde un solo rasguño en el disco puede causar un error en muchos símbolos o palabras de código adyacentes.
Al igual que con otros métodos de decodificación, se debe acordar una convención para la decodificación no única.
La decodificación de síndromes es un método muy eficiente para decodificar un código lineal en un canal ruidoso , es decir, en el que se cometen errores. En esencia, la decodificación de síndromes es una decodificación de distancia mínima utilizando una tabla de búsqueda reducida. Esto es posible gracias a la linealidad del código. [3]
Supongamos que es un código lineal de longitud y distancia mínima con matriz de comprobación de paridad . Entonces claramente es capaz de corregir hasta
errores cometidos por el canal (ya que si no se cometen más de errores, la decodificación de distancia mínima decodificará correctamente la palabra de código transmitida incorrectamente).
Ahora supongamos que se envía una palabra de código por el canal y se produce el patrón de error. Luego se recibe. La decodificación de distancia mínima ordinaria buscaría el vector en una tabla de tamaño para la coincidencia más cercana, es decir, un elemento (no necesariamente único) con
Para todos . La decodificación del síndrome aprovecha la propiedad de la matriz de paridad que:
Para todos . El síndrome del receptor se define como:
Para realizar la decodificación ML en un canal simétrico binario , es necesario consultar una tabla precalculada de tamaño , que se asigna a .
Tenga en cuenta que esto ya es significativamente menos complejo que la decodificación de una matriz estándar .
Sin embargo, suponiendo que no se hayan cometido más de 10 errores durante la transmisión, el receptor puede buscar el valor en una tabla de tamaño aún más reducida.
Se trata de una familia de métodos probabilísticos de Las Vegas, todos ellos basados en la observación de que es más fácil adivinar suficientes posiciones libres de errores que adivinar todas las posiciones con errores.
La forma más simple se debe a Prange: Sea la matriz generadora de utilizada para la codificación. Seleccione columnas de al azar y denote por la submatriz correspondiente de . Con una probabilidad razonable tendrá rango completo, lo que significa que si dejamos que sea el subvector para las posiciones correspondientes de cualquier palabra de código de para un mensaje , podemos recuperar como . Por lo tanto, si tuvimos suerte de que estas posiciones de la palabra recibida no contuvieran errores y, por lo tanto, fueran iguales a las posiciones de la palabra de código enviada, entonces podemos decodificar.
Si se produjeron errores, la probabilidad de una selección tan afortunada de columnas viene dada por .
Este método ha sido mejorado de diversas maneras, por ejemplo por Stern [4] y Canteaut y Sendrier. [5]
La respuesta parcial de máxima verosimilitud ( PRML ) es un método para convertir la señal analógica débil del cabezal de un disco magnético o una unidad de cinta en una señal digital.
Un decodificador de Viterbi utiliza el algoritmo de Viterbi para decodificar un flujo de bits que se ha codificado utilizando corrección de errores hacia adelante basada en un código convolucional. La distancia de Hamming se utiliza como métrica para decodificadores de Viterbi de decisión dura. La distancia euclidiana al cuadrado se utiliza como métrica para decodificadores de decisión suave.
Algoritmo de decodificación de decisión óptima (ODDA) para un sistema TWRC asimétrico. [ aclaración necesaria ] [6]