ES2201540T3 - Metodo y aparato de decodificacion viterbi de codigos perforados. - Google Patents

Metodo y aparato de decodificacion viterbi de codigos perforados.

Info

Publication number
ES2201540T3
ES2201540T3 ES98950035T ES98950035T ES2201540T3 ES 2201540 T3 ES2201540 T3 ES 2201540T3 ES 98950035 T ES98950035 T ES 98950035T ES 98950035 T ES98950035 T ES 98950035T ES 2201540 T3 ES2201540 T3 ES 2201540T3
Authority
ES
Spain
Prior art keywords
bits
metric
data
state
encoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES98950035T
Other languages
English (en)
Inventor
Ken Jakobsen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Danmark AS
Original Assignee
Motorola AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola AS filed Critical Motorola AS
Application granted granted Critical
Publication of ES2201540T3 publication Critical patent/ES2201540T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/23Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

Un método de acuerdo con la invención permite la decodificación de datos que hayan sido codificados en forma convolucional, comprendiendo los datos unos grupos consecutivos de bits, en el que cada grupo (Gt) comprende n bits cuyos valores dependen del cambio de estado en particular (St) del codificador de datos que tiene lugar en un instante en particular (t), siendo el cambio de estado en particular (St) uno de un conjunto de cambios de estado posibles (Sj), que el codificador de datos podría haber ejecutado en dicho instante en particular (t), el método de decodificación de los datos comprende, para el grupo (Gt) de n bits recibidos en el instante en particular (t): a) efectuar comparaciones entre los n bits del grupo Gt y cada posible permutación (Pi) de n bits, y para cada comparación, calcular un valor numérico para la métrica de error (Mti) entre el grupo (Gt) y la permutación (Pi); y b) consultar una tabla de consulta (Tt) precalculada, la cual contiene le conjunto de cambios de estado posibles Sj, y que indica para cada uno de estos cambios de estado (Sj) una permutación en particular de las mencionadas permutaciones (Pi) asociadas con dicho cambio de estado (Sj), y generando una tabla métrica para asignar a cada cambio de estado (Sj) en la tabla de consulta (Tt) la métrica (Mti) calculada en la etapa a) para la permutación (Pi) asociada con el cambio de estado (Sj); y c) utilizar la tabla métrica de los valores métricos (Mti) asignados al conjunto de cambios de estado posibles (Sj) para actualizar la métrica acumulativa utilizada para decodificar los datos codificados de convolución.

Description

