You are on page 1of 3

RED SOLOMON

Braulio V. Arpi, Christian O. Muñoz, Gabriela B. Jara

Luego se forma una tabla con elementos binarios que expresan


Abstract— In this paper we decoder the polyneme using exactamente el comportamiento de cada potencia sobre los
reed Solomon decoder and compared with receive elementos del polinomio inicial, para luego verificar que la
potencia de un elemento cuyo grado es mayor al máximo será
messenger to correction error.
igual a un valor dentro del campo, siempre y cuando sea distinto
de 0
Index Term. – Reed Solomon, decoder.
Reed-Solomon es un código cíclico no binario y constituye una
subclase de los códigos BCH. Los códigos cíclicos son una
I. INTRODUCCIÓN subclase de los códigos de bloque estándar de detección y
Previo a la codificación Solomon, es necesario entender como corrección de errores que protege la información contra errores
está constituido un polinomio primitivo y como comprobar que en los datos transmitidos sobre un canal de comunicaciones.
lo es, debido a que este tipo de codificación solo funciona con Este tipo de código pertenece a la categoría FEC (Forward
estos polinomios en específicos, de lo contrario los resultados Error Correction), es decir, corrige los datos alterados en el
serían erróneos. receptor y para ello utiliza unos bits adicionales que permiten
Con el mensaje recibido obtenemos los respectivos síndromes esta recuperación a posteriori.[1]
para encontrar los errores si los hay para luego corregirlos hasta
un máximo de 2 errores en este ejercicio. Características

Este código se forma sobre la base de grupos de bits que se


II. MARCO TEÓRICO
Para comprobar si un polinomio f(x) es o no primitivo, se denominan símbolos. El código Reed-Solomon trabaja con los
estudian dos métodos, los cuales se describen a continuación: símbolos en vez de con los bits individuales.

Método de divisiones Un símbolo es una secuencia de "m" bits individuales que


Un polinomio se considera primitivo si este es divisible para
aparecen en serie. Un símbolo es erróneo cuando al menos un
𝑥 𝑛 + 1, 𝑛 = 2𝑚 − 1
Y no es divisible para bit del símbolo tiene error.
𝑥 𝑛 + 1, 1 ≤ 𝑛 < 2𝑚 − 1

m = valor que representa el grado del polinomio


Decodificador
Nota: Es necesario comprobar que el polinomio no es divisible
Los procedimientos algebraicos de decodificación de Reed-
para cada uno de los valores en el intervalo [1, 2𝑚 − 1).
Solomon pueden corregir errores y datos perdidos. Un
"borrado" ocurre cuando la posición de un símbolo errado es
Si el polinomio incumple una de las condiciones propuestas, se
conocido. Un decodificador corregir hasta t errores o hasta 2t
concluye que no se trata de un polinomio primitivo.
"borrados". Información sobre los "borrados" puede ser
frecuentemente otorgada por el demodulador en un sistema de
Método de elementos primitivos, GF(2 m)
comunicación digital, es decir, el demodulador ¨marca¨ los
Este método consiste en comprobar que los valores de x
símbolos recibidos que con probabilidad contienen errores.
correspondan a f(x)=0. Para ello el teorema de algebra, sostiene
Cuando una palabra de código es decodificada, existen tres
que un polinomio de grado m, debe tener exactamente m raíces.
posibilidades.
El procedimiento consiste en reemplazar las variables de la
1. Si 2s + r < 2t (s errores, r "borrados") entonces la
función inicial, por otra variable que en este caso será (α) y
palabra de código original transmitida puede ser
luego igualar la función a 0. Es decir:
𝑓(𝛼) = 0 siempre recuperada.
De tal manera que el término de grado mayor sea representado 2. El decodificador detectará que no puede recuperar la
mediante una suma ponderada de los términos de grado inferior. palabra de código original e indicará este hecho.
El siguiente paso es, mediante resultado anterior, expresar todas 3. El decodificador decodificará erróneamente y
las potencias de (α). recuperará una palabra de código incorrecta sin
indicación.
Entonces para que un polinomio sea primitivo el campo de
elementos final sin repetirse deberá contener (2 m) elementos.
III. DESARROLLO 𝑆1 = 𝑟(∝)
Con los datos del ejercicio anterior, localice los errores y 𝑆1 =∝3 +∝3 +∝3 +∝5 +∝3 +∝6 +∝2
realice la corrección al mensaje recibido. 𝑆1 =∝2 +∝5 +∝6
𝑆1 =∝0
𝑟(𝑥) = 𝑎3 + 𝑎2 𝑥 + 𝑎𝑥 2 + 𝑎2 𝑥 3 + 𝑎6 𝑥 4 + 𝑎𝑥 5 + 𝑎3 𝑥 6 𝑆2 = 𝑟(∝2 )
𝑆2 =∝3 +∝4 +∝5 +∝1 +∝0 +∝4 +∝1
𝑆2 =∝0 +∝3 +∝5
α 𝑋2 𝑋1 𝑋0 𝑆2 =∝4
𝑎0 0 0 1 𝑆3 = 𝑟(∝3 )
𝑎1 0 1 0 𝑆3 =∝3 +∝6 +∝9 +∝14 +∝22 +∝21 +∝27
𝑎2 1 0 0 𝑆3 =∝3 +∝6 +∝2 +∝0 +∝1 +∝0 +∝6
𝑎3 1 0 1 𝑆3 =∝5
𝑎4 1 1 1 𝑆4 = 0
𝑎5 0 1 1 Debido a que los valores de los síndromes son diferentes de
𝑎6 1 1 0 cero, resulta que el código recibido contiene errores.
𝑎7 0 0 1

