<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>0254-0770</journal-id>
<journal-title><![CDATA[Revista Técnica de la Facultad de Ingeniería Universidad del Zulia]]></journal-title>
<abbrev-journal-title><![CDATA[Rev. Téc. Ing. Univ. Zulia]]></abbrev-journal-title>
<issn>0254-0770</issn>
<publisher>
<publisher-name><![CDATA[Facultad de Ingeniería, Universidad del Zulia]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S0254-07702008000300010</article-id>
<title-group>
<article-title xml:lang="en"><![CDATA[Modular Programming of functions for turbo product codes on FPGA]]></article-title>
<article-title xml:lang="es"><![CDATA[Programación modular de funciones para codificación turbo producto sobre FPGA]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Sandoval Ruiz]]></surname>
<given-names><![CDATA[Cecilia Esperanza]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de Carabobo Facultad de Ingeniería Dirección de Postgrado]]></institution>
<addr-line><![CDATA[Naguanagua ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2008</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2008</year>
</pub-date>
<volume>31</volume>
<numero>3</numero>
<fpage>294</fpage>
<lpage>301</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_arttext&amp;pid=S0254-07702008000300010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_abstract&amp;pid=S0254-07702008000300010&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_pdf&amp;pid=S0254-07702008000300010&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="en"><p><![CDATA[This paper present a review of the concepts turbo product codes, with the aim of designing an alternative based on the high degree of parallelism available in the reconfigurable hardware devices such as the FPGA, using these devices arrangements composed by field programmable; for designing functional modules such encoders. The selected modules have been described in language descriptor hardware, synthesized and simulated, using the design tool Xilinx ISE 9.2i, which was conducted with the programming of components, and sets out the findings on the basis of the alternatives raised.]]></p></abstract>
<abstract abstract-type="short" xml:lang="es"><p><![CDATA[En este artículo se realiza una breve revisión de los conceptos de códigos turbo producto, con el propósito de diseñar una alternativa basada en el alto grado de paralelismo disponible en los dispositivos de hardware reconfigurables, como es el caso de los FPGA, usando estos dispositivos de arreglos de compuertas programables por campo; para el diseño de módulos funcionales de dichos codificadores. Los módulos seleccionados han sido descriptos en lenguaje descriptor de hardware, sintetizados y simulados; usando la herramienta de diseño Xilinx ISE 9.2i, con la cual se realizó la programación de los componentes, y se establecen las conclusiones en función de las alternativas planteadas.]]></p></abstract>
<kwd-group>
<kwd lng="en"><![CDATA[VHDL]]></kwd>
<kwd lng="en"><![CDATA[re-configurable hardware]]></kwd>
<kwd lng="en"><![CDATA[coding]]></kwd>
<kwd lng="en"><![CDATA[digital communications]]></kwd>
<kwd lng="es"><![CDATA[VHDL]]></kwd>
<kwd lng="es"><![CDATA[hardware re-configurable]]></kwd>
<kwd lng="es"><![CDATA[codificadores]]></kwd>
<kwd lng="es"><![CDATA[comunicación digital]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[  <BASEFONT SIZE="3"> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="center"><FONT COLOR="#1f1a17" FACE="Verdana"> <B>Modular Programming of functions for turbo product codes on FPGA&nbsp;</B></FONT></P>     <P ALIGN="center"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Cecilia Esperanza Sandoval Ruiz&nbsp;</B></FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Direcci&#243;n de Postgrado, Facultad de Ingenier&#237;a, Universidad de Carabobo. Naguanagua  sector B&#225;rbula. Telf. 0251-8672829/4268 et. 102. Fax 0241-8671655.  <a href="mailto:csandoval1@uc.edu.ve">csandoval1@uc.edu.ve</a>&nbsp;</FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Abstract&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> This paper present a review of the concepts turbo product codes, with the  aim of designing an alternative based on the high degree of parallelism  available in the reconfigurable hardware devices such as the FPGA, using  these devices arrangements composed by field programmable; for designing  functional modules such encoders. The selected modules have been described  in language descriptor hardware, synthesized and simulated, using the design  tool Xilinx ISE 9.2i, which was conducted with the programming of components,  and sets out the findings on the basis of the alternatives raised.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Key word:&nbsp;</B> VHDL, re-configurable hardware, coding, digital communications.</FONT></P>     <P ALIGN="center"><b><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Programaci&#243;n modular de funciones para codificaci&#243;n turbo producto sobre  FPGA&nbsp; </FONT></b></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Resumen&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> En este art&#237;culo se realiza una breve revisi&#243;n de los conceptos de c&#243;digos  turbo producto, con el prop&#243;sito de dise&#241;ar una alternativa basada en el  alto grado de paralelismo disponible en los dispositivos de hardware reconfigurables,  como es el caso de los FPGA, usando estos dispositivos de arreglos de compuertas  programables por campo; para el dise&#241;o de m&#243;dulos funcionales de dichos  codificadores. Los m&#243;dulos seleccionados han sido descriptos en lenguaje  descriptor de hardware, sintetizados y simulados; usando la herramienta  de dise&#241;o Xilinx ISE 9.2i, con la cual se realiz&#243; la programaci&#243;n de los  componentes, y se establecen las conclusiones en funci&#243;n de las alternativas  planteadas.&nbsp; </FONT></P>     ]]></body>
<body><![CDATA[<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Palabras clave:&nbsp;</B> VHDL, hardware re-configurable, codificadores, comunicaci&#243;n digital.&nbsp; </FONT></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Recibido el 18 de Febrero de 2008&nbsp;En forma revisada el 05 de Noviembre de 2008&nbsp; </FONT></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Introducci&#243;n&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Dadas las caracter&#237;sticas de paralelismo de los c&#243;digos turbo producto,  los dispositivos FPGAs (Field Programmable Gate Arrays) representan una  alternativa para la implementaci&#243;n de &#233;stos sobre hardware reconfigurable.  Los FPGAs ofrecen un balance adecuado entre el espacio requerido por los  circuitos y la rapidez con que se pueden realizar las operaciones de codificaci&#243;n  y decodificaci&#243;n. La computaci&#243;n mediante el uso de FPGAs y/o hardware  reprogramable a bajo nivel se suele denominar computaci&#243;n reconfigurable.  Adem&#225;s de las ventajas inherentes cuando se pretende la reutilizaci&#243;n del  equipo, las FPGAs, bajo ciertas condiciones, pueden completar m&#225;s tareas  por unidad de tiempo que los procesadores debido b&#225;sicamente a dos motivos;  con menor exceso de instrucciones, pueden empaquetar mayor n&#250;mero de tareas  dentro de la misma &#225;rea de silicio y pueden controlar las operaciones a  nivel de bit, mientras que el procesador s&#243;lo puede hacerlo a nivel de  palabra.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Por ello, la tecnolog&#237;a de las FPGA est&#225; experimentando un amplio avance  no s&#243;lo en cuanto al desarrollo de dispositivos cada vez m&#225;s eficientes  sino tambi&#233;n en cuanto a su capacidad de relacionarse entre ellos y con  otros elementos [1].</FONT></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La implementaci&#243;n de C&#243;digos Turbo Producto (Turbo Product Codes &#186; TPC)  pueden presentar la entidad con pines de control para la configuraci&#243;n  del ancho de la palabra y del n&#250;mero de iteraciones en el tiempo, tal es  el caso observado en el m&#243;dulo de propiedad intelectual de Xilinx [2].  En este trabajo se ha tomado una alternativa basada en programaci&#243;n VHDL  de algoritmos de codificaci&#243;n [3], donde se realiza un tratamiento de los  m&#243;dulos y algoritmos que comprende el c&#243;digo para soportar futuras aplicaciones,  en este caso el prop&#243;sito es la descripci&#243;n en VHDL de los m&#243;dulos principales  que constituyen los codificadores TPC, para su implementaci&#243;n en hardware.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La selecci&#243;n de los TPC est&#225; basada en la eficiencia del c&#243;digo. Uno de  los m&#225;s comunes modelos de canal para la evaluaci&#243;n de tecnolog&#237;a para  la correcci&#243;n de errores es el de un canal con ruido Gaussiano, blanco  y aditivo (AWGN, Additive White Gussian Noise), donde el TPC ofrece aproximadamente  3 dB de ganancia sobre Reed Solomon-Viterbi (para las condiciones del modelo  con Rate 2/3, QPSK, AWGN), como lo enuncia Banister [4].&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Estudio de los C&#243;digos Turbo Productos&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El procedimiento de codificaci&#243;n TPC dar&#225; como resultado una matriz general  de dimensiones <I>(n+1,k)</I> por <I>(n+1,k); siendo n+1</I> bits la</FONT><FONT COLOR="#1f1a17" SIZE="2" FACE="Bookman"><FONT COLOR="#ff0000" FACE="Verdana" SIZE="2"><I> </I></FONT> <FONT COLOR="#1f1a17" FACE="Verdana" SIZE="2">extensi&#243;n de la  palabra de c&#243;digo y <I>k</I> bits la</FONT><FONT COLOR="#ff0000" FACE="Verdana" SIZE="2"><I> </I></FONT> <FONT COLOR="#1f1a17" FACE="Verdana" SIZE="2">de datos. En el caso, de un c&#243;digo turbo  producto que concatena dos codificadores Hamming (<I>7,4</I>), se obtiene una  matriz [64&#215;64]. Los bits de datos est&#225;n representados por <I>D</I></FONT><FONT COLOR="#1f1a17" FACE="Verdana"><SUB><I>ij</I></SUB></FONT><FONT COLOR="#1f1a17" FACE="Verdana" SIZE="2">, los bits  de chequeo Hamming est&#225;n representados por <I>H</I></FONT><FONT COLOR="#1f1a17" FACE="Verdana"><SUB><I>ij</I></SUB></FONT><FONT COLOR="#1f1a17" FACE="Verdana" SIZE="2">, y los bits de paridad por  <I>P</I></FONT><FONT COLOR="#1f1a17" FACE="Verdana"><SUB><I>ij</I></SUB></FONT><FONT COLOR="#1f1a17" FACE="Verdana" SIZE="2">, de manera que se obtiene una matriz con bits de chequeo del arreglo  de datos horizontal y vertical.&nbsp;</FONT></FONT><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> En la <a href="#fig1">Figura 1</a>, se muestra una estructura matricial de datos para un TPC  (8,4) x (8,4).</FONT></P>     ]]></body>
<body><![CDATA[<P ALIGN="center"><a name="fig1"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig1.gif" width="449" height="463"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Codificador Turbo Producto (TPC)&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El codificador TPC consta de un arreglo de memoria que alimentar&#225; a un  par de codificadores Hamming, uno recibe los datos organizados en filas  y el otro procesar&#225; los datos organizados en columnas, estos datos ser&#225;n  organizados en un arreglo matricial de memoria y se obtiene la paridad  de los elementos de paridad del mismo modo, aplicando xor a los bits de  paridad resultantes por filas y columnas. La <a href="#fig2">Figura 2</a>, presenta el diagrama  de bloques del codificador TPC.</FONT></P>     <P ALIGN="center"><a name="fig2"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig2.gif" width="533" height="235"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Decodificador TPC (Turbo Product Code)&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El decodificador Turbo Producto (<I>TPC Turbo Producto Code</I>) realiza un procesamiento  iterativo de las se&#241;ales de entrada del bloque de c&#243;digo con la ayuda de  uno o cuatro decodificadores suave (<I>SISO soft-in/soft-out</I>). Los 4 bits  de datos llegan al decodificador suave TPC, &#233;stos se almacenan en una matriz  de entrada. Una vez que todo un bloque de c&#243;digo se almacena, los decodificadores  SISO empiezan a procesar los datos de la matriz, realizando el almacenamiento  de los productos en un arreglo. La salida de la &#250;ltima iteraci&#243;n se combina  con la entrada y se realimenta. El nivel superior del diagrama de bloques  del decodificador TPC se muestra en la <a href="#fig3">Figura 3</a>.</FONT></P>     <P ALIGN="center"><a name="fig3"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig3.gif" width="577" height="185"></a></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La decodificaci&#243;n SISO se realiza sobre un eje del bloque de c&#243;digo en  una instante de tiempo. La salida de la decodificaci&#243;n horizontal, junto  con la matriz original de entrada horizontal, se incorpora a la decodificaci&#243;n  SISO vertical. La salida de la decodificaci&#243;n SISO, junto con la serie  original de entrada vertical, es realimentado para otra iteraci&#243;n horizontal,  y as&#237; sucesivamente [5]. La realizaci&#243;n de una decodificaci&#243;n de pasar  a lo largo de una dimensi&#243;n (<I>X</I> o <I>Y</I>) de la matriz se conoce como un eje  de iteraci&#243;n. La finalizaci&#243;n de la decodificaci&#243;n se denomina una iteraci&#243;n  completa, el proceso se ilustra en la <a href="#fig4">Figura 4</a>.</FONT></P>     <P ALIGN="center"><a name="fig4"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig4.gif" width="572" height="240"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Esta decodificaci&#243;n iterativa puede ser implementada a trav&#233;s de varios  decodificadores SISO paralelos, tomando de la matriz de entrada el vector  correspondiente a la muestra, siendo n muestras igual al n&#250;mero de iteraciones  y por ende igual al n&#250;mero de SISOs paralelas. Cada una de las muestras  es cuantizada con 4 bits, utilizando una tabla de acuerdo a la modulaci&#243;n  empleada [2], y cada una de las combinaciones tendr&#225; asociada una probabilidad  para la decodificaci&#243;n.</FONT></P>     ]]></body>
<body><![CDATA[<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Los algoritmos para decodificaci&#243;n SISO, basados en el algoritmo MAP que  es una versi&#243;n del algoritmo BCJR propuesto por Bahl, Cocke, Jelinek y  Raviv [6], para estimar las probabilidades a posteriori de los estados  y transiciones de una fuente de Markov (como por ejemplo un codificador  convolucional) a partir de las salidas observadas provenientes de un canal  discreto sin memoria, el cual tiene aplicaci&#243;n a los c&#243;digos de bloques  y es basados en ellos que se realiza la decodificaci&#243;n SISO.</FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La literatura propone en la decodificaci&#243;n SISO (Soft Input Soft Output)  algoritmos tales como Algoritmo de Viterbi salida suave (SOVA) y modificaciones  del algoritmo (M&#225;ximo A Posteriori) o BCJR, donde se presentan versiones  como Log MAP Max [7-11]. El estudio de estos algoritmos permite identificar  m&#243;dulos funcionales simplificados para la implementaci&#243;n en hardware de  las funciones requeridas para estimar la salida decodificada.</FONT></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Para aplicar la decodificaci&#243;n se requiere calcular los LLR&#146;s a posteriori  de la secuencia de bits uk, cada uno de los cuales viene dado por la  <a href="#ecu1">ecuaci&#243;n  1</a>.</FONT></P>     <P ALIGN="justify"><a name="ecu1"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu1.gif" width="494" height="169"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Empleando las simplificaciones [12], manejadas a trav&#233;s del logaritmo natural,  con lo que se pasan los productos a suma, y las sumas a selecci&#243;n del m&#225;ximo,  lo que se puede expresar como en la <a href="#ecu2">ecuaci&#243;n 2</a>.</FONT></P>     <P ALIGN="justify"><a name="ecu2"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu2.gif" width="490" height="114"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Aproximar cada operaci&#243;n m&#225;x(&#183;) da lugar al algoritmo M&#225;x logMAP. Se debe  rese&#241;ar que la aproximaci&#243;n es tanto mejor cuanto mayor sea la relaci&#243;n  se&#241;al a ruido.</FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El proceso de decodificaci&#243;n se basa en un enfoque pragm&#225;tico de la Trellis  Coded Modulation (TCM) se ha aplicado tambi&#233;n a los c&#243;digos de bloque y  los c&#243;digos de Turbo Producto (TPCs). Un simple mapa combinacional de c&#243;digo  se utiliza para obtener las salidas, lo cual se debe describir a trav&#233;s  de una tabla de b&#250;squeda (Lookup table).</FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La aplicaci&#243;n de las funciones del algoritmo Log MAP, se logra estableciendo  la selecci&#243;n con los SCS (Sumador Comparador Selector), siendo esta salida  final, la que es realimentada a la siguiente iteraci&#243;n, con la pr&#243;xima  muestra. La <a href="#fig5">Figura 5</a>, representa la estructura de decodificaci&#243;n iterativa,  basada en el algoritmo Log MAP simplificado.</FONT></P>     <P ALIGN="center"><a name="fig5"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig5.gif" width="553" height="270"></a></P>     
]]></body>
<body><![CDATA[<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Cada uno de los bloques componentes del decodificador SISO han sido estudiados.  La funci&#243;n gamma representa la m&#233;trica de la rama [8] con base en los datos  de salida, la paridad y la informaci&#243;n extr&#237;nseca, &#233;sta ser&#225; dada por una  tabla que seg&#250;n las entradas ofrecer&#225; la salida respectiva.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Los m&#243;dulos alpha y beta est&#225;n constituidos por unidades b&#225;sicas de suma,  comparaci&#243;n y selecci&#243;n (SCS), las estimaciones hacia delante y hacia atr&#225;s  de la m&#233;trica de estados se realizan con base en la m&#233;trica de la rama  y del estado anterior, identificados por las funciones descritas en las  <a href="#ecu3">ecuaciones 3</a> y <a href="#ecu4">4</a>.</FONT></P>     <P ALIGN="justify"><a name="ecu3"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu3.gif" width="491" height="47"></a></P>     
<P ALIGN="justify"><a name="ecu4"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu4.gif" width="494" height="46"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La funci&#243;n Lamda calcula la raz&#243;n de verosimilitud logar&#237;tmica (LLR, Log  Likelihood Rate), cuyo comportamiento lo describe la <a href="#ecu5">ecuaci&#243;n 5</a>.</FONT></P>     <P ALIGN="justify"><a name="ecu5"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu5.gif" width="490" height="100"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> La informaci&#243;n extr&#237;nseca se obtiene de la diferencia de la LLR y la informaci&#243;n  extr&#237;nseca del otro decodificador, &#233;sta se utiliza para realimentarla al  otro decodificador en la siguiente iteraci&#243;n a fin del c&#225;lculo de la m&#233;trica  de la rama, ser&#225; dada por la <a href="#ecu6">ecuaci&#243;n 6</a>.</FONT></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><a name="ecu6"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu6.gif" width="491" height="54"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Finalmente es importante se&#241;alar que la salida es una versi&#243;n suave de  todo el bloque de c&#243;digo TPC despu&#233;s de la decodificaci&#243;n, y no s&#243;lo la  informaci&#243;n binaria. Para el caso de decisiones finales se selecciona el  bit m&#225;s significativo (MSB) de la muestra como criterio de decisi&#243;n (hard),  estar&#225; dada por la <a href="#fig7">ecuaci&#243;n 7</a>.&nbsp; </FONT></P>     <P ALIGN="justify"><a name="ecu7"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10ecu7.gif" width="493" height="53"></a></P>     
]]></body>
<body><![CDATA[<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Estos modelos de los componentes del decodificador SISO, ser&#225;n considerados  para establecer su descripci&#243;n en VHDL.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Metodolog&#237;a&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>M&#243;dulo Hamming&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> En el codificador TPC el principal componente corresponde al m&#243;dulo de  codificaci&#243;n de Hamming, su eficiencia estar&#225; dada en funci&#243;n de la relaci&#243;n  de k/n Peebles [13] para efectos del dise&#241;o del codificador turbo producto  se defini&#243; un c&#243;digo Hamming (7<I>,4</I>).&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El vector de c&#243;digo resultante estar&#225; dado en funci&#243;n de la estructura  de la trama mostrada en la <a href="#fig3">Figura 3</a>. Donde <I>C3, C2, C1</I>; corresponde a los  bits de chequeo de paridad para la protecci&#243;n de la trama y <I>S(3), S(2),  S(1), S(0)</I> los bits de datos. En base al modelo de la trama codificada  mostrado en la <a href="#fig6">Figura 6</a>, se establece el comportamiento del codificador  a configurar, tomando como base el codificador Hamming en donde se intercalan  los bits de chequeo o paridad con las posiciones de los datos.</FONT></P>     <P ALIGN="center"><a name="fig6"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig6.gif" width="494" height="124"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Para el dise&#241;o del codificador se selecciona la concatenaci&#243;n de los cuatro  bits de datos con los tres bits resultantes del chequeo de paridad sobre  los bits en las posiciones dadas, se realiza la descripci&#243;n en VHDL para  su programaci&#243;n, la cual se presenta a continuaci&#243;n.</FONT></P>     <P ALIGN="center"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10img1.gif" width="494" height="189"></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Una vez identificados los componentes del decodificador SISO se define  una tabla de b&#250;squeda a la cual se le suministra el dato y los bits de  chequeo correspondientes a su correcci&#243;n, as&#237; como la informaci&#243;n a priori,  para la segunda iteraci&#243;n, a partir de lo que se obtendr&#225; el correspondiente  valor estimado.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El comportamiento del decodificador Hamming (hard) se describe a continuaci&#243;n.</FONT></P>     ]]></body>
<body><![CDATA[<P ALIGN="center"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10img2.gif" width="486" height="727"></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Luego se ha seleccionado la descripci&#243;n del m&#243;dulo SCS, el cual es una  arquitectura com&#250;n para los dem&#225;s componentes.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>M&#243;dulo Sumador Comparador Selector (SCS)&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> El bloque SCS estar&#225; definido en su comportamiento por la estructura de  la <a href="#fig7">Figura 7</a>.</FONT></P>     <P ALIGN="center"><a name="fig7"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig7.gif" width="494" height="290"></a></P>     
<P ALIGN="center"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10img3.gif" width="487" height="155"></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Resultados&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Las simulaciones han sido realizadas con ModelSim XE II 5.7g, &#233;ste permite  observar el comportamiento de los m&#243;dulos programados en VHDL. En la  <a href="#fig8">Figura  8</a>, la se&#241;al <I>encoder/s</I> corresponde a los datos donde cada paquete comprende  4 bits de informaci&#243;n, este componente produce a la salida la se&#241;al <I>encoder/code</I>  de 7 bits que contiene los 3 bits de redundancia codificados a partir de  la descripci&#243;n programada.&nbsp;</FONT></P>     <P ALIGN="center"><a name="fig8"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig8.gif" width="580" height="71"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> En la <a href="#fig9">Figura 9</a> se puede observar la decodificaci&#243;n de la data y la correcci&#243;n  de un bit de error que se ha introducido intencionalmente para comprobar  la eficiencia del c&#243;digo. (comparar con la salida del codificador), la  se&#241;al <I>var</I> se ha dejado accesible desde el puerto de la entidad solo para  fines did&#225;cticos ya que esta se&#241;al identifica la posici&#243;n del bit da&#241;ado,  seg&#250;n la codificaci&#243;n realizada cuando la posici&#243;n indica un elemento de  dato (como se observa en la <a href="#fig1">Figura 1</a>) sea posici&#243;n 6 &#243; 7, el decodificador  negar&#225; el bit de dicha posici&#243;n con lo que la trama quedar&#225; corregida,  en tanto que si la posici&#243;n corresponde a un bit de protecci&#243;n para el  caso posici&#243;n 1, el decodificador no realizar&#225; ninguna acci&#243;n pues la salida  ser&#225; finalmente la data recibida, la misma se muestra a trav&#233;s del puerto  como fuente recuperada (<I>source receive_ sr</I>).&nbsp;</FONT></P>     ]]></body>
<body><![CDATA[<P ALIGN="center"><a name="fig9"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig9.gif" width="574" height="100"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> As&#237; mismo, se presenta la simulaci&#243;n del m&#243;dulo SCS, en la  <a href="#fig10">Figura 10</a>, para  las entradas<I> a1</I>,<I>o1 y</I> <I>a2</I>, <I>o2 </I>se obtiene la suma <I>b1</I> y <I>b2</I>, respectivamente;  cuya diferencia permite seleccionar el m&#225;ximo a trav&#233;s del signo o MSB  (bit mas significativo) de la se&#241;al <I>c</I>, as&#237; se obtiene a la salida la se&#241;al  <I>a</I> del m&#225;ximo, de acuerdo a la programaci&#243;n del SCS.</FONT></P>     <P ALIGN="center"><a name="fig10"> <img border="0" src="/img/fbpe/rtfiuz/v31n3/art10fig10.gif" width="416" height="272"></a></P>     
<P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Finalmente, en la <a href="#Tabla_1">Tabla 1</a> se presenta el reporte de s&#237;ntesis del m&#243;dulo SCS, en la cual se puede notar el porcentaje de utilizaci&#243;n sobre el FPGA  Spartan 2E.</FONT></P> </MULTICOL>     <P ALIGN="CENTER"><b><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <a name="Tabla_1">Tabla 1</a></FONT></b></P>     <P ALIGN="CENTER"><b><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Reporte de S&#237;ntesis de los m&#243;dulos dise&#241;ados&nbsp;</FONT></b></P>     <div align="center"> <TABLE id="table1" cellspacing="1" width="580" border="1"> <TR> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Utilizaci&#243;n&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Numero de Slices (2352)&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> LUTs (4704)&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     ]]></body>
<body><![CDATA[<P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> IOBs (142)&nbsp; </FONT></P> </TD> </TR> <TR> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="LEFT"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Hamming Encoder&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;&nbsp;2&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;&nbsp;3&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;11&nbsp; </FONT></P> </TD> </TR> <TR> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="LEFT"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> TPC Encoder&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;40&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;72&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;57&nbsp; </FONT></P> </TD> </TR> <TR> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="LEFT"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Hamming Decoder&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     ]]></body>
<body><![CDATA[<P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;&nbsp;4&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;&nbsp;7&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;14&nbsp; </FONT></P> </TD> </TR> <TR> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="LEFT"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> SCS&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;10&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;19&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> &nbsp;20&nbsp; </FONT></P> </TD> </TR> <TR> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="LEFT"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Matriz 4 Decoder&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 172&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     <P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 360&nbsp; </FONT></P> </TD> <TD WIDTH="150" VALIGN="TOP">     ]]></body>
<body><![CDATA[<P ALIGN="CENTER"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 432&nbsp; </FONT></P> </TD> </TR> </TABLE> </div> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Estos resultados se han presentado a trav&#233;s de las funciones especificas  que integran el comportamiento del TPC, el m&#243;dulo encargado de integrar  las funciones debe contar con una tabla de demodulaci&#243;n para el manejo  del decodificador SISO, el cual adaptar&#225; la se&#241;al de entrada y salida del  decodificador y de los m&#243;dulos SCS del dise&#241;o.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Conclusiones&nbsp;</B> </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Basado en el estudio de los TCP, se seleccionaron unos m&#243;dulos generales  de inter&#233;s para realizar su programaci&#243;n en VHDL, con el prop&#243;sito de proponerlos  como herramientas para pr&#243;ximos dise&#241;os m&#225;s complejos.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Interpretando los porcentajes de utilizaci&#243;n de los m&#243;dulos dise&#241;ados sobre  el dispositivo FPGA, caso particular del Spartan 2E (xc2s200e-6pq208),  obtenidos en el proceso de s&#237;ntesis de los componentes descritos, con la  herramienta de dise&#241;o ISE 9.2i, se puede establecer que los actuales dispositivos  FPGA cuentas con suficientes recursos como para implementar en ellos, los  algoritmos de decodificaci&#243;n SISO estudiados, con un alto grado de paralelismo,  programando sobre el dispositivo las LUTs (LookUp Tables) que describan  la relaci&#243;n del primer componente, la funci&#243;n gamma, y las operaciones  comunes en las siguientes etapas, a trav&#233;s de la reutilizaci&#243;n del componente  dise&#241;ado.&nbsp; </FONT></P> </MULTICOL> <MULTICOL GUTTER="39" COLS="2">     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Esta propuesta de dise&#241;o modular para las etapas de codificaci&#243;n y decodificaci&#243;n,  de acuerdo a las caracter&#237;sticas de modularidad del lenguaje descriptor  de hardware VHDL [14], permite reutilizar componentes dise&#241;ados en forma  paralela, siendo escalable el ancho de la palabra, de esta se logra el  tratamiento paralelo y se puede avanzar hacia la reducci&#243;n del n&#250;mero de  iteraciones, sin afectar la eficiencia del nuevo c&#243;digo.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> Naturalmente, la eficiencia de los dise&#241;os se obtuvo mediante la aplicaci&#243;n  de t&#233;cnicas de modelaci&#243;n del comportamiento, aplicando algunas transformaciones  a los algoritmos originalmente planteados [11-12], con el prop&#243;sito de  optimizar el consumo de recursos del FPGA. De esta manera se ofrece una  herramienta basada en la descripci&#243;n de los componentes, dejando la libertad  de sustituir los codificacidores internos, por m&#243;dulos paralelos Reed Solomon  [15], o arreglos Hamming de longitud ajustable.&nbsp; </FONT></P>     <P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> <B>Referencias Bibliogr&#225;ficas</B></FONT></P>     <!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 1.&nbsp; Rev&#233;s X., Gelonch, A., Casadeval, L F., Entorno de Desarrollo Software  Radio, XVII Simposium Nacional de la Uni&#243;n Cient&#237;fica Internacional de  Radio, 2002. En l&#237;nea:  <a href="http://w3.iec.csic.es/ursi/articulos_alcalahenares_2002/sesiones/sesion7.pdf">http://w3.iec.csic.es/ursi/articulos_alcalahenares_2002/sesiones/sesion7.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359357&pid=S0254-0770200800030001000001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 2. IEEE 802.16 Compatible Turbo Product Code Encoder v1.0, 2002, en l&#237;nea:  <a href="http://www.xilinx.com/support/documentation/ip_documentation/tpc_encoder.pdf">http://www.xilinx.com/support/documentation/ip_documentation/tpc_encoder.pdf</a>&nbsp;</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359358&pid=S0254-0770200800030001000002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 3.&nbsp; Sandoval R., Cecilia, Fed&#243;n R., Antonio, Programaci&#243;n VHDL de algoritmos  de codificaci&#243;n para dispositivos de Hardware Reconfigurable, Revista Internacional  de M&#233;todos Num&#233;ricos para C&#225;lculo y Dise&#241;o en Ingenier&#237;a, Vol. 24 (1),  p&#225;g. 3-11. En l&#237;nea: http://  <a href="http://www.cimne.upc.es/rimni/papers.asp">www.cimne.upc.es/rimni/papers.asp</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359359&pid=S0254-0770200800030001000003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 4.&nbsp; Banister, Brian A., Using Turbo Product Codes in Client Station Uplink  for Reduced Power Consumption, s/f, disponible en:  <a href="http://www.aha.com/show_pub.php?id=158">http://www.aha.com/show_pub.php?id=158</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359360&pid=S0254-0770200800030001000004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 5.&nbsp; Ferrari M., Bellin S., Low Ber Turbo Codes for Satellite Communications,  s/f, disponible en: <a href="http://conferences.esa.int/01C14/papers/5.3.pdf">http://conferences.esa.int/01C14/papers/5.3.pdf</a>&nbsp;</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359361&pid=S0254-0770200800030001000005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 6.&nbsp; L. R. Bahl, J. Cocke, F. Jelinek and J. Raviv, Optimal Decoding of Linear  Codes for Minimizing Symbol Error Rate, s/f, en l&#237;nea:  <a href="http://www.tcs.tifr.res.in/~onkar/teaching/bcjr.pdf">http://www.tcs.tifr.res.in/~onkar/teaching/bcjr.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359362&pid=S0254-0770200800030001000006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 7.&nbsp; Jim&#233;nez P. Alberto, Cancelaci&#243;n de Interferencias Multiusuario en Sistemas  MC-CDMA, 2006, en l&#237;nea:  <a href="http://ajimenezp.googlepages.com/ic-mccdma.pdf">http://ajimenezp.googlepages.com/ic-mccdma.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359363&pid=S0254-0770200800030001000007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 8.&nbsp; Ch&#225;vez, R; Decodificador Turbo MAP de varias Iteraciones, 2006, en l&#237;nea:  <a href="http://redalyc.uaemex.mx/redalyc/pdf/852/85202008.pdf">http://redalyc.uaemex.mx/redalyc/pdf/852/85202008.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359364&pid=S0254-0770200800030001000008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 9.&nbsp; S&#225;nchez F., Matilde, Contribuci&#243;n al estudio de las prestaciones de esquemas  de codificaci&#243;n basados en Turbo C&#243;digos para Sistemas de Comunicaciones  m&#243;viles de Tercera Generaci&#243;n, Madrid, 2001, en l&#237;nea:  <a href="http://oa.upm.es/653/01/09200105.pdf">http://oa.upm.es/653/01/09200105.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359365&pid=S0254-0770200800030001000009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 10.&nbsp; Fonseca, A., Um Esquema de Equaliza&#231;&#227;o Turbo Aplicando Decodica&#231;&#227;o Turbo  de C&#243;digos Produto de Paridade Simples Multidimensionais, INATEL, 2005,  em l&#237;nea:  <a href="http://cict.inatel.br/nova2/docentes/dayan/Publications/MScAndre.pdf">http://cict.inatel.br/nova2/docentes/dayan/Publications/MScAndre.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359366&pid=S0254-0770200800030001000010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 11.&nbsp; Casti&#241;eira M., J., Farrell Patrick G., &#147;Codificacion para el control de  errores&#148;, Primera Edici&#243;n, Editorial Wiley, England, 2006.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359367&pid=S0254-0770200800030001000011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 12.&nbsp; Abrantes, S., Do algoritmo BCJR &#224; descodifica&#231;&#227;o turbo, Portugal, 2004,  en l&#237;nea:  <a href="http://paginas.fe.up.pt/~sam/textos/De%20BCJR%20a%20turbo.pdf">http://paginas.fe.up.pt/%7Esam/textos/De%20BCJR%20a%20turbo.pdf</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359368&pid=S0254-0770200800030001000012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 13.&nbsp; Peebles, Peyton; Digital Communication Systems, Segunda Edici&#243;n, Editorial  Prentice Hall, New Jersey 1987.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359369&pid=S0254-0770200800030001000013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 14.&nbsp; IEEE Computer Society. &#147;IEEE Standard VHDL Language Reference Manual&#148;.  The Institute of Electrical and Electronics Engineers, Inc. Mayo 2002.</FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359370&pid=S0254-0770200800030001000014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><P ALIGN="justify"><FONT COLOR="#1f1a17" SIZE="2" FACE="Verdana"> 15.&nbsp; Sandoval Ruiz, Cecilia E.; Antonio Fed&#243;n. 2007. &#147;Codificador y decodificador  digital Reed-Solomon programados para hardware reconfigurable&#148;. Ingenier&#237;a  y Universidad, vol. 11, num. 1, pp.17-31. Disponible en:  <a href="http://redalyc.uaemex.mx/redalyc/src/inicio/ArtPdfRed.jsp?iCve=47711102">http://redalyc.uaemex.mx/redalyc/src/inicio/ArtPdfRed.jsp?iCve=47711102</a></FONT>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=2359371&pid=S0254-0770200800030001000015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --> ]]></body>
<back>
<ref-list>
<ref id="B1">
<label>1</label><nlm-citation citation-type="confpro">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Revés]]></surname>
<given-names><![CDATA[X]]></given-names>
</name>
<name>
<surname><![CDATA[Gelonch]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Casadeval]]></surname>
<given-names><![CDATA[L F]]></given-names>
</name>
</person-group>
<source><![CDATA[Entorno de Desarrollo Software Radio]]></source>
<year></year>
<conf-name><![CDATA[XVII Simposium Nacional de la Unión Científica Internacional de Radio]]></conf-name>
<conf-date>2002</conf-date>
<conf-loc> </conf-loc>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="">
<source><![CDATA[IEEE 802.16 Compatible Turbo Product Code Encoder v1.0, 2002]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sandoval R]]></surname>
<given-names><![CDATA[Cecilia]]></given-names>
</name>
<name>
<surname><![CDATA[Fedón R.]]></surname>
<given-names><![CDATA[Antonio]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Programación VHDL de algoritmos de codificación para dispositivos de Hardware Reconfigurable]]></article-title>
<source><![CDATA[Revista Internacional de Métodos Numéricos para Cálculo y Diseño en Ingeniería]]></source>
<year></year>
<volume>24</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>3-11</page-range></nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Banister]]></surname>
<given-names><![CDATA[Brian A]]></given-names>
</name>
</person-group>
<source><![CDATA[Using Turbo Product Codes in Client Station Uplink for Reduced Power Consumption, s/f]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ferrari]]></surname>
<given-names><![CDATA[M]]></given-names>
</name>
<name>
<surname><![CDATA[Bellin]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Low Ber Turbo Codes for Satellite Communications, s/f]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Bahl]]></surname>
<given-names><![CDATA[L. R]]></given-names>
</name>
<name>
<surname><![CDATA[Cocke]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Jelinek]]></surname>
<given-names><![CDATA[F]]></given-names>
</name>
<name>
<surname><![CDATA[Raviv]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
</person-group>
<source><![CDATA[Optimal Decoding of Linear Codes for Minimizing Symbol Error Rate, s/f,]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Jiménez P]]></surname>
<given-names><![CDATA[Alberto]]></given-names>
</name>
</person-group>
<source><![CDATA[Cancelación de Interferencias Multiusuario en Sistemas MC-CDMA]]></source>
<year>2006</year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chávez]]></surname>
<given-names><![CDATA[R]]></given-names>
</name>
</person-group>
<source><![CDATA[Decodificador Turbo MAP de varias Iteraciones]]></source>
<year>2006</year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sánchez F]]></surname>
<given-names><![CDATA[Matilde]]></given-names>
</name>
</person-group>
<source><![CDATA[Contribución al estudio de las prestaciones de esquemas de codificación basados en Turbo Códigos para Sistemas de Comunicaciones móviles de Tercera Generación]]></source>
<year>2001</year>
<publisher-loc><![CDATA[Madrid ]]></publisher-loc>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Fonseca]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
</person-group>
<source><![CDATA[Um Esquema de Equalização Turbo Aplicando Decodicação Turbo de Códigos Produto de Paridade Simples Multidimensionais]]></source>
<year>2005</year>
<publisher-name><![CDATA[INATEL]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Castiñeira M]]></surname>
<given-names><![CDATA[J]]></given-names>
</name>
<name>
<surname><![CDATA[Farrell Patrick]]></surname>
<given-names><![CDATA[G]]></given-names>
</name>
</person-group>
<source><![CDATA[Codificacion para el control de errores]]></source>
<year>2006</year>
<edition>Primera</edition>
<publisher-loc><![CDATA[England ]]></publisher-loc>
<publisher-name><![CDATA[Editorial Wiley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Abrantes]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
</person-group>
<source><![CDATA[Do algoritmo BCJR à descodificação turbo, Portugal, 2004]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Peebles]]></surname>
<given-names><![CDATA[Peyton]]></given-names>
</name>
</person-group>
<source><![CDATA[Digital Communication Systems]]></source>
<year>1987</year>
<edition>Segunda</edition>
<publisher-loc><![CDATA[New Jersey ]]></publisher-loc>
<publisher-name><![CDATA[Editorial Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="book">
<collab>IEEE Computer Society</collab>
<source><![CDATA[IEEE Standard VHDL Language Reference Manual]]></source>
<year>2002</year>
<publisher-name><![CDATA[The Institute of Electrical and Electronics Engineers, Inc]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Sandoval Ruiz]]></surname>
<given-names><![CDATA[Cecilia E]]></given-names>
</name>
<name>
<surname><![CDATA[Fedón]]></surname>
<given-names><![CDATA[Antonio]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Codificador y decodificador digital Reed-Solomon programados para hardware reconfigurable]]></article-title>
<source><![CDATA[Ingeniería y Universidad]]></source>
<year>2007</year>
<volume>11</volume>
<numero>1</numero>
<issue>1</issue>
<page-range>17-31</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