Método y aparato de decodificación Viterbi de códigos perforados.
La invención está relacionada con la decodificación de datos codificados. En particular, la invención está relacionada con un aparato y un método de decodificación de datos recibidos, los cuales hayan sido codificados por convolución y perforados con antelación a la transmisión.
Antecedentes
La codificación convolucional es un proceso mediante el cual el código se genera a partir de una señal fuente. El código que se genera comprende bits de datos que se derivan de la señal fuente de acuerdo con un esquema de codificación convolucional en particular en utilización.
El código generado en un periodo de tiempo dado depende tanto de los valores de los datos como de la señal fuente en dicho periodo de tiempo, y de los valores de los datos de la señal fuente en los periodos de tiempo precedentes. El código se genera típicamente para la transmisión en un sistema de comunicaciones.
La codificación convolucional se emplea en sistemas de comunicaciones para proporcionar un encriptado de la señal y para reducir la susceptibilidad del sistema para recibir errores de bits. Por ejemplo, el sistema de comunicaciones del Grupo Móvil Especial (GSM) utiliza la codificación convolucional.
Un desarrollo adicional de la codificación convolucional es la codificación convolucional perforada. La perforación es una etapa de proceso adicional que se aplica a los códigos convolucionales. La perforación consiste en la omisión de algunos bits del bloque de datos generados por la codificación convolucional. El flujo de datos de salida resultante de la codificación convolucional perforada tiene por tanto una velocidad binaria inferior al flujo de datos que resultaría de la mera codificación convolucional de la misma señal fuente.
Con el fin de recuperar los datos fuente, los bloques de datos que resultan de la codificación convolucional necesitan en alguna etapa ser decodificados. Esta decodificación tiene lugar típicamente después de la recepción de los datos por el receptor al cual han sido transmitidos los datos, y siendo ejecutada por el receptor. Un tipo de decodificador denominado como decodificador "Viterbi" puede ser utilizado para ejecutar esta decodificación.
Los códigos de convolución perforados pueden ser decodificados mejor por un decodificador Viterbi. No obstante, los distintos esquemas de perforación requieren decodificadores diferentes. Esto significa que para una implementación rápida en un dispositivo tal como un procesador de señales digitales (DSP), el decodificador tiene que ser diseñado específicamente para el esquema de perforación en particular. Un ejemplo de un ordenador para un decodificador Viterbi es el descrito en el documento US-A-5497401.
La necesidad de un decodificador diseñado específicamente puede conducir a problemas en la etapa de decodificación. En sistemas en que se utilizan muchos esquemas de perforación distintos, el diseño de un decodificador Viterbi para cada esquema de perforación puede incluir un esfuerzo significativo y por tanto recursos. Losa decodificadores múltiples pueden requerir también un espacio de código excesivo.
La solicitud patente publicada GB-A-2308044 expone la codificación convolucional de datos para la transmisión en un sistema de comunicaciones celulares GSM. Los datos codificados pueden ser perforados con antelación a la transmisión.
La presente invención trata de optimizar la decodificación de códigos perforados.
Sumario de la invención
Un método de acuerdo con la invención permite la decodificación de datos que hayan sido codificados en forma convolucional, comprendiendo los datos unos grupos consecutivos de bits, en el que cada grupo Gt comprende n bits cuyos valores dependen del cambio de estado en particular St del codificador de datos que tiene lugar en un instante en particular t, siendo el cambio de estado en particular St uno de un conjunto de cambios de estado posibles Sj, que el codificador de datos podría haber ejecutado en dicho instante en particular t.
El método de decodificación de los datos comprende, para el grupo Gt de n bits recibidos en el instante en particular t:
a)
efectuar comparaciones entre los n bits del grupo Gt y cada posible permutación Pi de n bits, y para cada comparación
calcular un valor numérico para la métrica de error Mti entre el grupo Gt y la permutación Pi; y
b)
consultar una tabla de consulta Tt precalculada, la cual contiene le conjunto de cambios de estado posibles Sj, y que indica para cada uno de estos cambios de estado Sj una permutación en particular de las mencionadas permutaciones Pi asociadas con dicho cambio de estado Sj, y generando una tabla métrica para asignar a cada cambio de estado Sj en la tabla de consulta Tt la Mti métrica calculada en la etapa a) para la permutación Pi asociada con el cambio de estado Sj; y
c)
utilizar la tabla métrica de los valores métricos asignados al conjunto de cambios de estado posibles Sj para actualizar la métrica acumulativa utilizada para decodificar los datos codificados de convolución.
En una realización preferida del método de la invención, la tabla de consulta Tt utilizada en el instante en particular t puede ser una de un conjunto de tablas de consulta precalculadas, efectuándose la selección de la tabla de consulta en particular Tt para su uso en un instante en particular con dependencia del esquema de perforación que se esté utilizando por el codificador en dicho instante de tiempo en particular t. Así mismo, la permutación Pi asociada con un cambio de estado en particular Sj en la tabla de consulta Tt puede el grupo de n bits que el codificador generaría para dicho cambio de estado en particular Sj, utilizando el esquema de perforación en utilización en dicho instante en particular t. Finalmente, el numero de bits n en el grupo en particular Gt puede depender del esquema de perforación que se esté utilizando por el codificador en dicho instante en particular t.
En una realización de la invención para la transmisión de datos, los datos codificados pueden ser transmitidos después de codificar y siendo recibidos después por un receptor con antelación a la decodificación.
La invención comprende además un decodificador de datos para decodificar los datos que hayan sido codificados por convolución, los datos que comprenden grupos consecutivos de bits, en que cada grupo Gt comprende n bits, cuyos valores dependen del cambio de estado en particular St del decodificador de datos, que tenga lugar en un instante en particular t, siendo el cambio de estado en particular St uno de un conjunto de cambios de estado posibles Sj, que el codificador de datos podría haber realizado en dicho instante t.
El decodificador de datos comprende, para el grupo Gt de n bits recibidos en el instante en particular t:
(a)
medios MT para efectuar comparaciones entre los n bits del grupo Gt y cada posible permutación Pi de los n bits, y para cada comparación, calcular un valor numérico para la métrica de error Mti entre el grupo Gt y la permutación Pi; y
(b)
medios TG para consultar una tabla de consulta precalculada Tt que contiene el conjunto de cambios de estado posibles Sj, y que indica para cada uno de estos cambios de estado Sj una permutación de las mencionadas permutaciones Pi asociadas con dicho cambio de estado Sj, y para generar la tabla métrica mediante la asignación a cada cambio de estado Sj en la tabla de consulta Tt el Mti métrico calculado en la etapa a) para la permutación Pi asociada con dicho cambio de estado Sj; y
(c)
medios BMC para utilizar la tabla métrica de valores métricos asignados al conjunto de cambios de estado posibles Sj para actualizar la métrica acumulativa utilizada para decodificar los datos codificados en forma convolucional.
En una realización preferida del decodificador de datos de la invención, la tabla de consulta Tt utilizada en el instante en particular t puede ser una de un conjunto de tablas de consulta precalculadas, y los medios TG para consultar una tabla de consulta precalculada Tt seleccionan la tabla de consulta en particular Tt para su utilización en el instante en particular t, en dependencia del esquema de perforación utilizado por el codificador en dicho instante en particular t. La permutación Pi asociada con un cambio de estado en particular Sj en la tabla de consulta puede ser el grupo de n bits que el codificador generaría para dicho cambio de estado en particular Sj, utilizando el esquema de perforación en utilización en dicho instante en particular t. El número de bits n en el grupo en particular Gt puede depender del esquema de perforación que se esté utilizando por el codificador en dicho instante en particular t.
En una realización de la invención para la transmisión de datos, un receptor para recibir los datos codificados perforados, puede comprender un decodificador de datos de acuerdo con la invención, o bien cualquiera de las realizaciones preferidas detalladas anteriormente.
Breve descripción de los dibujos
La figura 1 muestra un decodificador de acuerdo con el arte previo;
la figura 2 muestra un ejemplo de un codificador sencillo;
la figura 3 muestra el desarrollo posible y actualizado de los estados de una máquina de estados;
la figura 4 muestra el cálculo de las métricas para ocho permutaciones posibles de tres bits;
la figura 5 muestra un decodificador de acuerdo con la invención;
la figura 6 muestra un esquema de acuerdo con la invención para decodificar los datos recibidos;
la figura 7 muestra un esquema para construir tablas de utilización en la invención;
la figura 8 muestra ejemplos de tablas, incluyendo valores numéricos, que podrían generarse en un ejemplo de una implementación práctica de la invención.
Descripción detallada de la realización preferida
La figura 1 muestra una configuración de decodificación del arte previo.
La señal de entrada a la configuración de decodificación de la figura 1 es una señal perforada codificada. Por ejemplo, esta puede haber sido recibida por un receptor procedente de un transmisor.
El esquema de perforación, es decir, el tipo de perforación que se utilizó para formar la señal de entrada, es conocido. Este esquema de perforación puede, no obstante, ser diferente en instantes distintos. En consecuencia, la configuración de la figura 1 se muestra con dos recuadros P1 y P2, en que cada uno es solo activo para un esquema de perforación en particular. En la práctica, existen tantos recuadros en la configuración como esquemas de perforación pueda utilizar el codificador. Solo se encuentra activo un recuadro al mismo tiempo.
Considerando una vez más el ejemplo del transmisor y receptor, el receptor conoce que esquema de perforación fue utilizado por el transmisor en un instante en particular. Esto permite al receptor activar el recuadro en particular P1 que corresponda al esquema de perforación que fue aplicado originalmente a la parte del código que esté siendo ahora recibido.
Considérese un recuadro dado ahora, por ejemplo el recuadro P1. El recuadro procesa el código entrante mediante la comparación del código entrante con varias señales fija diferentes en diferentes ramificaciones. Véanse las señales fijas F1 y F2 en la figura 1. Los elementos marcados M1 y M2 en la figura 1 llevan a cabo la comparación. Cada uno de dichos elementos calcula un patrón de error como resultado de la comparación que ejecute. Este patrón de error representa la magnitud de diferencia que existe entre el código entrante y la señal fija.
El patrón de error es analizado para generar un valor numérico que representa la magnitud de la diferencia entre el código entrante y la señal fija. Este valor numérico es denominado como la "métrica". Cada uno de los elementos tales como M1 y M2 generan una métrica, y estos elementos se denominan como calculadores métricos.
Cada señal fija F representa una porción de código que podría parecerse a la señal entrante. Puesto que la métrica es una medida de la diferencia, la métrica que se dará salida por un calculador métrico es inferior cuando la entrada de la señal fija para dicho calculador métrico en particular y el código entrante se parezcan más entre sí.
Tal como se muestra en la figura 1, el mismo código entrante es suministrado a todos los recuadros marcados P y a todos los calculadores métricos M dentro de cada recuadro. Este código entrante se compara simultáneamente por tanto con varias señales fijas distintas en el recuadro en particular P que esté activo. Así pues, mediante la selección de la métrica más inferior de dicha salida del recuadro en particular Pi, la configuración de la figura 1 indica cual es la señal fija en la que el código de la señal de entrada se parezca más. La última selección se ejecuta por el elemento marcado MS, que ejecuta la selección del mínimo entre las distintas salidas métricas del recuadro activo Pi.
Obviamente, si existen p esquemas de perforación distintos en utilización en el sistema, se precisarán de p recuadros distintos P. Si se precisa la comparación de la señal recibida con m señales fijas diferentes F, entonces deberán ser m diferentes calculadores métricos M. Se utiliza un único selector de mínimo MS.
La salida del recuadro en particular de la figura 1 que está activo en cualquier instante se utiliza para actualizar la métrica acumulada del decodificador. Esta es la métrica mantenida por el decodificador como resultado de los cambios de estado anteriores que hayan sido comunicados hacia/desde el decodificador. La señal que se obtiene a la salida en el extremo derecho de la figura 1 es la métrica acumulada.
En los sistemas de transmisión en que se transmiten bloques de código de longitud finita, la decodificación puede ser ejecutada por una configuración en la forma de lo mostrado en la figura 1 para cada bloque de código en forma sucesiva.
No obstante, en la práctica una señal codificada será transmitida como un flujo continuo de bits. La decodificación es entonces un proceso continuo. De hecho, el decodificador toma la forma de una máquina de estado, cuyo estado se actualiza conforme se reciben los bits de datos codificados. El estado del decodificador en cualquier punto en el tiempo depende de los cambios que tengan lugar en el codificador hasta dicho punto en el tiempo. El estado del decodificador es así indicativo de dichos cambios.
En un decodificador con un flujo continuo de bits entrantes, cada grupo de bits entrantes se compara con un conjunto de valores cuyos bits podrían haber sido tomados. Cada una de las comparaciones da lugar a una métrica. Esta métrica se suma entonces con la métrica acumulativa hasta dicho punto en el tiempo. Por tanto, en cualquier instante, el cálculo de la métrica se efectúa para parte de la señal recibida y decodificando una señal recibida continuamente que incluye la repetición muchas veces del cálculo completo de la métrica. Cada cálculo de la métrica influirá en el decodificador. Una vez realizados estos cálculos, se deriva la señal fuente original mediante el examen de la forma en que haya evolucionado el estado del decodificador.
La configuración del arte previo de la figura 1 tiene que realizar una gran cantidad de cálculo. Esto es para encontrar la señal fija que más íntimamente se parezca a la parte entrante del código en un instante en particular, y para repetir estos cálculos para el código nuevo que llegue. La configuración del arte previo necesita una potencia de cálculo suficiente para efectuar la decodificación dentro de la ventana de tiempo en la que el resultado sea relevante. Si dicha potencia de cálculo no se encuentra disponible, entonces la decodificación no será posible.
La presente invención reemplaza a la configuración de la figura 1, y mejora la configuración del arte previo. Los aspectos de la invención se muestran en las figuras 4-7.
El algoritmo de acuerdo con la invención tenderá en particular a reducir la potencia de cálculo requerida parta la mayoría de los esquemas de perforación. Ofrece la ventaja añadida de reducir el esfuerzo de codificación necesario con esquemas de perforación múltiples. Esta reducción es una ventaja en particular en sistemas de comunicaciones tales como el TETRA.
Las figuras 2 y 3 está provistas para ilustrar la idea de los codificadores y decodificadores como "máquinas de estado", cuyos estados cambian en el tiempo. En el ejemplo de un sistema de comunicaciones en que la codificación de datos tiene lugar con antelación a la transmisión, el estado del codificador depende de los bits suministrados al mismo para la codificación. El estado del decodificador depende de los grupos de bits suministrados al mismo por el receptor.
La figura 2 muestra un codificador sencillo. El codificador recibe datos sin procesar para la codificación, marcado como "flujo fuente" a la izquierda de la figura. Conforme llega cada bit de los datos, los datos se introducen en un registro de desplazamiento. El registro tiene tomas mediante la red de tomas y sumadores mostrados por encima del registro de desplazamiento.
A la derecha de la red se muestran tres bits. Estos los bits obtenidos a la salida de la red. Como ejemplo, el bit más superior de los tres bits de salida es un 0 (cero). Esto es el resultado de las tomas en el primero, tercero, quinto y séptimo bits del registro de desplazamiento. Puesto que dos de estas cuatro posiciones en el registro están ocupadas por un 1 (uno) y las otras dos posiciones están ocupadas por un 0 (cero), los sumadores conducen a una salida de 0 (cero) mediante la adición binaria en módulo 2.
Los otros dos bits a la salida de la red se derivan de forma análoga por los sumadores y tomas conectados a los hilos intermedio e inferior horizontales de la red, respectivamente.
A la derecha de la figura se muestra un convertidor sencillo de paralelo-serie. Este convertidor deriva el flujo de bits que constituye la salida del codificador.
Durante la operación, los nuevos bits de datos del flujo fuente llegan conforme avanza el tiempo. Cada nuevo bit es añadido a la posición más a la izquierda del registro de desplazamiento. Los bits restantes en el registro de desplazamiento se desplazan un lugar hacia la derecha. Obviamente, cuando tiene lugar lo anterior, cambian las entradas a la red situado por encima del registro de desplazamiento. Los tres bits obtenidos a la salida de la red cambiarán en la forma correspondiente.
Así pues, para cada nuevo bit de datos que llega para la codificación, se genera un grupo de tres bits por el codificador. Cada uno de los tres bits depende en su valor en algo más que justamente el bit de datos más reciente que llegue. Así pues, se ha implementado la codificación convolucional. Se observará que se obtienen tres bits a la salida del codificador por cada bit de datos que llegue para la codificación. Este es un código de tasa 1/3.
La etapa de perforar el flujo de datos de salida codificados comprende la omisión de algunos de los bits de datos de salida. Esto podría efectuarse típicamente antes de la transmisión del flujo codificado. La perforación reduce el número de bits codificados que precisen ser transmitidos, y por tanto reduce el ancho de banda requerido para la transmisión..
El esquema de perforación es el proceso mediante el cual se realiza la perforación. Observando la figura 2, un esquema de perforación podría consistir en la omisión de los bits suministrados por el más inferior de los tres hilos horizontales de la red. Así pues, se transmitirían solo los dos bits superiores en este ejemplo, reduciendo en un tercio el ancho de banda requerido para la transmisión.
Evidentemente el destinatario de los datos codificados, en este caso el receptor de los datos transmitidos, tiene que conocer el esquema de perforación que se utilizó por el codificador en el instante correspondiente.
La figura 3 muestra el desarrollo de los estados de una máquina de estado. Comenzado en la parte izquierda de la figura, el primer punto en la figura representa el estado de inicio de una máquina de estado. Esta máquina podría ser el codificador.
Los símbolos "00" en la parte izquierda de este punto de la figura 3 representan una definición del estado correspondiente. Los bits de salida del decodificador dependen de este estado. Cuando un bit de datos llega al codificador para la codificación, se cambian los valores de los bits generados a la salida.
La segunda columna de la figura 3 que comprende dos puntos, representa los dos estados posibles en que podría estar el codificador después de la llegada del primer bit de datos para la codificación. El codificador podría permanecer así en el estado "00", o podría avanzar al estado "10", dependiendo de si llega un 1 o un 0 para la codificación.
Obsérvese que la figura 3 no está relacionada con el mismo codificador que se utilizó en el ejemplo único de la figura 2. Adicionalmente, los dos bits que definen cada estado en la figura 3 han sido generados mediante la perforación de los bits suministrados por un codificador, no produciéndose ninguna relación simple con la secuencia de bits de datos introducidos al codificador.
La tercera columna de la figura 3 muestra que existen cuatro estados posibles del codificador después de que haya sido suministrado un segundo bit de datos que al codificador. Los valores de los bits suministrados al codificador en el instante de esta transición dependen de ambos estados inicial y final del codificador.
Las flechas en la figura 3 muestran que el estado de codificador puede solo cambiar a uno de un par en particular de nuevos estados al arrancar desde un estado dado. Estas flechas han sido añadidas a la figura 3 para mostrar las transiciones de estados permisibles en cada punto en el tiempo. Por ejemplo, iniciándose desde "10" en la segunda columna, las dos flechas ligeramente sombreadas muestran que el estado solo puede cambiar de "01" a "11". En el instante de esta transición, el codificador podría dar salida bien a los bits para la transición de "10" a "01" o a los bits para la transición de "10" a "11". Las flechas de la figura 3 proporcionan en general una indicación de cuales son los bits que pueden generarse por el codificador cuando se inicia el proceso desde un estado en particular.
Las flechas más gruesas y más oscuras en la figura 3 muestran el avance entre los estados que podría seguir el codificador a través del tiempo en un caso real. Los bits que son codificados y transmitidos al receptor permiten que el decodificador "reconstruya" este avance de estados. Debido a que este decodificador es capaz de deducir la secuencia de los estados del codificador, es capaz de deducir los bits de los datos del flujo fuente que provocaron que el codificador avanzara a través de dichos estados. Así pues, el decodificador puede reconstruir el flujo fuente, y mediante esta realización decodificar los datos.
Finalmente, en relación con las figuras 2 y 3, deberá observarse que los errores tienen lugar en un flujo de bits que haya sido transmitido hacia el receptor. Debido a estos errores, el estado del decodificador es solo una aproximación del estado del codificador. Suponiendo que la figura 3 es representativa del avance exacto de los estados que sigue el codificador, entonces el codificador derivará varias métricas de errores y, en cualquier momento, la métrica acumulativa del valor más inferior que mostrará los estados más probables que tengan ocupado el codificador.
Con el fin de comprender la invención, considérese la llegada al decodificador de una parte del código entrante en un instante en particular t. La parte del código comprende n bits. En la configuración del arte previo de la figura 1 este código recibido en curso podría necesitar ser comparado en los calculadores métricos M1, M2, etc., con las posibles permutaciones que podrían haber sido tomadas. Cada una de estas comparaciones darían lugar a un patrón de error y para cada uno de estos patrones de error se necesitaría una métrica a calcular. Finalmente, los elementos MS en la figura 1 encontrarían la métrica mínima.
De acuerdo con la invención, no obstante, se sigue un procedimiento diferente. Este procedimiento se ilustra en las figuras 4-7. En primer lugar, las métricas Mti se calculan entre los n bits del código recibido en un instante t y todas las posibles permutaciones de dicho número n de bits. Cada métrica Mti se almacena conjuntamente con la permutación Pi de n bits para los cuales fue calculada. Este almacenamiento es una "tabla métrica".
Los n bits de código en el grupo recibido de bits Gt depende de su valor en el cambio de estado St del codificador que tiene lugar en el instante en particular t. No obstante, los bits recibidos pueden contener errores, los cuales surgen típicamente durante la transmisión. En consecuencia, la dependencia de los valores de los n bits en el cambio de estado St puede no ser fiable.
A continuación se hace referencia a una tabla de consulta Tt. Esta es una de un conjunto de tablas T, en las que cada una está relacionada con un esquema de perforación en particular utilizado por el codificador. El contenido de la tabla Tt es específico para el esquema de perforación que se esté utilizando por el codificador en el instante t.
La tabla de consulta Tt contiene la lista de todos los cambios posibles de estado Sj que podría tener el codificador en un instante t. Cada cambio de estado Sj está representado por la permutación en particular Pi de n bits que el codificador habría transmitido en el instante t en que hubiera tenido lugar dicho cambio de estado. Para cada una de estas permutaciones Pi en tabla Tt, es ahora posible consultar la tabla métrica para el valor de la métrica Mti que corresponda a la permutación correspondiente. Significativamente, no es necesario ningún cálculo del patrón de error o de la métrica en este punto.
Cuando las métricas Mti hayan sido asignadas a todos los cambios de estado en la tabla Tt, la configuración de acuerdo con la invención tendrá entonces una lista de las métricas. Estas métricas Mti se emplean para actualizar la métrica acumulativa del decodificador, es decir, para ejecutar la actualización del estado.
La ventaja de la configuración de acuerdo con la invención es que requiere menos potencia de cálculo para las partes del código entrante que consisten en grandes números n de bits. Puede gestionar también con más facilidad un gran número de diferentes esquemas de perforación.
Considerada en su sentido más amplio, se calcula primeramente una tabla métrica de métricas Mti y se utiliza después para determinar cual deberá ser la actualización de la métrica de estado del decodificador.
Se observará que las métricas Mti se calculan solamente una vez, para cualquier grupo en particular de n bits que lleguen en un instante t.
Puede utilizarse un conjunto eficiente de tablas de consulta T para adaptar la decodificación a un esquema de perforación arbitrario. La tabla T proporciona la información sobre que fila de la tabla métrica deberá ser consultada para localizar la métrica Mti para cada cambio de estado Sj registrado en la tabla T. Para cada posible esquema de perforación existe una tabla T. El decodificador conoce cual es el esquema de perforación que se está utilizando por el codificador en el instante t, de forma que conoce la tabla de consulta Tt a utilizar en dicho instante en particular. Para cada esquema de perforación adicional solo es necesario tener una tabla adicional T. Cuando el esquema de perforación se está utilizando por el codificador, el decodificador utiliza sencillamente la tabla apropiada T. Como resultado de esto, puede ser utilizado un decodificador común para muchos esquemas de perforación distintos.
En los esquemas del arte previo es usual utilizar el algoritmo de decodificación Viterbi para llegar de una forma eficiente a las actualizaciones de estado del decodificador. De acuerdo con la invención, la idea básica es primeramente calcular todas las posibles métricas Mti a utilizar en una actualización del estado por adelantado de cada actualización de estado. El término "actualización de estado" significa la operación de "sumar-comparar-seleccionar" de un decodificador Viterbi.
La parte "sumar" de acuerdo aquí con las configuraciones del arte previo, requería un cálculo métrico entre la señal recibida y la señal fija en la ramificación correspondiente en particular. De acuerdo con la configuración de la invención, en lugar de calcular la métrica en la parte de "sumar" de la actualización de estado, la métrica puede ser encontrada mediante la consulta de la tabla de las métricas calculadas. El proceso de la invención se hace dependiente de tanto el cambio de estado que tiene lugar como del esquema de perforación teniendo una consulta de dos etapas. Una consulta resuelve el problema de la perforación mediante la utilización de una tabla en particular Tt, y en la que una consulta recupera realmente la métrica Mti de la tabla métrica.
La tabla métrica contiene en sí los resultados de los cálculos métricos que hayan sido efectuados por adelantado. De hecho, la tabla deberá contener los resultados de los cálculos de todas las posibles métricas para un grupo Gt de n bits recibidos.
Un ejemplo del cálculo de una tabla de consulta es el mostrado en la figura 4. La figura 4 está relacionada con una transferencia de tres bits, en la que tres bits representan cada cambio de estado. Existen ocho permutaciones de valores de los bits que se muestran en la mayor de las dos matrices. Estas ocho permutaciones son todas las posibles permutaciones de tres bits, cuyos bits en sí solo pueden tomar un valor de entre dos valores. En este caso, los valores posibles son 1 ó -1. El número de permutaciones será en general 2n, en donde n es el número de bits de valor binario en el grupo Gt recibido.
El ejemplo de la figura 4 muestra el cálculo de las métricas para los tres bits, bit(1), bit(2) y bit(3) recibidos en un instante en particular t. En el ejemplo mostrado en la figura 4, la métrica tendrá el valor máximo 3 solo para un grupo de tres bits en la matriz más grande que coincida exactamente con los tres bits recibidos en curso en el instante t. Las otras siete permutaciones en la matriz más grande darán lugar a métricas de valor menor, porque cada una tiene al menos un bit que no es el mismo que el bit recibido en la posición correspondiente. Aunque el ejemplo en la figura 4 da lugar realmente a la permutación que más íntimamente se corresponde con el grupo de bits recibido que tiene la métrica más alta, está claro que en general la permutación que se corresponde con el grupo de n bits recibidos es identificable porque tiene un valor extremo de métrica. Las referencias a la "métrica más baja" con respecto a las figuras deberán considerarse como que significa la métrica que indica la correspondencia más cercana entre la permutación correspondiente y el grupo de bits recibido.
La tabla calculada tal como se muestra en la figura 4 proporciona entonces la información requerida para llevar a cabo la actualización del estado del decodificador.
El aparato para llevar a cabo la actualización del estado puede observarse en la figura 5. La figura 4 muestra la operación del elemento MT de la figura 5. En el elemento MT se calcula una tabla métrica para el último grupo Gt de n bits de la señal recibida.
El elemento de la figura marcado TG indica una actualización guiada por la tabla. La tabla Tt contiene los posibles cambios de estado Sj del codificador, conjuntamente con la permutación de los bits Pi que generaría cada uno, para el esquema de perforación en particular en utilización por el codificador en el instante t. Los medios TG capturan la métrica Mti para cada posible cambio de estado Sj a partir de la tabla métrica que se haya generado en el elemento MT. Las dos ramificaciones mostradas en el elemento TG indican que se efectúan dos adiciones al mismo tiempo. En este caso los valores de las dos métricas se toman de la tabla de consulta al mismo tiempo, y cada una se añade a una métrica acumulativa. Este procedimiento tiene que ser repetido para cada posible cambio de estado Sj, y se muestra solamente como que se llevan a cabo dos adiciones al mismo tiempo para fines ilustrativos. El resultado es varias métricas acumulativas diferentes.
El BMC del recuadro selecciona la métrica acumulativa que ahora representa la mejor coincidencia entre los posibles cambios de estado que pueden tener lugar en el codificador y los grupos G de n bits que hayan sido recibidos por el codificador. Esta mejor métrica consiste en una secuencia de posibles cambios de estado y representa la secuencia más probable de cambios de estado que haya llevado a cabo el codificador.
La salida del extremo derecho de la figura 5 es la métrica acumulativa. Esto corresponde a la salida en el mismo punto de la figura 1 del arte previo. Esta salida se consigue, no obstante, con menor potencia de cálculo que la requerida. Existe también menos dificultad cuando existen un número mayor de esquemas de perforación posibles que en el caso de la configuración de la figura 1.
La figura 6 muestra un método generalizado para construir una tabla métrica y ejecutar el método de la invención. Esta implementación está adaptada para la rápida implementación en, por ejemplo, un DSP. Esto reemplaza el cálculo, mediante la utilización de la consulta de tablas cuando sea posible.
Las dos columnas de la izquierda de la figura 6 están relacionadas con dos esquemas de perforación diferentes. Una entrada en una fila de cualquier columna indica que el esquema de perforación de dicha columna está activo en el instante correspondiente a dicha fila. Cada fila sucesiva en las dos columnas es por tanto la indicación de activación/desactivación para dicho esquema de perforación en los sucesivos instantes posteriores t.
La información de las dos columnas a la izquierda de la figura 6 determina cuales son las partes que se seleccionan de las "funciones de cálculo métricas" y los recuadros de la "tabla del índice métrico" en el centro de la figura, para calcular las métricas. Estas métricas se ensamblan en el recuadro a la derecha de la figura 6. El recuadro de la "tabla del índica métrico" da el listado de cual es el esquema de perforación que se está utilizando en cada instante en particular.
El recuadro hacia la parte inferior de la figura 6 marcado como "código ACS" representa la operación "Sumar-comparar-seleccionar". Esta operación actualiza cada métrica acumulada. Las métricas acumuladas proporcionan un historial de los cambios de estado en el codificador. Pueden por tanto ser utilizados para proporcionar el código de retorno de búsqueda, que es un registro de los cambios en el codificador, los cuales pueden ser utilizados para decodificar los bits transmitidos de los datos.
La figura 7 muestra un método detallado para construir las tablas de consulta T de la invención, El método se basa en el conocimiento de esquema de codificación y de los esquemas de perforación que fueron utilizados por el codificador. El recuadro izquierdo superior comprende una tabla que utiliza el codificador para determinar cual es el cambio de estado para dar salida a un conjunto dado de bits de entrada en la etapa de codificación. A partir de esta tabla y de la información sobre los esquemas de perforación del recuadro en la parte derecha superior de la figura, se derivan las múltiples tablas T en la parte central izquierda de la figura 7. Estas tablas se emplean por el decodificador para decidir sobre el cambio de estado que tendrían salida para un conjunto dado de datos de entrada, y utilizando el esquema de perforación presente en dicho instante. Estas tablas muestran por tanto cuales son los bits del código que se generan para un flujo dado de bits de entrada en un instante dado. En un esquema de comunicaciones, son estos bits del código los que deberán ser transmitidos y posteriormente recibidos por un receptor que deberá descodificarlos entonces.
Las tablas múltiples en el centro izquierda de la figura 7 permiten la generación de las tablas Tt de la invención. Para un esquema de perforación dado, una de estas tablas en el centro izquierda de la figura 7 contiene los detalles de cuales son los patrones de bits que tendrán salida por el codificador para un cambio de estado dado. La información es claramente suficiente para crear una tabla Tt, apropiada para dicho esquema de perforación, que efectúe el listado del patrón de bits que se suministrará a la salida para cada cambio de estado. Así pues, la creación de las tablas T puede verse sencillamente como una reordenación de la información. La mencionada tabla T se crea para cada esquema de perforación.
De acuerdo con la invención, la información en cada tabla T se utiliza conjuntamente con la tabla de las métricas calculadas para cada grupo entrante Gt de n bits de datos recibidos, con el fin de llevar a cabo la actualización del estado del decodificador.
Resumiendo la figura 7, las tablas T se derivan a partir de la definición del código madre y de las definiciones de perforación.
El método de la invención puede ser implementado por varios aparatos adecuados. En particular, sería adecuado un procesador de señales digitales. Lo más importante es la capacidad del hardware seleccionado para poder ser capaz de acceder a los datos almacenados de forma rápida. Esto se debe al énfasis en el aparato y método de acuerdo con la invención en la consulta de valores métricos en una tabla métrica, en lugar de ejecutar grandes volúmenes de cálculo que precisarían las configuraciones del arte previo.
La primera exigencia de cálculo en cualquier instante en particular t será crear la tabla métrica. A esta tabla métrica se tiene acceso repetidamente con dependencia de los valores almacenados en la tabla de consulta Tt apropiada para el esquema de perforación en utilización en dicho instante.
Ejemplo
La figura 8 muestra un ejemplo del método de la invención. En particular:
la figura 8a muestra un ejemplo de una tabla métrica sencilla;
la figura 8b muestra un ejemplo de la tabla de consulta Tt de permutaciones (Pi) de bits que corresponde a los cambios de estado posibles (Sj) del codificador para un esquema de perforación en particular;
la figura 8c muestra una lista de tablas de consulta T correspondientes a los diferentes esquemas de perforación que puede utilizar el codificador, listadas conjuntamente con los instantes en los cuales se utiliza dicho esquema de perforación.
En el esquema de la figura 8, se reciben dos bits codificados por el codificador en cualquier instante t. En la terminología utilizada anteriormente en relación con la figura 4, n = 2.
La columna central de la tabla de la figura 8a muestra las cuatro permutaciones de dos bits que son posibles, y por tanto que el decodificador podría recibir en cualquier instante.
En el instante t concerniente al ejemplo de la figura 8, el decodificador recibe en curso los bits "00". Estos dos bits se comparan entonces con cada una de las cuatro posibles permutaciones en la columna central de la figura 8a. Para cada una de estas cuatro comparaciones, se calcula una métrica. Estas métricas se muestran en la columna derecha de la figura 8a. La métrica "2" para la permutación "00" en la columna central indica la correspondencia exacta entre los dos bits recibidos y los bits mencionados en la columna central.
Las permutaciones "01" y "10" conducen ambas a una métrica de 1, porque cada una tiene un bit idéntico al "00" recibido, y un bit que es distinto. Ninguno de los bits de la combinación "11" en la columna central concuerda con los bits recibidos, de forma que la métrica es 0.
El cálculo de la métrica en el ejemplo de la figura 8a comprende sencillamente la comprobación de la correspondencia de los bits recibidos por el decodificador con los correspondientes a las posibles permutaciones de los bits. Son posibles otros esquemas de perforación.
La columna izquierda de la figura 8b muestra las ocho posibles transiciones de estado de un codificador. Estas transiciones de estado se efectúan en un instante t. De hecho se toman del ejemplo de la figura 3. Se hace referencia ahora a la figura 3. En este caso, se ha marcado el punto en el tiempo. Así mismo se encuentran marcados en el instante t los posibles estados iniciales en que el codificador podría encontrarse a sí mismo en el instante t. Estos están marcados como A, B, C y D. Los ocho cambios de estado en la columna izquierda de la figura 8b corresponden a las ocho transiciones permitidas a partir de los cuatro estados iniciales posibles A, B, C y D. Cada una de estas ocho transiciones corresponden a una de las flechas sombreadas ligeramente en la figura 3, entre uno de los puntos A, B, C ó D y uno de los puntos en la columna siguiente a la derecha.
La columna central de la tabla de consulta Ti en la figura 8b proporciona la combinación en particular de dos bits que generaría el codificador para cada uno de los ocho cambios de estado en la columna izquierda. La combinación en particular depende de la definición de código madre para la codificación y del esquema de perforación que se esté utilizando en el instante t.
Solo están listadas tres permutaciones de dos bits para los fines de la ilustración en la columna central de la figura 8b. En la columna derecha de la figura 8b se muestran las métricas que corresponden a las combinaciones de dos bits en la columna central. Estas métricas han sido copiadas de las correspondientes en la columna derecha de la tabla métrica de la figura 8a, según se expuso anteriormente de acuerdo con el método de la invención.
La figura 8c muestra para finalizar la lista de las tablas T, listadas cada una conjuntamente con el instante en que deberán utilizarse por el decodificador. La lista de tablas es la columna derecha de la figura 8c. El instante en que deberá ser utilizada cada tabla, expresado en unidades arbitrarias, se encuentra en la columna izquierda de la figura 8c. Por ejemplo, en el instante 1 deberá utilizarse la tabla quinta porque el esquema de perforación apropiado a la quinta tabla se está utilizando por el codificador en ese instante. El significado del instante en la columna izquierda es que es el instante en el cual tiene lugar un cambio de estado del codificador, y en el que un nuevo grupo Gt de n bits relacionados con dicho cambio de estado es recibido por el receptor y por el decodificador.
Las ventajas de la invención están claras. En un caso en que el codificador puede arrancar en un gran número de estados, el número de posibles transiciones en la columna izquierda de la tabla de consulta de la tabla 8b podría ser muy grande. No obstante, el método de la invención conduce a un valor métrico para cada una de estas transiciones, sencillamente accediendo a la fila de la tabla métrica que contiene la métrica para dicha permutación. Una consulta reemplaza el cálculo necesario en las configuraciones del arte previo, tal como la utilización de calculadores métricos de la configuración en la figura 1.
La segunda ventaja de la invención es que pueden utilizar muchos y diferentes esquemas de perforación por el codificador. Para cada esquema de perforación, se precisa una tabla distinta T. No obstante, es una configuración mucho más sencilla que la necesidad de un algoritmo de decodificación totalmente nuevo para cada esquema de perforación distinto, tal como sería el caso en las configuraciones del arte previo.

