ES2271122T3 - Decodificacion flexible de codigos bloque con decodificacion de errores y borrados. - Google Patents
Decodificacion flexible de codigos bloque con decodificacion de errores y borrados. Download PDFInfo
- Publication number
- ES2271122T3 ES2271122T3 ES01997184T ES01997184T ES2271122T3 ES 2271122 T3 ES2271122 T3 ES 2271122T3 ES 01997184 T ES01997184 T ES 01997184T ES 01997184 T ES01997184 T ES 01997184T ES 2271122 T3 ES2271122 T3 ES 2271122T3
- Authority
- ES
- Spain
- Prior art keywords
- syndromes
- decoding
- symbols
- polynomial
- block
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/35—Unequal or adaptive error protection, e.g. by providing a different level of protection according to significance of source information or by adapting the coding according to the change of transmission channel characteristics
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
- H03M13/455—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding using a set of erasure patterns or successive erasure decoding, e.g. generalized minimum distance [GMD] decoding
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Reduction Or Emphasis Of Bandwidth Of Signals (AREA)
Abstract
Dispositivo para tratamiento de señal, que comprende medios (1) de recepción de la señal para estimar los bloques de símbolos de entrada (rN-1, rN-2, ..., r1, r0) y de medios (2) de decodificación de dichos bloques por medio de un código corrector de errores, en el que los medios de decodificación comprenden medios (3) de cálculo de síndromes (S1, S2, ..., S2t) a partir de un bloque de señal y de primeros medios (4) de tratamiento de los síndromes para estimar símbolos de información, comprendiendo los primeros medios de tratamiento de los síndromes medios (4) de corrección de errores en el bloque de señal, en el que los medios de recepción de señal (1) están dispuestos para facilitar una información sobre la fiabilidad de los símbolos de entrada del bloque, y los medios de decodificación (2) comprenden además medios (6) para determinar como mínimo una posición de borrado en el bloque sobre la base de dicha información sobre la fiabilidad, y segundos medios (5) de tratamiento de los síndromes y de dicha posición de borrado, activados como respuesta a una indicación de incapacidad de corrección por los primeros medios de tratamiento (4) para estimar los símbolos de información.
Description
Decodificación flexible de códigos bloque con
decodificación de errores y borrados.
La presente invención se refiere a técnicas de
decodificación de los códigos de redundancia utilizados para
proteger informaciones numéricas contra errores susceptibles de
aparecer durante su transmisión o su almacenamiento.
La presente invención se aplica, en particular,
a los códigos de tipo Reed-Solomon habitualmente
utilizados con esta finalidad.
Se considera, por ejemplo, un código de
Reed-Solomon RS(N, N-2t,t)
definidos sobre un cuerpo finito o cuerpo de Galois,
CG(2^{m}) de cardinal 2^{m}. Un código de
Reed-Solomon es un código cíclico en bloque cuyo
polinomio generador g(x) de grado 2t, con coeficientes en
CG(2^{m}), tiene por raíces 2t potencias consecutivas de un
elemento primitivo \alpha del cuerpo CG(2^{m}):
(1)g(x)
= \prod\limits ^{2t}_{i=1} (x - \alpha
^{i})
Cada palabra del código se compone de N símbolos
(N <2^{m}) del cuerpo CG(2^{m}) que representan
N-2t símbolos de información independientes. El
número t es el número máximo de símbolos erróneos que el código
permite corregir algebraicamente sin información a priori
sobre sus posiciones. Cada uno de los bloques recibidos por el
decodificador se compone de N símbolos de CG(2^{m}
)r_{0}, r_{1}, ..., r_{N-1}, que define el
polinomio:
(2)R(x)
= r_{N-1} . x^{N-1} + . . . \ r_{1}
. x +
r_{0}
En ausencia de errores sobre los símbolos
recibidos, el polinomio generador del código g(x) es un
factor de este polinomio R(x).
Los métodos de decodificación hacen intervenir
en general cálculos de síndromes de error. Un síndrome es un valor
del polinomio R(x) para un elemento dado del cuerpo de
Galois. Frecuentemente, se limita al cálculo de los síndromes para
las 2t raíces del polinomio generador del código S_{i}=
R(\alpha^{i}) para 1 \leq y \leq 2t. Si el bloque
recibido comporta V símbolos erróneos r_{h(0)},
r_{h(1)}, ..., r_{h(V-1)}, con V
\leq t y 0 \leq h(v) < N para 0\leq v \leq V,
entonces cada síndrome S_{i} cumple:
(3)S_{i} =
\sum\limits^{V-1}_{v=0} \alpha ^{i . h(v)} .
e_{h(v)}
en la que e_{h(v)} indica
la amplitud del error sobre el símbolo
r_{h(v)}.
Una forma clásica de calcular un síndrome
S_{i} es utilizar un proceso recursivo o un circuito que consiste
esencialmente en un multiplicador, un adicionador y un registro para
poner en práctica la relación de recurrencia.
(4)S_{i}^{(n)}
= S_{i}^{(n-1)} . \alpha ^{i} +
r_{N-1-n}
Con la condición de inicio
S_{i}^{(0)}=r_{N-1}, el síndrome Si puede ser
calculado a medida de la llegada de los símbolos
r_{N-1-n} (en el orden de los
pesos decrecientes), y se obtiene desde la llegada del último
símbolo r_{0} del bloque:
{}\hskip17cm S_{i} = S^{(N-1)}_{i}.
{}\hskip17cm S_{i} = S^{(N-1)}_{i}.
Las 2t relaciones (3) tienen 2V incógnitas, a
saber las posiciones h(v) y las amplitudes e_{h(v)}
de los errores. Para resolver estas ecuaciones, la mayor parte de
los algoritmos de decodificación implican el cálculo de un polinomio
localizador de errores \sigma(x) de grado V, cuyas raíces
son elementos del cuerpo de Galois de la forma
\alpha^{-h(v)}. La expresión del polinomio localizador de
errores es:
(5)\sigma (x)
= \kappa . \prod\limits^{V}_{v=0} (1 - x . \alpha ^{h(v)}) =
\sigma _{t} . x^{t} + \sigma _{t-1} .
x^{t-1} + . . . + \sigma _{1} . x + \sigma
_{0}
en la que \kappa=\sigma_{0}
es un elemento arbitrario del cuerpo CG(2^{m}) y
\sigma_{u}= 0 para u>V. Los coeficientes \sigma_{u} de
este polinomio cumplen el sistema
lineal:
Existen diferentes algoritmos para resolver el
sistema lineal (6), en especial el algoritmo de Euclides y los
algoritmos de tipo Berlekamp-Massey. El algoritmo de
Euclides es conceptualmente simple, pero su puesta en práctica
requiere una complejidad mayor que los algoritmos de tipo
Berlekamp-Massey. Los algoritmos de tipo
Berlekamp-Massey resuelven el sistema (6) por
iteraciones sucesivas que se interpretan de manera clásica como una
construcción recursiva de un registro con desplazamiento de
operadores lineales que modelizan el sistema (ver "Theory and
Practice of Error Control Codes" de R.E. Blahut,
Addison-Wesley, Reading, MA, 1993). Para cada
iteración, se calcula una desviación de predicción
("discrepancy") \Delta_{k} con valores dentro del cuerpo
CG(2^{m}) para poner al día el polinomio localizador. Si
esta separación \Delta_{k} es todavía no nula a la salida de la
iteración de orden (2t), el algoritmo indica un fallo de
decodificación, comportando el bloque recibido más de t símbolos
erróneos.
Se han propuesto diversas variantes del
algoritmo de Berlekamp-Massey con el objetivo de
simplificar su implementación. El artículo "VLSI Design of
Inverse-Free Berlekamp-Massey
Algorithm", de I.S. Reed y otros, IEEE
Proceedings-E, Vol.138, Nº5, Septiembre de 1991,
páginas 295-298, propone una variante interesante en
la medida en la que permite editar la inversión de las desviaciones
de predicción \Delta_{k}. Esta variante se basa en considerar un
valor a priori cualquiera dentro de CG(2^{m}) para
el coeficiente \kappa=\sigma_{0}, en lugar de \kappa=1 en
la versión tradicional.
Una vez que el polinomio localizador de errores
ha sido calculado, sus raíces son determinadas para obtener las
posiciones h(v) de los errores. Un procedimiento utilizado
frecuentemente para ello, llamado "búsqueda de Chien", consiste
en calcular los valores del polinomio \sigma(x) para cada
uno de los elementos del cuerpo CG(2^{m}), identificándose
un valor cada vez que \sigma(x) = 0 (ver "Cyclic Decoding
Procedure for the
Bose-Chaudhuri-Hocquenghem Codes"
por R.T. Chien, IEEE Trans. on Information Theory, Vol.10, 1964,
páginas 357-363) Este procedimiento consiste en un
cálculo recursivo del valor de
\sigma(\alpha^{1-N+n}) para n=0, 1,
..., N-1 según:
(7)\sigma
(\alpha ^{1-N+n}) = \sum\limits^{t}_{u=0} \zeta
^{(n)}_{u}
explotando las relaciones de
recurrencia \zeta ^{(n+1)}_{u} = \zeta ^{(n)}_{u}.\alpha ^{u}
para 0\leq u \leqt, iniciadas por \zeta ^{(0)}_{u} = \sigma
_{u}.\alpha ^{u .
(1-N)}.
Las amplitudes de los errores son evaluadas, por
ejemplo, según el algoritmo de Forney (ver "On Decoding BCH
Codes", por G.D. Forney, IEEE Trans. on Information Theory, Vol.
11, 1965, páginas 549-557). Un polinomio evaluador
de errores \omega(X)se define por:
(8)\omega (x)
= [S(x) . \sigma (x)]
\hskip0.5cm\mathit{modulo}
\hskip0.5cmx^{2t} = \omega_{t} . x^{t} + \omega _{t-1} . x^{t-1} + . . . + \omega _{1} . x + \omega _{0}
designando S(x) el polinomio
de los
síndromes:
(9)S(x)
= \sum\limits^{2t}_{i=1} S_{i} .
x^{i}
Las amplitudes de los errores se obtienen
entonces por:
(10)e_{h(v)} =
\frac{\omega (x)}{x . \sigma ' (x)}
\hskip0.5cmpor
\hskip0.5cmx = \alpha ^{-h(v)}
designando \sigma'(x) la derivada
del polinomio localizador de errores. Los valores del denominador
\alpha^{1-N+n}\sigma(\alpha,^{1-N+n})
para n=0, 1, ..., N-1 pueden ser obtenidas
simplemente en la búsqueda de Chien (por una suma tal como (7) en la
que solamente se suman los términos para u impar). Los valores del
numerador pueden ser obtenidos por un procedimiento parecido a la
búsqueda de Chien, sustituyendo \sigma_{u} por \omega_{u}
en el inicio de las relaciones de
recurrencia.
Cuando el decodificador utiliza un algoritmo de
tipo Berlekamp-Massey, los coeficientes del
polinomio evaluador \omega(x) pueden ser calculados al
mismo tiempo que los del polinomio localizador en las 2t iteraciones
de este algoritmo. También se pueden calcular posteriormente según
(8).
\newpage
Algunos algoritmos de decodificación han sido
dispuestos para poder tener en cuenta borrados en los datos de
entrada.
Un símbolo borrado es marcado en el bloque de
entrada para indicar que este símbolo no ha sido recibido, o que ha
sido recibido en condiciones tan malas que a priori su valor
es falso. La consideración de estos borrados permite reducir el
número de incógnitas de las relaciones (3) puesto que algunas de las
posiciones h(v) son conocidas.
Cuando el polinomio localizador de errores es
calculado de forma iterativa según el algoritmo de
Berlekamp-Massey, la consideración de los borrados
conduce a iniciar de manera distinta los coeficientes del polinomio
localizador \sigma(x) antes de la primera iteración. En un
código sin borrado, este polinomio localizador es habitualmente
iniciado por \sigma^{0}(x)=1, mientras que la
consideración de los borrados conduce a iniciar por un polinomio de
grado s, cuyas raíces \alpha^{-h(0)}, ...,
\alpha^{-h(s-1)} están determinadas por
las posiciones h(0), ..., h(s-1), los
s borrados considerados. El algoritmo de
Berlekamp-Massey adaptado para tener en cuenta los
borrados se describe igualmente en la obra antes citada de
R.E.Blahut. Una versión adaptada para evitar cálculos de inversión
en el cuerpo de Galois se describe en el artículo "On Decoding of
Both Errors and Erasures of a Reed-Solomon Code
Using an Inverse-Free
Berlekamp-Massey Algorithm", de J.H.JENG y otros,
IEEE Transactions on Communications, Vol. 47, No. 10, octubre 1999,
páginas 1488-1494.
Si s es el número de símbolos borrados del
bloque de entrada y V el número de símbolos erróneos, el algoritmo
de decodificación con gestión de los borrados permite corregir los
errores y los borrados del bloque si 2s + V\leq 2t, es
s+V/2\leqt.
Esta última ventaja hace interesantes los
algoritmos de borrado, que pueden llegar hasta doblar la capacidad
de corrección del código si se han borrado 2t errores.
Sin embargo, esta ventaja supone que la
determinación de los símbolos borrados sea perfectamente fiable. En
la práctica, esta condición no se cumple en todos los casos. En
particular, existe una probabilidad de borrar símbolos que se habían
encontrado como recibidos correctamente. En este caso, si el número
de símbolos erróneos era en origen inferior o igual a t, se pueden
superar las capacidades de corrección del algoritmo con borrados
cuando el algoritmo sin borrado haya facilitado el resultado
correcto.
En "Error Control Techniques Applicable to HF
Channels" (IEE Proceedings, Vol. 136, Part. 1, No.1, 1989,
páginas 57-63), S.D. Bate y otros dan a conocer un
algoritmo de decodificación con decisiones flexibles para códigos
producto construidos con códigos elementales de tipo
Reed-Solomon.
En "Successive-Erasure
Decoding of RS Codes and Error Detection for ARQ" (Proc. of the
9th IEEE International Symposium on Personal, Indoor and Mobile
Radio Communications (PIMRC'98), Boston, MA, USA,
8-11 septiembre 1998), F.Poegel y otros dan a
conocer una técnica de decodificación con decisiones flexibles para
los códigos de Reed-Solomon, capaz de generar
errores de canal con o sin borrados. Esta técnica interrumpe las
iteraciones de decodificación del algoritmo de decodificación con
borrados sucesivos después de haber conseguido la primera
decodificación.
Un objetivo de la presente invención es el de
optimizar las capacidades de decodificación de los códigos
correctores de errores, tales como los códigos de tipo
Reed-Solomon o BCH
(Bose-Chaudhuri-Hocquenghem).
Por lo tanto, la invención da a conocer un
dispositivo tal como se define en la reivindicación 1. Se dan a
conocer en las reivindicaciones 2 a 6 formas de realización
preferentes.
Este dispositivo palía la limitación que se ha
citado en lo anterior de los algoritmos con gestión de borrados,
garantizando que la decodificación se realiza siempre en buenas
condiciones cuando el bloque de entrada no comporta más de t
símbolos erróneos. En ciertos casos donde hay más de t símbolos
erróneos, la segunda decodificación con borrado permitirá la
corrección oportuna.
La decodificación propuesta toma por lo tanto en
consideración una probabilidad de equivocarse en el posicionado de
los borrados. El esquema está por lo tanto bien adaptado a
procedimientos de recepción de señales con relación reducida
señal/ruido.
Se debe observar que no es necesario calcular
dos veces los síndromes cuando los dos métodos de corrección deben
ser aplicados en un mismo bloque. Dado que el cálculo de los
síndromes representa una proporción importante de la complejidad del
conjunto de decodificación (aproximadamente 50%), la ganancia
facilitada por el procedimiento se obtiene a cambio de un aumento
razonable de la complejidad.
Otras particularidades y ventajas de la presente
invención aparecerán en la descripción siguiente de ejemplos de
realización no limitativos, haciendo referencia a los dibujos
adjuntos, en los cuales:
- la figura 1 es un esquema sinóptico de un
ejemplo de dispositivo según la invención; y
- la figura 2 es un organigrama que muestra un
procedimiento de decodificación según la invención.
El dispositivo representado en la figura 1 se
refiere a una señal numérica de entrada R que ha podido ser
transmitida, por ejemplo, en un interfaz de radio. Esa señal (R) es
facilitada a un demodulador (1) que procede a una estimación de
símbolos numéricos transmitidos. Estos símbolos numéricos han sido
generados a nivel de un emisor no representado, aplicando una
codificación con redundancia, con la finalidad de proteger los
símbolos de información contra errores de transmisión. El código con
redundancia es preferentemente un código no binario de
Reed-Solomon, tal como el presentado en la
introducción.
Para comodidad de realización, se utilizan en
general códigos sistemáticos, es decir que los N-2t
símbolos de información se encuentran explícitamente en los N
símbolos transmitidos. Son, por ejemplo, los primeros
N-2t símbolos.
El demodulador (1) facilita símbolos estimados
r_{N-1}, r_{N-2}, ..., r_{1} ,
r_{0} por bloques de N símbolos a un decodificador (2). Cada
símbolo esta constituido por m bits cuando el código de
Reed-Solomon está definido en el cuerpo
CG(2^{m}).
El decodificador (2) presenta un módulo (3) de
cálculo de síndromes, que calcula de manera clásica los 2t síndromes
de errores S_{1}, S_{2}, ..., S_{2t}, por ejemplo, según la
relación (4).
El decodificador (2) presenta además un módulo
(4) de decodificación de errores sin tener en cuenta borrados. Éste
puede funcionar de manera clásica según los algoritmos de
Berlekamp-Massey, de Chien y de Forney para corregir
eventuales errores, en número inferior o igual a t, en los símbolos
estimados del bloque de entrada. Los N-2t primeros
símbolos son extraídos después de corrección para ser facilitados a
los circuitos de explotación situados más abajo.
Otro módulo de decodificación (5) del
decodificador (2) tiene en cuenta simultáneamente errores y borrados
cuando el primer módulo (4) indica que ha sido incapaz de corregir
el bloque a causa de la detección de un número de errores superior a
t. El módulo (5) funciona utilizando los mismos síndromes S_{1},
..., S_{2t} que han sido calculados para el módulo (3), e
inicializan el polinomio localizador de errores según un polinomio
de inicialización \sigma^{0}(x) facilitado por un módulo
(6) de selección de borrados.
Si el módulo de decodificación (5) queda
igualmente en defecto, facilita una señal de alarma (X) para indicar
la pérdida de un bloque a los circuitos situados más abajo.
El módulo (6) de selección de los borrados
funciona de manera conocida sobre la base de mediciones de parecido
\lambda_{N-1},
\lambda_{N-2}, ..., \lambda_{1},
\lambda_{0} facilitadas por el demodulador (1) paralelamente a
los símbolos estimados r_{N-1},
r_{N-2},..., r_{1}, r_{0}. Estas medidas de
similitud han sido producidas, por ejemplo, a partir de la métrica
de un igualador de canal con salidas flexibles del demodulador (1)
(ver, por ejemplo, EP-A-0 946
014).
A partir de las posiciones de los símbolos
borrados, el módulo (6) calcula el polinomio de inicio
\sigma^{0}(x) para el algoritmo de
Berlekamp-Massey puesto en práctica por el módulo de
decodificación (5).
La figura 1 facilita una representación
sinóptica del dispositivo según la invención. En la práctica, el
decodificador (2) será frecuentemente realizado programando un
procesador de señal numérica de manera apropiada, por ejemplo, según
el organigrama de la figura 2.
La primera etapa del tratamiento de un bloque
r_{N-1}, r_{N-2},..., r_{1},
r_{0} es el cálculo (11) de los síndromes S_{1}, S_{2}, ...,
S_{2t} según las relaciones (4). Si todos los síndromes son nulos
(prueba -12-), el tratamiento del bloque se habrá terminado, y es
suficiente extraer los símbolos de información del bloque (etapa
-13-).
Si por lo menos uno de los síndromes no es nulo,
el polinomio localizador de errores \sigma(x) es calculado
en la etapa 14, por ejemplo, según el algoritmo de
Berlekamp-Massey inicializado por
\sigma^{0}(x)=1. Este algoritmo indica, de manera
clásica, los bloques para los que estima que el grado del polinomio
localizador de errores es superior al grado 2t del polinomio
generador del código. Esta condición es comprobada en la etapa (15).
Si el grado no supera 2t, la etapa siguiente es la búsqueda de
raíces del polinomio localizador de error \sigma(x) en la
etapa (16), por ejemplo, según el algoritmo de Chien. Si el número
de raíces que se ha encontrado es igual al grado del polinomio
\sigma(x) (prueba -17-), la etapa siguiente (18) consiste
en el cálculo del polinomio evaluador \omega(x), según la
relación (8). En la etapa siguiente (19), el algoritmo de Forney es
utilizado para evaluar las amplitudes de los errores, y esas
amplitudes son sustraídas de los símbolos correspondientes para su
corrección. Los símbolos de información pueden ser extraídos
entonces del bloque en la etapa (13).
Cuando el algoritmo de decodificación sin
borrados se sitúa en defecto, es decir, cuando el grado del
polinomio \sigma(x) sobrepasa 2t (prueba -15-), o cuando la
búsqueda de Chien no facilita el número apropiado de raíces (prueba
-17-), el decodificador aplica el método de decodificación con
gestión de los borrados. Empieza por calcular el polinomio
localizador de errores y de borrados (indicado igualmente
\sigma(x) en la figura 2) a partir de los mismos síndromes
calculados en la etapa (11) y del polinomio de inicialización
\sigma^{0}(x) (etapa 20). Este cálculo es efectuado según
un algoritmo de Berlekamp-Massey modificado para
tener en cuenta los borrados. El decodificador entra en fallo si el
grado del polinomio localizador \sigma(x) obtenido supera
todavía 2t en la prueba (21). De lo contrario, el decodificador pasa
a la búsqueda (22) de las raíces de los polinomios
\sigma(x), según el algoritmo de Chien. El decodificador se
pone también en fallo si el número de raíces encontradas no
corresponde al grado del polinomio \sigma(x). En caso
contrario, procede a la etapa (18) antes citada para determinar el
polinomio evaluador de errores y de borrados.
Como variante, el polinomio evaluador
\omega(x) puede ser calculado en el curso de la ejecución
del algoritmo de Berlekamp-Massey, en la etapa (14)
o (20).
En otra realización del decodificador, cuando la
decodificación con borrados queda en defecto, el módulo (5) lo
señala al módulo (6) de selección de los borrados. Éste selecciona
entonces más borrados en el bloque, y determina un polinomio de
inicialización \sigma^{0}(x) de grado superior. El
algoritmo de decodificación con borrados es ejecutado normalmente a
partir de ese polinomio \sigma^{0}(x), siempre con los
mismos síndromes S_{1}, ..., S_{2t}, para intentar la corrección
del bloque.
Claims (6)
1. Dispositivo para tratamiento de señal, que
comprende medios (1) de recepción de la señal para estimar los
bloques de símbolos de entrada (r_{N-1},
r_{N-2}, ..., r_{1}, r_{0}) y de medios (2) de
decodificación de dichos bloques por medio de un código corrector de
errores, en el que los medios de decodificación comprenden medios
(3) de cálculo de síndromes (S_{1}, S_{2}, ..., S_{2t}) a
partir de un bloque de señal y de primeros medios (4) de tratamiento
de los síndromes para estimar símbolos de información, comprendiendo
los primeros medios de tratamiento de los síndromes medios (4) de
corrección de errores en el bloque de señal, en el que los medios de
recepción de señal (1) están dispuestos para facilitar una
información sobre la fiabilidad de los símbolos de entrada del
bloque, y los medios de decodificación (2) comprenden además medios
(6) para determinar como mínimo una posición de borrado en el bloque
sobre la base de dicha información sobre la fiabilidad, y segundos
medios (5) de tratamiento de los síndromes y de dicha posición de
borrado, activados como respuesta a una indicación de incapacidad de
corrección por los primeros medios de tratamiento (4) para estimar
los símbolos de información.
2. Dispositivo, según la reivindicación 1, en el
que el código corrector de errores es un código de
Reed-Solomon.
3. Dispositivo, según la reivindicación 1 ó 2,
en el que los primeros medios de tratamiento (4) comprenden medios
de cálculo de un polinomio localizador de errores sobre la base de
los síndromes (S_{1}, S_{2}, ..., S_{2t}), incluyendo medios
para generar una indicación de incapacidad de corrección cuando el
grado del polinomio localizador de errores supera el grado del
polinomio generador del código.
4. Dispositivo, según la reivindicación 3, en el
que los primeros medios de tratamiento (4) comprenden medios de
búsqueda de raíces del polinomio localizador de errores, incluyendo
medios para generar una indicación de incapacidad de corrección
cuando el número de raíces encontradas no es igual al grado del
polinomio localizador de errores.
5. Dispositivo, según cualquiera de las
reivindicaciones anteriores, en el que los medios de recepción
comprenden un demodulador (1).
6. Dispositivo, según cualquiera de las
reivindicaciones anteriores, en el que los medios (6) de
determinación de posiciones de borrado están dispuestos para
determinar un número incrementado de posiciones de borrado en el
bloque en respuesta a una indicación de incapacidad de corrección
por los segundos medios de tratamiento (5), siendo tomado entonces
dicho número incrementado de posiciones de borrado como parámetros
de entrada de los segundos medios de tratamiento para estimar los
símbolos de información.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0015266A FR2817418B1 (fr) | 2000-11-27 | 2000-11-27 | Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede |
FR0015266 | 2000-11-27 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2271122T3 true ES2271122T3 (es) | 2007-04-16 |
Family
ID=8856899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES01997184T Expired - Lifetime ES2271122T3 (es) | 2000-11-27 | 2001-11-14 | Decodificacion flexible de codigos bloque con decodificacion de errores y borrados. |
Country Status (8)
Country | Link |
---|---|
US (1) | US20040030984A1 (es) |
EP (1) | EP1338092B1 (es) |
AT (1) | ATE339034T1 (es) |
AU (1) | AU2002218374A1 (es) |
DE (1) | DE60122923T2 (es) |
ES (1) | ES2271122T3 (es) |
FR (1) | FR2817418B1 (es) |
WO (1) | WO2002043250A2 (es) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050210358A1 (en) * | 2002-05-31 | 2005-09-22 | Koninklijke Phillips Electronics N.V. | Soft decoding of linear block codes |
US7673222B2 (en) * | 2005-07-15 | 2010-03-02 | Mediatek Incorporation | Error-correcting apparatus including multiple error-correcting modules functioning in parallel and related method |
US7603591B2 (en) * | 2005-07-19 | 2009-10-13 | Mediatek Incorporation | Apparatus selectively adopting different determining criteria in erasure marking procedure when performing decoding process, and method thereof |
US8286051B2 (en) | 2005-07-15 | 2012-10-09 | Mediatek Inc. | Method and apparatus for burst error detection and digital communication device |
US8473826B1 (en) * | 2009-08-12 | 2013-06-25 | The United States Of America As Represented By The Secretary Of The Navy | Hybrid soft decision hard decision reed solomon decoding |
US9009577B1 (en) * | 2012-11-13 | 2015-04-14 | Xilinx, Inc. | Circuitry and method for forward error correction |
TWI566091B (zh) | 2015-09-10 | 2017-01-11 | 慧榮科技股份有限公司 | 用來對一錯誤更正碼進行解碼之方法與解碼電路 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4564945A (en) * | 1983-06-20 | 1986-01-14 | Reference Technology, Inc. | Error-correction code for digital data on video disc |
US4653051A (en) * | 1983-09-14 | 1987-03-24 | Matsushita Electric Industrial Co., Ltd. | Apparatus for detecting and correcting errors on product codes |
NL8400629A (nl) * | 1984-02-29 | 1985-09-16 | Philips Nv | Snelle decodeur voor reed-solomon-codes, welke mede als encodeur te gebruiken is, alsmede opname/reproduktie-apparaat voorzien van zo een encodeur/decodeur. |
JPS63193723A (ja) * | 1987-02-06 | 1988-08-11 | Sony Corp | リ−ドソロモン符号の復号方法 |
DE3852999T2 (de) * | 1987-06-30 | 1995-06-14 | Matsushita Electric Ind Co Ltd | Galois-feld-recheneinheit. |
KR950002304B1 (ko) * | 1992-10-07 | 1995-03-16 | 삼성전자주식회사 | 다중 오류정정 방법 |
DE4316813A1 (de) * | 1993-05-19 | 1994-11-24 | Philips Patentverwaltung | Reed-Solomon-Decoder |
JP3328093B2 (ja) * | 1994-07-12 | 2002-09-24 | 三菱電機株式会社 | エラー訂正装置 |
US5715262A (en) * | 1995-07-12 | 1998-02-03 | Lsi Logic Corporation | Errors and erasures correcting reed-solomon decoder |
US6047395A (en) * | 1998-01-30 | 2000-04-04 | Cirrus Logic, Inc. | Error correction processor for correcting a multi-dimensional code by generating an erasure polynomial over one dimension for correcting multiple codewords in another dimension |
FR2776113A1 (fr) * | 1998-03-13 | 1999-09-17 | Thomson Multimedia Sa | Dispositif de correction d'erreurs et lecteur de disque optique comportant un tel dispositif |
US6449746B1 (en) * | 1998-08-17 | 2002-09-10 | T. K. Truong | Decoding method for correcting both erasures and errors of reed-solomon codes |
US6543026B1 (en) * | 1999-09-10 | 2003-04-01 | Lsi Logic Corporation | Forward error correction apparatus and methods |
-
2000
- 2000-11-27 FR FR0015266A patent/FR2817418B1/fr not_active Expired - Fee Related
-
2001
- 2001-11-14 AT AT01997184T patent/ATE339034T1/de not_active IP Right Cessation
- 2001-11-14 DE DE60122923T patent/DE60122923T2/de not_active Expired - Lifetime
- 2001-11-14 ES ES01997184T patent/ES2271122T3/es not_active Expired - Lifetime
- 2001-11-14 EP EP01997184A patent/EP1338092B1/fr not_active Expired - Lifetime
- 2001-11-14 WO PCT/FR2001/003572 patent/WO2002043250A2/fr active IP Right Grant
- 2001-11-14 AU AU2002218374A patent/AU2002218374A1/en not_active Abandoned
- 2001-11-14 US US10/432,153 patent/US20040030984A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1338092A2 (fr) | 2003-08-27 |
EP1338092B1 (fr) | 2006-09-06 |
FR2817418A1 (fr) | 2002-05-31 |
WO2002043250A3 (fr) | 2002-07-25 |
ATE339034T1 (de) | 2006-09-15 |
AU2002218374A1 (en) | 2002-06-03 |
DE60122923D1 (de) | 2006-10-19 |
US20040030984A1 (en) | 2004-02-12 |
FR2817418B1 (fr) | 2003-02-21 |
WO2002043250A2 (fr) | 2002-05-30 |
DE60122923T2 (de) | 2007-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9998148B2 (en) | Techniques for low complexity turbo product code decoding | |
EP1131893B1 (en) | Forward error corrector | |
US7788570B1 (en) | Optimized Reed-Solomon decoder | |
US8245117B1 (en) | Low complexity chien search in chase-type decoding of reed-solomon codes | |
US7370258B2 (en) | Iterative concatenated convolutional Reed-Solomon decoding method | |
JP4152887B2 (ja) | リニアブロックコードに関する消去箇所−及び−単一−エラー訂正デコーダ | |
US8291290B1 (en) | Methods and algorithms for joint channel-code decoding of linear block codes | |
KR101433620B1 (ko) | 처리량을 높이기 위하여 더블 버퍼링 구조와 파이프라이닝기법을 이용하는 디코더 및 그 디코딩 방법 | |
US8429489B2 (en) | Data retrieval from a storage device using a combined error correction and detection approach | |
JP4598711B2 (ja) | 誤り訂正装置 | |
US10459783B2 (en) | Low-latency decoder for Reed Solomon codes | |
US10230403B2 (en) | Method and decoder for soft input decoding of generalized concatenated codes | |
JPH1155129A (ja) | 積符号の誤り訂正および並行検査 | |
CN110071727B (zh) | 编码方法、译码方法、纠错方法及装置 | |
US8949697B1 (en) | Low power Reed-Solomon decoder | |
US8201061B2 (en) | Decoding error correction codes using a modular single recursion implementation | |
ES2271122T3 (es) | Decodificacion flexible de codigos bloque con decodificacion de errores y borrados. | |
KR100970223B1 (ko) | 리드-솔로몬 코드의 소프트-결정 디코딩 방법, 리드-솔로몬 코드워드 디코더 및 컴퓨터 프로그램 제품 | |
US6606727B1 (en) | System and method for providing error correction coding with selectively variable redundancy | |
US11323138B1 (en) | Reed-Solomon code soft-decision decoding method and device | |
US6651214B1 (en) | Bi-directional decodable Reed-Solomon codes | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes | |
JP2002230918A (ja) | 誤り訂正符号エンティティのための消失訂正のコンピュータ実現化方法 | |
KR100594002B1 (ko) | 가변 처리가 가능한 파이프라인 구조의 리드 솔로몬 복호기 | |
EP1612949A1 (en) | Method and system for correcting errors in electronic memory devices |