TABLA ADICIÓN 𝑆1 𝑆2 𝜎2 𝑆3
[ ]∗ =
𝑆2 𝑆3 𝜎1 𝑆4
α0 α1 α2 α3 α4 α5 α6 0 4 𝜎2 5

α0 0 α5 α3 α2 α6 α1 α4
[∝4 ∝5 ] [ ] = [∝ ]
∝ ∝ 𝜎1 0
α1 α5 0 α6 α4 α3 α0 α2 𝐶𝑂𝐹𝐴𝐶𝑇𝑂𝑅(𝐴)
𝐼𝑁𝑉(𝐴) =
α2 α3 α6 0 α0 α5 α4 α1 𝐷𝐸𝑇(𝐴)
3 5
𝐷𝐸𝑇 [ 5∝ ∝ ] =∝5 +∝2 =∝0
α3 α2 α4 α0 0 α1 α6 α5 ∝ ∝6
0 4 0 4 0 4
α4 α6 α3 α5 α1 0 α2 α0 𝐶𝑂𝐹 [∝4 ∝5 ] = [∝4 ∝5 ] = [∝4 ∝5 ]
α5 α1 α0 α4 α6 α2 0 α3 ∝ ∝ ∝ ∝ ∝ ∝
0 4

[ 4 ∝
α6 α4 α2 α1 α5 α0 α3 0 5] 0 4
𝐼𝑁𝑉(𝐴) = ∝ 0∝ = [∝4 ∝5 ]
∝ ∝ ∝
𝜎2 ∝0 ∝4 ∝5 5
[ ]=[ 4 5 ] [ ] = [∝2 ]
𝜎1 ∝ ∝ 0 ∝
TABLA DE MULTIPLICACIÓN 𝜎(𝑋) =∝0 + 𝜎1𝑋 + 𝜎 2 𝑋 2
𝜎(𝑋) =∝0 +∝5 𝑋 +∝2 𝑋 2
α0 α1 α2 α3 α4 α5 α6
Se evalúa 𝜎(𝑋) con valores de ∝𝑖 𝑖 = 0 . . . 2𝑡
α0 α0 α1 α2 α3 α4 α5 α6 𝜎(∝0 ) =∝0 +∝5 +∝2 =∝6 ≠ 0
α1 α1 α2 α3 α4 α5 α6 α0 𝜎(∝1 ) =∝0 +∝6 +∝4 = 0
α2 α2 α3 α4 α5 α6 α0 α1 𝜎(∝2 ) =∝0 +∝0 +∝6 =∝6 ≠ 0
𝜎(∝3 ) =∝0 +∝1 +∝1 =∝0 ≠ 0
α3 α3 α4 α5 α6 α0 α1 α2
𝜎(∝4 ) =∝0 +∝2 +∝3 = 0
α4 α4 α5 α6 α0 α1 α2 α3 𝜎(∝5 ) =∝0 +∝10 +∝12 =∝4 ≠ 0
α5 α5 α6 α0 α1 α2 α3 α4 𝜎(∝6 ) =∝0 +∝11 +∝14 =∝4 ≠ 0
α6 α6 α0 α1 α2 α3 α4 α5 Las raíces indican las posiciones mediante la siguiente
ecuación:
1
Mensaje original: = 𝑟𝑜𝑜𝑡
𝐵
1 1
𝑈(𝑥) =∝3 +∝2 𝑋 +∝1 𝑋 2 +∝2 𝑋 3 +∝5 𝑋 4 +∝1 𝑋 5 +∝3 𝑋 6 1
=∝4 =∝1
∝ ∝4
Localizar el error y realizar la corrección del siguiente mensaje:
𝑒(𝑋) = 𝑒𝑗1 𝑋𝑗1 + 𝑒𝑗2 𝑋𝑗2
𝑟(𝑋) =∝3 +∝2 𝑋 +∝1 𝑋 2 +∝2 𝑋 3 +∝6 𝑋 4 +∝1 𝑋 5 +∝3 𝑋 6
Calculo del síndrome: 𝛽1 =∝ 𝑗1 =∝1 𝛽2 =∝ 𝑗2 =∝4