Claims (10)

1. Un método de acuerdo con la invención permite la decodificación de datos que hayan sido codificados en forma convolucional,
comprendiendo los datos unos grupos consecutivos de bits, en el que cada grupo (Gt) comprende n bits cuyos valores dependen del cambio de estado en particular (St) del codificador de datos que tiene lugar en un instante en particular (t), siendo el cambio de estado en particular (St) uno de un conjunto de cambios de estado posibles (Sj), que el codificador de datos podría haber ejecutado en dicho instante en particular (t),
el método de decodificación de los datos comprende, para el grupo (Gt) de n bits recibidos en el instante en particular (t):
a)
efectuar comparaciones entre los n bits del grupo Gt y cada posible permutación (Pi) de n bits, y para cada comparación,
calcular un valor numérico para la métrica de error (Mti) entre el grupo (Gt) y la permutación (Pi); y
b)
consultar una tabla de consulta (Tt) precalculada, la cual contiene le conjunto de cambios de estado posibles Sj, y que indica para cada uno de estos cambios de estado (Sj) una permutación en particular de las mencionadas permutaciones (Pi) asociadas con dicho cambio de estado (Sj), y generando una tabla métrica para asignar a cada cambio de estado (Sj) en la tabla de consulta (Tt) la métrica (Mti) calculada en la etapa a) para la permutación (Pi) asociada con el cambio de estado (Sj); y
c)
utilizar la tabla métrica de los valores métricos (Mti) asignados al conjunto de cambios de estado posibles (Sj) para actualizar la métrica acumulativa utilizada para decodificar los datos codificados de convolución.
2. Un método según la reivindicación 1, en el que:
la tabla de consulta (Tt) utilizada en el instante en particular (t) es una de un conjunto de tablas de consulta precalculadas, efectuándose la selección de la tabla de consulta en particular (Tt) para su utilización en un instante en particular, en dependencia del esquema de perforación que se esté utilizando por el codificador en dicho instante en particular (t).
3. Un método según la reivindicación 1 ó 2, en el que:
la permutación (Pi) asociada con un cambio de estado en particular (Sj) en la tabla de consulta (Tt) es el grupo de n bits que el codificador generaría para dicho cambio de estado en particular (Sj), utilizando el esquema de perforación en utilización en dicho instante en particular (t).
4. Un método según cualquiera de las reivindicaciones 1 a 3, en el que:
el número de bits n en el grupo en particular (Gt) depende del esquema de perforación que se esté utilizando por el codificador en dicho instante en particular (t).
5. Un método según cualquiera de las reivindicaciones 1 a 4, en el que:
los datos codificados son transmitidos después de la decodificación y siendo recibidos entonces por un receptor con antelación a la decodificación.
6. Un decodificador de datos para decodificar los datos que hayan sido codificados en forma convolucional,
los datos comprenden grupos consecutivos de bits, comprendiendo cada grupo (Gt) n bits cuyos valores dependen del cambio de estado en particular (St) del codificador de datos que tiene lugar en un instante en particular (t), en el que el cambio de estado en particular (St) es uno de un conjunto de posibles cambios de estado (Sj) que el codificador de datos podría haber llevado a cabo en dicho instante (t),
comprendiendo el decodificador de datos, para el grupo (Gt) de n bits recibidos en el instante en particular (t):
a)
medios MT para efectuar comparaciones entre los n bits del grupo (Gt) y cada posible permutación (Pi) de los n bits, y para cada comparación, calcular un valor numérico para la métrica de error (Mti) entre el grupo (Gt) y la permutación (Pi); y
b)
medios TG para consultar una tabla de consulta precalculada (Tt) que contiene el conjunto de cambios de estado posibles (Sj), y que indica para cada uno de estos cambios de estado (Sj) una permutación de las mencionadas permutaciones (Pi) asociadas con dicho cambio de estado (Sj), y para
asignar a cada cambio de estado (Sj) en la tabla de consulta (Tt) la métrica (Mti) calculada en la etapa a) para la permutación (Pi) asociada con dicho cambio de estado (Sj), para producir por tanto una tabla métrica; y
c)
medios (BMC) para utilizar la tabla métrica de valores métricos asignados al conjunto de cambios de estado posibles (Sj) para actualizar la métrica acumulativa utilizada para decodificar los datos codificados en forma convolucional.
7. Un decodificador de datos de acuerdo con la reivindicación 6, en el que la tabla de consulta (Tt) utilizada en el instante en particular (t) es una de un conjunto de tablas de consulta precalculadas y los medios (TG) para consultar una tabla de consulta precalculada (Tt) están adaptados para seleccionar la tabla de consulta en particular (Tt) para su utilización en un instante en particular (t), en dependencia del esquema de perforación que esté siendo utilizado en dicho instante en particular (t).
8. Un decodificador de datos de acuerdo con la reivindicación 6 ó 7, en el que:
la permutación (Pi) asociada con un cambio de estado en particular (Sj) en la tabla de consulta es el grupo de n bits que el codificador generaría para dicho cambio de estado en particular (Sj) utilizando el esquema de perforación en utilización en dicho instante en particular (t).
9. Un decodificador de datos de acuerdo con cualquiera de las reivindicaciones 6 a 8, en el que:
el número de bits n en el grupo en particular (Gt) depende del esquema de perforación que esté siendo utilizado por el codificador en dicho instante en
particular (t).
10. Un receptor para recibir datos codificados y perforados, el receptor comprende un decodificador de datos de acuerdo con cualquiera de las reivindicaciones 6 a 9.
ES98950035T 1997-09-19 1998-09-15 Metodo y aparato de decodificacion viterbi de codigos perforados. Expired - Lifetime ES2201540T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9720046 1997-09-19
GB9720046A GB2329557B (en) 1997-09-19 1997-09-19 Method and apparatus for viterbi decoding of punctured codes

