Reconocida por John Wozencraft , la decodificación secuencial es una técnica de memoria limitada para decodificar códigos de árbol . Se utiliza principalmente como algoritmo de decodificación aproximada para códigos convolucionales de longitud restringida . Si bien este método puede no ser tan preciso como el algoritmo de Viterbi , permite ahorrar una cantidad considerable de memoria . Se empleó para decodificar un código convolucional en la misión Pioneer 9 de 1968 .
La decodificación secuencial explora el código del árbol de tal manera que se intente minimizar el coste computacional y los requisitos de memoria para almacenar el árbol.
Existe una variedad de enfoques de decodificación secuencial basados en la elección de la métrica y el algoritmo. Las métricas incluyen:
- Métrica de Fano
- Métrica de Zigangirov
- Métrica de Gallager
Los algoritmos incluyen:
- Algoritmo de pila
- Algoritmo de Fano
- Algoritmo Creeper
Métrica de Fano
Dado un árbol parcialmente explorado (representado por un conjunto de nodos que limitan la exploración), nos interesa saber cuál es el mejor nodo para continuar la exploración. La métrica de Fano (llamada así en honor a Robert Fano ) permite calcular cuál es el mejor nodo para seguir explorando. Esta métrica es óptima si no existen otras restricciones (por ejemplo, de memoria).
Para un canal binario simétrico (con probabilidad de error)La métrica de Fano se puede derivar mediante el teorema de Bayes . Nos interesa seguir el camino más probable.dado un estado explorado del árboly una secuencia recibida. Usando el lenguaje de la probabilidad y el teorema de Bayes queremos elegir el máximo sobrede:
A continuación, introducimos la siguiente notación:
- para representar la longitud máxima de transmisión en ramas
- para representar el número de bits en una rama del código (el denominador de la tasa de código ,).
- para representar el número de errores de bits en la ruta(la distancia de Hamming entre las etiquetas de las ramas y la secuencia recibida)
- ser la longitud deen ramas.
Expresamos la probabilidadcomo(utilizando la probabilidad del canal simétrico binario para el primerobits seguidos de una distribución a priori uniforme sobre los bits restantes).
Expresamos lo anterioren términos del número de opciones de rama que se han elegido,y el número de ramas desde cada nodo,.
Por lo tanto:
Podemos maximizar de forma equivalente el logaritmo de esta probabilidad, es decir
Esta última expresión es la métrica de Fano. Lo importante es que tenemos dos términos: uno basado en el número de bits erróneos y otro basado en el número de bits correctos. Por lo tanto, podemos actualizar la métrica de Fano simplemente sumandopara cada bit que no coincide ypara cada bit coincidente.
Tasa de corte computacional
For sequential decoding to be a good choice of decoding algorithm, the number of states explored should remain small (otherwise an algorithm which deliberately explores all states, e.g. the Viterbi algorithm, may be more suitable). For a particular noise level there is a maximum coding rate called the computational cutoff rate where there is a finite backtracking limit. For the binary symmetric channel:
Algorithms
Stack algorithm
The simplest algorithm to describe is the "stack algorithm" in which the best paths found so far are stored. Sequential decoding may introduce an additional error above Viterbi decoding when the correct path has or more highly scoring paths above it; at this point the best path will drop off the stack and be no longer considered.
Fano algorithm
The famous Fano algorithm (named after Robert Fano) has a very low memory requirement and hence is suited to hardware implementations. This algorithm explores backwards and forward from a single point on the tree.
- The Fano algorithm is a sequential decoding algorithm that does not require a stack.
- The Fano algorithm can only operate over a code tree because it cannot examine path merging.
- At each decoding stage, the Fano algorithm retains the information regarding three paths: the current path, its immediate predecessor path, and one of its successor paths.
- Based on this information, the Fano algorithm can move from the current path to either its immediate predecessor path or the selected successor path; hence, no stack is required for queuing all examined paths.
- The movement of the Fano algorithm is guided by a dynamic threshold T that is an integer multiple of a fixed step size Δ.
- Only the path whose path metric is no less than T can be next visited. According to the algorithm, the process of codeword search continues to move forward along a code path, as long as the Fano metric along the code path remains non-decreasing.
- Once all the successor path metrics are smaller than T, the algorithm moves backward to the predecessor path if the predecessor path metric beats T; thereafter, threshold examination will be subsequently performed on another successor path of this revisited predecessor.
- In case the predecessor path metric is also less than T, the threshold T is one-step lowered so that the algorithm is not trapped on the current path.
- For the Fano algorithm, if a path is revisited, the presently examined dynamic threshold is always lower than the momentary dynamic threshold at the previous visit, guaranteeing that looping in the algorithm does not occur, and that the algorithm can ultimately reach a terminal node of the code tree, and stop.
References
- John Wozencraft y B. Reiffen, Decodificación secuencial , ISBN 0-262-23006-2
- Rolf Johannesson y Kamil Sh. Zigangirov, Fundamentos de la codificación convolucional (capítulo 6), ISBN 0-470-27683-5
Enlaces externos
- " Árboles de corrección ": simulador del proceso de corrección que utiliza una cola de prioridad para elegir el nodo de métrica máxima (llamado peso).
- Detección y corrección de errores