𝑆1 = 𝑟(∝) = 𝑒1𝐵1 + 𝑒2𝐵2

Donde 𝑣(𝑥) es la palabra recibida en este caso con errores. 𝑆2 = 𝑟(∝2 ) = 𝑒1𝐵12 + 𝑒2𝐵22
𝐵1 𝐵2 𝑒1 𝑆1
[ 2 ][ ] = [ ]
𝑟(𝑋) =∝0 +∝2 𝑋 +∝4 𝑋 2 +∝2 𝑋 3 +∝6 𝑋 4 +∝1 𝑋 5 +∝3 𝑋 6 𝐵1 𝐵22 𝑒2 𝑆2
1
∝4 𝑒1 0 REFERENCIAS
[∝2 ] [ ] = [∝4 ]
0 𝑒2
∝ ∝ ∝
[1] B. SKLAR, DIGITAL COMUNICATIONS
𝑒1 6
∝2 ∝0 ∝6 +∝6 0 Fundamentals and Applications, Segunda ed., Los Angeles,
[ ] = [∝0 5 ] [ 4 ] = [ 0 4]
= [ 3] California.
𝑒2 ∝ ∝ ∝ ∝ +∝ ∝

[2] E. Ochoa, «Clases de Teoria de la Información y


Codificación,» Universidad de Cuenca, Cuenca, 2016
𝑒′ (𝑋) = 𝑒1 𝑋𝑗1 + 𝑒2 𝑋𝑗2

𝑒′ (𝑋) =∝3 𝑋4
Nombre Nota
′ ′
𝑈 (𝑋) = 𝑟(𝑋) + 𝑒 (𝑋) = 𝑈(𝑋) + 𝑒(𝑋) + 𝑒′(𝑋) Braulio Arpi 9
Christian Muñoz 9
𝑈 ′(𝑋) =∝3 +∝2 𝑋 +∝1 𝑋 2 +∝2 𝑋 3 +∝6 𝑋 4 +∝1 𝑋 5 +∝3 𝑋 6 Gabriela Jara 9
+∝3 𝑋 4

El código corregido es el siguiente:

𝑈 ′ (𝑥) =∝3 +∝2 𝑋 +∝1 𝑋 2 +∝2 𝑋 3 +∝5 𝑋 4 +∝1 𝑋 5 +∝3 𝑋 6

Con esto comprobamos que red Solomon nos permite corregir


hasta 2 errores, en esta ocasión solo existe un error.

IV. CONCLUSIONES
De lo aplicado en este informe sacamos las siguientes
conclusiones:

• La codificación Reed Solomon es capaz de corregir errores


en "t" símbolos, donde t=r/2, en este caso existe 1 error.
• Cada símbolo está constituido por "m" bits consecutivos
agrupados.
• Cada palabra-código consta de "k" símbolos de
información (en lugar de bits), y "r" símbolos de paridad.
• La longitud de la palabra-código es: n=k+r símbolos,
longitud=n m expresada en nº de bit.
• Se establece la relación: n=2^{m}-1 entre la longitud de la
palabra código (n) y el número de símbolos (2^{m)

• Es suficiente con aplicar un solo método ya que son muy


eficientes.
• La codificación Solomon es eficiente debido a que es rápida
y simple de realizar de forma teórica, por ende, el algoritmo
de implementación resulta también muy simple y por eso
este método de codificación es aplicado en varios sistemas
de comunicación actualmente.

You might also like