Publications (1)

Publication Number Publication Date
ES2201540T3 true ES2201540T3 (es) 2004-03-16

Family

ID=10819401

Family Applications (1)

Application Number Title Priority Date Filing Date
ES98950035T Expired - Lifetime ES2201540T3 (es) 1997-09-19 1998-09-15 Metodo y aparato de decodificacion viterbi de codigos perforados.

Country Status (8)

Country Link
US (1) US6510538B1 (es)
EP (1) EP1016223B1 (es)
JP (1) JP2001517887A (es)
AT (1) ATE242938T1 (es)
DE (1) DE69815541T2 (es)
ES (1) ES2201540T3 (es)
GB (1) GB2329557B (es)
WO (1) WO1999016174A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1193537C (zh) * 2000-07-04 2005-03-16 皇家菲利浦电子有限公司 将输入数据块加密转换成输出数据块的方法和系统
US6701483B1 (en) * 2000-08-18 2004-03-02 Alantro Communications, Inc. Fast search-based decoding scheme
GB0104036D0 (en) * 2001-02-19 2001-04-04 Radioscape Ltd Trellis decoder
GB2405562B (en) * 2003-08-28 2006-03-08 Evangelos Papagiannis Improved iterative decoder with performance approximating to a maximum likelihood decoder
US20100077642A1 (en) * 2008-09-28 2010-04-01 Cary Kay Kraft Adornment of framed displays

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4015238A (en) * 1975-11-24 1977-03-29 Harris Corporation Metric updater for maximum likelihood decoder
US5151904A (en) * 1990-09-27 1992-09-29 The Titan Corporation Reconfigurable, multi-user viterbi decoder
US5220570A (en) * 1990-11-30 1993-06-15 The Board Of Trustees Of The Leland Stanford Junior University Programmable viterbi signal processor
BE1004814A3 (nl) * 1991-05-08 1993-02-02 Bell Telephone Mfg Decodeerinrichting.
JPH0555932A (ja) * 1991-08-23 1993-03-05 Matsushita Electric Ind Co Ltd 誤り訂正符復号化装置
US5159608A (en) * 1991-08-28 1992-10-27 Falconer David D Method and apparatus for using orthogonal coding in a communication system
US5469452A (en) * 1991-09-27 1995-11-21 Qualcomm Incorporated Viterbi decoder bit efficient chainback memory method and decoder incorporating same
US5432803A (en) * 1992-04-30 1995-07-11 Novatel Communications, Ltd. Maximum likelihood convolutional decoder
US5396518A (en) * 1993-05-05 1995-03-07 Gi Corporation Apparatus and method for communicating digital data using trellis coding with punctured convolutional codes
ZA947317B (en) * 1993-09-24 1995-05-10 Qualcomm Inc Multirate serial viterbi decoder for code division multiple access system applications
US5566189A (en) * 1994-08-31 1996-10-15 Hughes Aircraft Co. Method and device for puncturing data
US5497401A (en) * 1994-11-18 1996-03-05 Thomson Consumer Electronics, Inc. Branch metric computer for a Viterbi decoder of a punctured and pragmatic trellis code convolutional decoder suitable for use in a multi-channel receiver of satellite, terrestrial and cable transmitted FEC compressed-digital television data
US5668820A (en) * 1995-01-23 1997-09-16 Ericsson Inc. Digital communication system having a punctured convolutional coding system and method
GB2308044B (en) * 1995-10-02 2000-03-15 Motorola Ltd Method of decoding punctured codes and apparatus therefor
KR100498752B1 (ko) * 1996-09-02 2005-11-08 소니 가부시끼 가이샤 비트메트릭스를 사용한 데이터 수신장치 및 방법
US5970104A (en) * 1997-03-19 1999-10-19 Cadence Design Systems, Inc. Method and apparatus for generating branch metrics and branch indices for convolutional code Viterbi decoders
US5931966A (en) * 1997-05-19 1999-08-03 Carnegie Mellon University Viterbi detector with a pipelined look-up table of squared errors
WO1999023762A1 (en) * 1997-11-03 1999-05-14 Harris Corporation Reconfigurable radio system architecture
US6205187B1 (en) * 1997-12-12 2001-03-20 General Dynamics Government Systems Corporation Programmable signal decoder
SG80035A1 (en) * 1999-05-27 2001-04-17 Inst Of Microelectronics Viterbi decoding of punctured convolutional codes without real-time branch metric computation

Also Published As

Publication number Publication date
GB2329557A (en) 1999-03-24
EP1016223B1 (en) 2003-06-11
US6510538B1 (en) 2003-01-21
DE69815541D1 (de) 2003-07-17
ATE242938T1 (de) 2003-06-15
DE69815541T2 (de) 2003-12-24
GB2329557B (en) 2002-05-01
GB9720046D0 (en) 1997-11-19
EP1016223A1 (en) 2000-07-05
JP2001517887A (ja) 2001-10-09
WO1999016174A1 (en) 1999-04-01

Similar Documents

Publication Publication Date Title
JP3677257B2 (ja) 畳込み復号装置
JPH09232973A (ja) ビタビ復号器
GB2311447A (en) Viterbi decoder
JPS62233933A (ja) ヴイタビ復号法
US6865710B2 (en) Butterfly processor for telecommunications
JP2009535939A (ja) ビタビ復号装置および技術
KR20050045996A (ko) 병렬 콘볼루션 부호화기
US7020214B2 (en) Method and apparatus for path metric processing in telecommunications systems
KR100285067B1 (ko) 비터비 디코더의 가산 비교 선택 회로
JPH10117149A (ja) ビタービ復号化器用トレースバック装置及びトレースバック方法
JP2000209106A (ja) 高速ビタビ復号器の最小量のメモリによる実現
JP3924093B2 (ja) ビタビ復号器および送信装置
ES2201540T3 (es) Metodo y aparato de decodificacion viterbi de codigos perforados.
US8009773B1 (en) Low complexity implementation of a Viterbi decoder with near optimal performance
US6697442B1 (en) Viterbi decoding apparatus capable of shortening a decoding process time duration
JP3259725B2 (ja) ビタビ復号装置
US5878060A (en) Viterbi decoding apparatus and viterbe decoding method
WO2007021057A1 (en) Viterbi decoder and method thereof
US7114122B2 (en) Branch metric generator for Viterbi decoder
JP2010130271A (ja) 復号器および復号方法
CN100505557C (zh) 基于Viterbi译码的多路并行循环块回溯方法
JP2575854B2 (ja) ビタビ復号回路
JP4729938B2 (ja) ビタビ復号器及びそれを用いる移動体通信装置、基地局装置、移動体通信端末
CN102282771B (zh) 解码方法
JP5338506B2 (ja) 復号装置及び信号処理システム