<?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>1316-4821</journal-id>
<journal-title><![CDATA[Universidad, Ciencia y Tecnología]]></journal-title>
<abbrev-journal-title><![CDATA[uct]]></abbrev-journal-title>
<issn>1316-4821</issn>
<publisher>
<publisher-name><![CDATA[AutanaBooks S.A.S. Revista de la Universidad Experimental Politécnica Antonio José de Sucre, Vice Rectorado Puerto Ordaz, Venezuela, gestionada en Ecuador por AutanaBooks]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1316-48212010000400006</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Diseño y simulación de una red neuronal en VHDL y su aplicación en filtrado de un electrocardiograma]]></article-title>
<article-title xml:lang="en"><![CDATA[Design and simulation of a neural network using the VHDL language and its aplication in the filtering of electrocardiogram signal]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Aguirre]]></surname>
<given-names><![CDATA[Miguel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Franco]]></surname>
<given-names><![CDATA[Zulay]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Pateti]]></surname>
<given-names><![CDATA[Antonio]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Ferrominera Orinoco Superintendencia de Mantenimiento Eléctrico e Instrumentación ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<aff id="A02">
<institution><![CDATA[,Universidad Nacional Experimental Politécnica Antonio José de Sucre Departamento de Ingeniería Electrónica Centro de Diseño Microelectrónico]]></institution>
<addr-line><![CDATA[Puerto Ordaz ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>12</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>12</month>
<year>2010</year>
</pub-date>
<volume>14</volume>
<numero>57</numero>
<fpage>261</fpage>
<lpage>268</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_arttext&amp;pid=S1316-48212010000400006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_abstract&amp;pid=S1316-48212010000400006&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://ve.scielo.org/scielo.php?script=sci_pdf&amp;pid=S1316-48212010000400006&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[En este artículo se presenta el diseño y simulación en VHDL de una red neuronal de tipo Backpropagation utilizada para la cancelación de interferencias de 60 Hz en la señal electrocardiográfica. (ECG). Se presenta en primer lugar el algoritmo de simulación de la Red Neuronal diseñada mediante MATLAB, como base para el desarrollo de la arquitectura en VHDL. El proceso de simulación funcional del código VHDL sintetizable se llevó a cabo sobre el entorno de Modelsim. El muestreo de la señal se realizó a 250 Hz usando 8 bits de resolución para las muestras. La discretización de los pesos de la red neuronal y los cálculos se realizaron en punto decimal fijo. En la simulación del modelo en MATLAB se obtuvo un error cuadrático medio de 6,8E-5 para una señal de electrocardiograma de amplitud de 1 voltio. En la modelación y simulación en VHDL se obtuvieron resultados similares.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[In this article is presented the design and simulation of a VHDL model of a Backpropagation neural network for the cancellation of interferences of 60 Hz in the electrocardiogram signal (ECG). This is presented in first place with a simulation algorithm of the Neural Network using Matlab, as the base for the development of a VHDL architecture. The process of functional simulation of the VHDL codification was realized in Modelsim. The sampling of the signal was carried out to 250 Hz. using 8 resolution bits for the samples. The discretization of the weights of the neural network and the calculations were carried out in fixed point. In the simulation of the MATLAB model, an error quadratic means of 6,8E-5 was obtained for a signal of electrocardiogram with 1 volt of amplitude. In VHDL modeling and simulation similar results were obtained.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[Red Neuronal]]></kwd>
<kwd lng="es"><![CDATA[VHDL]]></kwd>
<kwd lng="es"><![CDATA[Simulación]]></kwd>
<kwd lng="es"><![CDATA[Interferencia]]></kwd>
<kwd lng="es"><![CDATA[Filtro]]></kwd>
<kwd lng="en"><![CDATA[Neural Network]]></kwd>
<kwd lng="en"><![CDATA[VHDL]]></kwd>
<kwd lng="en"><![CDATA[Simulation]]></kwd>
<kwd lng="en"><![CDATA[Interference]]></kwd>
<kwd lng="en"><![CDATA[Filter]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><b><span style="font-family: Verdana">Diseño y simulación de  una red neuronal en VHDL y su aplicación en filtrado de un electrocardiograma</span></b></p>     <p align="center"><font face="Verdana"><font size="2">Aguirre Miguel<sup>(1)</sup>,  Franco Zulay<sup>(2)</sup> y Pateti Antonio</font><sup><font size="2">(2)</font></sup></font></p>     <p align="justify"><font face="Verdana"><sup><font size="2">(1)</font></sup><font size="2">Superintendencia  de Mantenimiento Eléctrico e Instrumentación Ferrominera Orinoco</font></font></p>     <p align="justify"><font face="Verdana"><sup><font size="2">(2)</font></sup><font size="2">Universidad  Nacional Experimental Politécnica “Antonio José de Sucre” Vice-Rectorado Puerto  Ordaz. Departamento de Ingeniería Electrónica, Centro de Diseño Microelectrónico</font></font></p>     <p align="justify"><font face="Verdana"><font size="2">E-mail: </font> <a href="mailto:miguelaguirreleon@gmail.com"><font size="2"> miguelaguirreleon@gmail.com</font></a></font></p>     <p align="justify"><font face="Verdana"><b><font size="2">Resumen</font></b><font size="2">:  En este artículo se presenta el diseño y simulación en VHDL de una red neuronal  de tipo <i>Backpropagation</i> utilizada para la cancelación de interferencias  de 60 Hz en la señal electrocardiográfica. (ECG). Se presenta en primer lugar el  algoritmo de simulación de la Red Neuronal diseñada mediante MATLAB, como base  para el desarrollo de la arquitectura en VHDL. El proceso de simulación  funcional del código VHDL sintetizable se llevó a cabo sobre el entorno de <i> Modelsim</i>. El muestreo de la señal se realizó a 250 Hz usando 8 bits de  resolución para las muestras. La discretización de los pesos de la red neuronal  y los cálculos se realizaron en punto decimal fijo. En la simulación del modelo  en MATLAB se obtuvo un error cuadrático medio de 6,8E-5 para una señal de  electrocardiograma de amplitud de 1 voltio. En la modelación y simulación en  VHDL se obtuvieron resultados similares.</font></font></p>     <p align="justify"><font face="Verdana"><b><font size="2">Palabras clave:</font></b><font size="2">  Red Neuronal/ VHDL/ Simulación/ Interferencia/ Filtro.</font></font></p>     <p align="center"><b><span lang="EN-US" style="font-family: Verdana"> <font size="2">Design and simulation of a neural network using the VHDL language  and its aplication in the filtering of electrocardiogram signal</font></span></b></p>     <p align="justify"><font face="Verdana"><b><font size="2">Abstract</font></b><font size="2">:  In this article is presented the design and simulation of a VHDL model of a  Backpropagation neural network for the cancellation of interferences of 60 Hz in  the electrocardiogram signal (ECG). This is presented in first place with a  simulation algorithm of the Neural Network using <i>Matlab</i>, as the base for  the development of a VHDL architecture. The process of functional simulation of  the VHDL codification was realized in <i>Modelsim</i>. The sampling of the  signal was carried out to 250 Hz. using 8 resolution bits for the samples. The  discretization of the weights of the neural network and the calculations were  carried out in fixed point. In the simulation of the MATLAB model, an error  quadratic means of 6,8E-5 was obtained for a signal of electrocardiogram with 1  volt of amplitude. In VHDL modeling and simulation similar results were obtained.</font></font></p>     <p align="justify"><font face="Verdana"><b><font size="2">Key words:</font></b><font size="2">  Neural Network/ VHDL/ Simulation/ Interference/ Filter.</font></font></p>     ]]></body>
<body><![CDATA[<p align="justify"><b><font size="2" face="Verdana">I . INTRODUCCIÓN</font></b></p>     <p align="justify"><font size="2" face="Verdana">Con el desarrollo de los  dispositivos lógicos programables y las metodologías de diseño asociadas como es  el caso de los lenguajes de descripción de hardware, es posible construir  sistemas computacionales complejos integrados en un solo chip semiconductor,  siendo de naturaleza reconfigurable, y presentando un alto grado de  flexibilidad.</font></p>     <p align="justify"><font size="2" face="Verdana">Para presentar las ventajas que  tienen estas nuevas tecnologías, como son los lenguajes de descripción de  hardware y el uso de dispositivos lógicos programables, en el diseño de sistema  digitales que requieren un alto grado de cómputo, en este artículo se presenta  el diseño y simulación en VHDL (Very High Speed Integrated Circuits Hardware  Description Language) de un filtro, basado en una red neuronal de tipo <i> Backpropagation</i>, modelado para la cancelación de interferencias de 60Hz en  la señal de electrocardiograma.</font></p>     <p align="justify"><font size="2" face="Verdana">La señal de electrocardiograma  demanda elevadas tasas de cómputo para atenuar las perturbaciones provocadas por  movimientos del paciente, alteraciones de índole emocional, interferencias de la  red eléctrica, etc. Para hacer el tratamiento efectivo de la señal, en este  trabajo se hace uso de redes neuronales por ser una herramienta computacional de  tipo distribuida con capacidad de aprendizaje.</font></p>     <p align="justify"><font size="2" face="Verdana">La metodología a seguir para el  diseño fue concebir primero la arquitectura del filtro utilizando MATLAB, para  posteriormente poder describir su comportamiento en VHDL. El alcance de este  trabajo abarca hasta la generación del código VHDL sintetizable para su  posterior prueba en un dispositivo lógico programable como la FPGA (Field  Programmable Gate Array).</font></p>     <p align="justify"><b><font size="2" face="Verdana">II. DESARROLLO</font></b></p>     <p align="justify"><b><font size="2" face="Verdana">1. Marco Conceptual</font></b></p>     <p align="justify"><b><font size="2" face="Verdana">1.1 Red BackPropagation</font></b></p>     <p align="justify"><font size="2" face="Verdana">La red de propagación hacia  atrás o Backpropagation fue creada por una generalización de la regla Widrow-  Hofflearning [8] para redes multi-capa y a funciones de transferencia  diferenciables y no lineales. Este tipo de redes se clasifica dentro de las  feedfoward o red de alimentación hacia delante por la manera como fluye la  información. Esta información va desde la entrada a la salida acíclicamente.  Este tipo de red tiene una capa de entrada, una capa de salida y un número de  capas escondidas entre capas ocultas. Este tipo de redes permite simular  sistemas de orden cero porque no existe acumulación en el tiempo de los valores  de salida (Ver <a href="#fig1">Figura 1</a>).</font></p>     <p align="center"><a name="fig1"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig1.gif" width="292" height="307"></a></p>     
]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">La capa de entrada no realiza  ningún cálculo, solo distribuye las entradas X<sub>k</sub> a los Pesos W<sub>jk</sub>  de la capa ocu1ta. En las neuronas de la capa oculta, primero las entradas  ponderados se suman, (ver <a href="#ec1">ecuación 1</a>)</font></p>     <p align="center"><a name="ec1"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec1.gif" width="222" height="39"></a></p>     
<p align="justify"><font size="2" face="Verdana">Una función de transferencia no  linear (conocida como la función de activación) es aplicada al resultado de  cálculo de cada salida del elemento de procesamiento. Las funciones de  activación se muestran en la <a href="#tab1">Tabla I</a>.</font></p>     <p align="center"><a name="tab1"> <img border="0" src="/img/fbpe/uct/v14n57/art06tab1.gif" width="305" height="330"></a></p>     
<p align="justify"><font size="2" face="Verdana">La salida de la red neuronal  será el valor obtenido multiplicado por los pesos como se indica en la  <a href="#ec2">ecuación  2</a>.</font></p>     <p align="center"><a name="ec2"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec2.gif" width="420" height="52"></a></p>     
<p align="justify"><font size="2" face="Verdana">1.2 Entrenamiento de Redes  Neuronales Feedfoward El entrenamiento consiste en el ajuste de los pesos (W<sub>ij</sub>)  los cuales hacen que el error entre la salida deseada y la salida de la red sea  el mínimo. Dos pasos son distinguidos en este procedimiento de entrenamiento: a)  Computación Feedfoward [11]. Desde las entradas se calcula cada valor en todas  las neuronas y finalmente la salida de la red neuronal Y<sub>i</sub>(X<sub>n</sub>)  utilizando la ecuación anterior. b) Adaptación de Pesos. La salida de la Red es  comparada con la salida deseada Y<sub>i</sub>(X<sub>n</sub>). La diferencia  entre esos dos valores es el error el cual va a ser utilizado en el ajuste de  los pesos, primero en la capa de salida, después en la capa oculta anterior a la  salida, etc. La función de costos es ilustrada en las <a href="#ec3">ecuaciones 3 y 4</a>.</font></p>     <p align="center"><a name="ec3"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec3.gif" width="451" height="140"></a></p>     
<p align="justify"><font size="2" face="Verdana">De la optimización del descenso  del gradiente, los pasos de cambios en los pesos de salida pueden ser  encontrados diferenciando la función de costo dado en la <a href="#ec3">ecuación 3</a>. Esto se  muestra en la <a href="#ec5">ecuación 5</a>.</font></p>     <p align="center"><a name="ec5"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec5.gif" width="443" height="146"></a></p>     
]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">La <a href="#ec6">ecuación (6)</a> ilustra la  simplificación del Delta-i de la <a href="#ec5">ecuación (5)</a>.</font></p>     <p align="center"><a name="ec6"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec6.gif" width="308" height="30"></a></p>     
<p align="justify"><font size="2" face="Verdana">El cambio de los pesos de  entrada puede ser encontrado con la regla ilustrada en la <a href="#ec7">ecuación (7)</a>.</font></p>     <p align="center"><a name="ec7"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec7.gif" width="392" height="223"></a></p>     
<p align="justify"><font size="2" face="Verdana">En donde la simplificación está  dada por la <a href="#ec8">ecuación (8)</a>.</font></p>     <p align="center"><a name="ec8"> <img border="0" src="/img/fbpe/uct/v14n57/art06ec8.gif" width="236" height="45"></a></p>     
<p align="justify"><font size="2" face="Verdana">Los deltas de la capa de  entrada son encontrados en términos de los deltas de la capa de salida,  propagándose hacia atrás, a través de lo W<sub>ij</sub> de la red. Entrenar la  red utilizando gradiente descendiente, alimentando el error hacia atrás, es  llamado backpropagation o propagación del error hacia atrás.</font></p>     <p align="justify"><font size="2" face="Verdana">Este trabajo se distribuyo en  los siguientes pasos:</font></p>     <p align="justify"><font size="2" face="Verdana">• Elegir una Red Neuronal para  el procesamiento de señales ECG.</font></p>     <p align="justify"><font size="2" face="Verdana">• Diseñar una red neuronal para  el filtrado de una señal ECG mediante la herramienta de MATLAB de Redes  Neuronales.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">• Simular la red neuronal  mediante la herramienta de <i>MATLAB</i> de Redes Neuronales mediante las  señales de prueba ECG obtenidas de la base de dato del MIT [1].</font></p>     <p align="justify"><font size="2" face="Verdana">• Describir la Red Neuronal  mediante el lenguaje de descripción de Hardware VHDL.</font></p>     <p align="justify"><font size="2" face="Verdana">• Simular la Red Neuronal  mediante el simulador <i>MODELSIM</i>.</font></p>     <p align="justify"><font size="2" face="Verdana">1.3.- Diseño en MATLAB de la  Red Neuronal</font></p>     <p align="justify"><font size="2" face="Verdana">El diseño de la red neuronal  utilizada es de tipo <i>Backpropagation</i> como la indicada en la  <a href="#fig2">Figura 2</a>, la  red elegida para el filtrado de la señal electrocardiográfica consta de una capa  de entrada constituida por 31 neuronas, una segunda capa formada por 10  neuronas, una tercera capa formada por 2 neuronas y la capa de salida  constituida por una sola neurona.</font></p>     <p align="center"><a name="fig2"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig2.gif" width="578" height="285"></a></p>     
<p align="justify"><font size="2" face="Verdana">La señal de entrada es la señal  que se desea filtrar, que en este caso corresponde a la señal de un  electrocardiograma. Los vectores de entrada y salida vienen dados según la  <a href="#ec9">ecuación (9) y (10)</a>. Estos representan los datos de entrenamiento de la red  neuronal.</font></p>     <p align="center"><font size="2" face="Verdana">Ve = [S(z) S(z-1) S(z-2) ...  S(z-30)]T&nbsp;&nbsp;&nbsp; <a name="ec9"></a>(9)</font></p>     <p align="center"><font size="2" face="Verdana">V</font><font face="Verdana" size="1">S</font><font size="2" face="Verdana">  = S*(z)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (10)</font></p>     <p align="justify"><font size="2" face="Verdana">Donde S(z) es la señal con la  interferencia y S*(z) es la señal sin interferencia</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">El valor de las constantes que  representan los pesos se ajustan mediante un proceso de entrenamiento o  aprendizaje, en el cual la salida deseada (la señal sin ruido) y la entrada (la  señal con ruido), son presentadas a la red y mediante un algoritmo de ajuste,  los pesos se calculan para que la correspondencia entre salida y entrada  contenga el mínimo error. Estas constantes se ajustan mediante MATLAB y  verificando la relación entre la señal de entrada y de salida se verifica la  fiabilidad del diseño.</font></p>     <p align="justify"><font size="2" face="Verdana">La señal de prueba fue la <i> sel100</i> del Banco de datos del Massachussets Institute of Technology / Beth  Israel Hospital (MIT/BIH) correspondiente a un minuto de grabación de una señal  de ECG muestreada a una frecuencia de 250 Hz.</font></p>     <p align="justify"><font size="2" face="Verdana">El comando newff de MATLAB  sirve para la creación de una red neuronal, los parámetros necesarios a incluir  son:</font></p>     <p align="justify"><font size="2" face="Verdana">• La cantidad de neuronas de  entrada y el rango de cada una (-1,1),</font></p>     <p align="justify"><font size="2" face="Verdana">• La cantidad de neuronas en  las capas subsiguientes:</font></p>     <p align="justify"><font size="2" face="Verdana">[10 2 1] 10 en la segunda capa  2 en la tercera capa 1 en la capa de salida</font></p>     <p align="justify"><font size="2" face="Verdana">• La función de transferencia  de cada capa, la cual se puede elegir entre: purelin (linear), logsig (sigmoidal),  tansig (tangencial). En este caso todas las capas tienen función de  transferencia lineal.</font></p>     <p align="justify"><font size="2" face="Verdana">• El método de entrenamiento:  trainbfg. Esta basado en el método de quasi-Newton el cual ha sido exitosamente  publicado en estudios de Broyden, Fletcher, Goldfarb, and Shanno (BFGS) [9].</font></p>     <p align="justify"><font size="2" face="Verdana">La estructura y parámetros de  entrenamiento para la red neuronal son almacenados en la variable ‘net’.</font></p>     <p align="justify"><font size="2" face="Verdana">El comando utilizado para la  creación de la red neuronal diseñada en este trabajo es:</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font face="Verdana"><i><font size="2">net=newff([-1 1;-1  1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1  1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1;-1 1],[10 2 1],{ 'purelin'  'purelin' 'purelin'},'trainbfg')</font></i><font size="2">;</font></font></p>     <p align="justify"><font size="2" face="Verdana">El comando para iniciar el  entrenamiento es:</font></p>     <p align="justify"><font face="Verdana"><i><font size="2">net=train(net,(num2cell(ecgr',1)),(num2cell(ecg',1)))</font></i><font size="2">;</font></font></p>     <p align="justify"><font size="2" face="Verdana">La respuesta de la red neural  con la señal de prueba incluyéndole un ruido de 60Hz se verifica con MATLAB  mediante el comando ‘<i>sim</i>’, la señal de salida se almacena en la variable  ‘a’ .</font></p>     <p align="justify"><i><font size="2" face="Verdana">a=sim(net,(num2cell((ecgr)',1)))';</font></i></p>     <p align="justify"><b><font size="2" face="Verdana">1.4. Desarrollo en VHDL.</font></b></p>     <p align="justify"><font size="2" face="Verdana">Después de tener la  confiabilidad deseada del filtro desarrollado en MATLAB se realiza su  descripción utilizando el lenguaje VHDL (Very High Speed Integrated Circuit  Hardware Description Language).</font></p>     <p align="justify"><font size="2" face="Verdana">En la <a href="#fig3">Figura 3</a> se presenta el  diagrama en bloque de la arquitectura desarrollada en VHDL,</font></p>     <p align="center"><a name="fig3"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig3.gif" width="446" height="364"></a></p>     
<p align="justify"><font size="2" face="Verdana">El sistema completo de la Red  Neuronal consta de los bloques de capas 1, 2 y 3, de una unidad aritmética (UA)  y del bloque de salida de la última neurona. Las neuronas en la capa 2, capa 3 y  la neurona de salida representan posiciones de memoria cuyos valores se van a ir  calculando secuencialmente. Las neuronas de la capa 1 son retardos de la señal  muestreada de 8 bits.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">La secuencia utilizada implica  que, para calcular el valor a almacenar en una neurona de cualquier capa se debe  multiplicar cada valor acumulado en las neuronas de la capa anterior por su  respectivo peso. El resultado de la UA se almacena en la neurona respectiva.</font></p>     <p align="justify"><font size="2" face="Verdana">Para implementar la  arquitectura de la unidad aritmética mostrada en la <a href="#fig2">figura 2</a>, se utilizó  multiplexores que sincronizadas por contadores y señales de control permite  realizar las operaciones aritméticas de la capa 1, capa 2 ó capa 3. Las  operaciones aritméticas que se realizan en cada capa se encargan de tomar los  valores de entrada y multiplicarlos por sus respectivos pesos más el umbral  respectivo para acumularse en una neurona perteneciente a la siguiente capa. El  tipo de multiplicación que se implementó consiste en utilizar multiplicadores combinacionales. Para realizar las operaciones aritméticas se utilizó el sistema  de numeración en coma fija (punto decimal fijo).</font></p>     <p align="justify"><font size="2" face="Verdana">En la <a href="#fig4">Figura 4</a> se muestra el  símbolo esquemático utilizado en VHDL para describir la red neuronal.</font></p>     <p align="center"><a name="fig4"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig4.gif" width="537" height="247"></a></p>     
<p align="justify"><b><font size="2" face="Verdana">2. Detalle de la  Codificación en VHDL</font></b></p>     <p align="justify"><font face="Verdana"><font size="2">Para el diseño de la Red  Neuronal en VHDL se parte de los esquemáticos creados en el entorno del software  de XILINX WEBPACK en los que cada bloque se le especifica su función mediante  líneas de código. En la <a target="_blank" href="../img/fbpe/uct/v14n57/art06fig5.htm">Figura 5</a> se muestran los bloques que forman la  descripción del </font><i><font size="2">Filtro_red_neuronal .vhd</font></i></font></p>     <p align="justify"><b><font size="2" face="Verdana">2.1. Codificación de las  constantes en punto decimal fijo.</font></b></p>     <p align="justify"><font size="2" face="Verdana">Cada peso de la red neuronal  está dado por una constante codificada en punto decimal fijo. Estas constantes  se obtuvieron en el entrenamiento de Matlab y están contenidas en la variable  ‘net’.</font></p>     <p align="justify"><font size="2" face="Verdana">Haciendo un estudio de las  variables involucradas, puede determinarse cual es el número máximo requerido en  bits y cuál es el escalamiento mínimo para obtener un resultado fiable.</font></p>     <p align="justify"><font size="2" face="Verdana">Para los pesos, el escalamiento  fue elegido basado en la constante más pequeña de la red, (de tal manera, que no  se hiciera cero) resultando el escalamiento de 15. Se añaden dos bits para la  magnitud basándose en el máximo valor, más el bit de signo. Los pesos se  representan con 18 bits con escalamiento 15.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">La entrada del sistema es  mediante un ADC de 8 bits. Como la señal pudiera ser negativa o positiva, se  utilizan 7 bits de datos y uno de signo. El rango es considerado entre –1V y 1V,  entonces el escalamiento de entrada es de 7; se invierte el último bit para  representar el signo y obtener de una vez el complemento a dos del número.</font></p>     <p align="justify"><font size="2" face="Verdana">La longitud máxima de los datos  de las neuronas, utilizando un escalamiento de 7, se pudo determinar haciendo  una simulación con números reales del diseño y realizando un estudio de la  salida de la unidad aritmética. El número máximo obtenido en ese estudio se  duplicó para tener una confiabilidad que no fuera a excederse en la suma, y se  le añadió un bit de signo para considerar los números tanto positivos como  negativos, resultando entonces la longitud de 13 bits. El escalamiento  considerado en el estudio es de 7, debido a que esa es la resolución del ADC a  utilizar.</font></p>     <p align="justify"><font size="2" face="Verdana">Al entrar un dato del ADC se  completa de 7 a 13 bits con ceros si el número es positivo o con unos si el dato  es negativo.</font></p>     <p align="justify"><font size="2" face="Verdana">La salida del multiplicador es  de 33 bits con escalamiento 22 que se lleva al sumador para así poder acumular  los resultados. Cuando el resultado se va a almacenar en la neurona de destino  de una capa superior, los 33 bits son truncados a 13 bits, quitando 15 bits por  la derecha para que queden 7 bits para el escalamiento y quitando 5 bits por la  izquierda, porque el número máximo obtenido en la simulación indica que estos  bits son cero por lo tanto se descartan.</font></p>     <p align="justify"><font size="2" face="Verdana">La salida_N de 13 bits  resultante será almacenada en el registro entrada_N de la unidad aritmética en  el paso siguiente (Ver <a href="#fig6">Figura 6</a>), por lo tanto debe tener las mismas  características en cantidad de bits y escalamiento.</font></p>     <p align="center"><a name="fig6"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig6.gif" width="474" height="228"></a></p>     
<p align="justify"><font size="2" face="Verdana">2.2.- Resultados y discusión de  resultados. El diseño de la arquitectura en MATLAB fue simulado variando la  función de transferencia. Los mejores resultados se obtuvieron utilizando la  función de transferencia sigmoidal en las capas 2 y 3, sin embargo, esto  incrementaba significativamente el uso de recursos en la implementación en  hardware. Se utilizó entonces la función de transferencia lineal (purelin) cuya  respuesta es bastante aceptable y cuya implementación no consumía tantos  recursos.</font></p>     <p align="justify"><font size="2" face="Verdana">En la <a href="#tab2">Tabla II</a>, se muestra un  cuadro comparativo del método de entrenamiento elegido (Trainbfg) con respecto a  otros métodos de entrenamiento.</font></p>     <p align="center"><a name="tab2"> <img border="0" src="/img/fbpe/uct/v14n57/art06tab2.gif" width="441" height="480"></a></p>     
<p align="justify"><font size="2" face="Verdana">La curva de entrenamiento con  el algoritmo de entrenamiento ‘trainbfg’ de la red Neuronal con la señal de  prueba es ilustrada en la <a href="#fig7">Figura 7</a>, donde el error cuadrático medio obtenido es  de 6,79352E-5 si se quisiera un error mucho menor debería agregarse más retardos  a la señal sin embargo, esto hace que el diseño se haga más grande, consumiendo  muchos recursos en la implementación.</font></p>     ]]></body>
<body><![CDATA[<p align="center"><a name="fig7"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig7.gif" width="468" height="403"></a></p>     
<p align="justify"><font size="2" face="Verdana">La gráfica de la  <a href="#fig8">Figura 8</a>  ilustra la respuesta del filtro diseñado en MATLAB:</font></p>     <p align="center"><a name="fig8"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig8.gif" width="447" height="354"></a></p>     
<p align="justify"><font size="2" face="Verdana">La señal superior se  corresponde con la señal de prueba y la señal inferior, con la respuesta de la  red neuronal.</font></p>     <p align="justify"><font size="2" face="Verdana">La simulación de la  arquitectura descrita en VHDL se pudo obtener mediante el software ModelSim  SE-EE 5.4e.</font></p>     <p align="justify"><font size="2" face="Verdana">En la <a href="#fig9">Figura 9</a>, se presenta la  gráfica, en la que se puede apreciar la respuesta del filtro, cuya señal  superior es la entrada del sistema y la señal inferior es la señal de salida.</font></p>     <p align="center"><a name="fig9"> <img border="0" src="/img/fbpe/uct/v14n57/art06fig9.gif" width="469" height="340"></a></p>     
<p align="justify"><font size="2" face="Verdana">Una vez que se verificó que el  diseño estaba funcionando correctamente, se procedió a generar el fichero .bit,  con ayuda del entorno “Xilinx Foundatión 3.1”, requerido para programar la FPGA.</font></p>     <p align="justify"><b><font size="2" face="Verdana">IV. CONCLUSIONES</font></b></p>     <p align="justify"><font size="2" face="Verdana">1) Es posible la codificación  en VHDL del algoritmo de filtrado de la interferencia de 60 Hz en la señal del  electrocardiograma, utilizando técnicas neuronales.</font></p>     ]]></body>
<body><![CDATA[<p align="justify"><font size="2" face="Verdana">2) El entorno ModelSim integra  todas las herramientas necesarias para llevar a cabo la simulación del filtro  codificado en VHDL.</font></p>     <p align="justify"><font size="2" face="Verdana">3) De los resultados obtenidos  se puede afirmar que el sistema se puede considerar óptimo para el filtrado de  la señal de ECG para una perturbación de 60Hz.</font></p>     <p align="justify"><font size="2" face="Verdana">4) El sistema se hace confiable  según las pruebas realizadas ya que garantiza la generalización de la respuesta,  es decir a medida que se le vayan presentando diversos patrones a la red esta  tendrá una respuesta predecible y con el mismo comportamiento que tuvo con el  patrón de entrenamiento.</font></p>     <p align="justify"><font size="2" face="Verdana">5) El filtro presenta un error  máximo de 67 microvoltios para una señal de +/-1 Voltio.</font></p>     <p align="justify"><font size="2" face="Verdana">6) El error obtenido con el  escalamiento en punto decimal fijo es mínimo. Esto hace que el sistema tenga la  suficiente precisión para realizar cálculos con mínimo error.</font></p>     <p align="justify"><font size="2" face="Verdana">7) Este trabajo tiene una  segunda etapa a desarrollar como es la implementación en la FPGA.</font></p>     <p align="justify"><b><font size="2" face="Verdana">V. REFERENCIAS</font></b></p>     <!-- ref --><p align="justify"><font size="2" face="Verdana">1. Teres, L.,Torroja, T., Olcoz,  S.,Villar, E.,: VHDL Lenguaje Estándar de diseño electrónico., Primera edición  en español. Madrid. McGraw Hill.1998, 498 pp.</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=2546626&pid=S1316-4821201000040000600001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">2. Hilera, J.R., Martínez, V.J.  :Redes Neuronales Artificiales. Wilmington Delaware, E.U.A. Addison-Wesley  iberoamericana. 1995. pag 385.</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=2546627&pid=S1316-4821201000040000600002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">3. Artigas L. A. Barragán, C.  Orrite, I. Urriza Electrónica Digital, Aplicaciones y Problemas con VHDL, J.I,,  Prentice Hall 2002. ISBN: 84-205-3222- 3. pp. 17-26.</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=2546628&pid=S1316-4821201000040000600003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">4. Reese B. Reese, VHDL  Synthesis Tutorial, Mississipi State University, <a href="http://www.erc.msstate.edu/~reese/vhdl_synthesis"> http://www.erc.msstate.edu/~reese/vhdl_synthesis</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=2546629&pid=S1316-4821201000040000600004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">5. Skahill 96 K. Skahill, VHDL  for Programmable Logic, Addison Wesley 1996.</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=2546630&pid=S1316-4821201000040000600005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">6. Página Web de NNCV Neural  Networks for Computer Vision</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=2546631&pid=S1316-4821201000040000600006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="Verdana"><font size="2">7. Director de  Investigación: Juan J.Villanueva, email: </font> <a href="mailto:villanueva@cvc.uab.es"><font size="2">villanueva@cvc.uab.es</font></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=2546632&pid=S1316-4821201000040000600007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">8. Miembros: Juan José  Villanueva, Xavi Varona, Albert Pujol.</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=2546633&pid=S1316-4821201000040000600008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="Verdana"><font size="2">9. </font> <a href="http://www.cvc.uab.es/castella/research/arees/llv/nncv/nncv.html"> <font size="2">www.cvc.uab.es/castella/research/arees/llv/nncv/nncv.html</font></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=2546634&pid=S1316-4821201000040000600009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">10. Página Web del Departamento  de Sistemas Electrónicos y de Control de la Universidad Politécnica de Madrid.  Introducción al Lenguaje VHDL.</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=2546635&pid=S1316-4821201000040000600010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="Verdana"><font size="2">11. </font> <a href="http://www.sec.upm.es/docencia/plan_92/sdii/descarga_SDII/Manuales/vhdl_1.pdf"> <font size="2"> www.sec.upm.es/docencia/plan_92/sdii/descarga_SDII/Manuales/vhdl_1.pdf</font></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=2546636&pid=S1316-4821201000040000600011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">12. Página Web : Basic Neural  Network Example</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=2546637&pid=S1316-4821201000040000600012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="Verdana"><font size="2">13. </font> <a href="http://www.ida.his.se/ida/kurser/ai_ann/kursmaterial/tutorial/node22.html"> <font size="2"> www.ida.his.se/ida/kurser/ai_ann/kursmaterial/tutorial/node22.html</font></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=2546638&pid=S1316-4821201000040000600013&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">14. Howard Oemuth, Mark Beale,  Martin Hagan [2005] Neural Network Toolbox User's GuideUser's Guide. COPYRIGHT  1992 - 2005 by The MathWorks, Inc.[Documento del TOOLBOOX para MATLAB de  MATHWORKS Version 4.0.6 (Release 14SP3)] [11/10/2008].</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=2546639&pid=S1316-4821201000040000600014&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">15. Página Web. Implementación  con FPGAs. Introducción a las FPGAs [PDF]</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=2546640&pid=S1316-4821201000040000600015&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="Verdana"><font size="2">16. </font> <a href="http://www.arco.inf-cr.uclm.es/docs/DSH/FPGAs.pdf"><font size="2"> www.arco.inf-cr.uclm.es/docs/DSH/FPGAs.pdf</font></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=2546641&pid=S1316-4821201000040000600016&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font size="2" face="Verdana">17. Juan Antonio Pérez Ortiz  [2002]. Modelos Predcitivos Basados en Redes Neuronales Recurrentes de tiempo  discreto. Universidad de Alicante. Departamento de lenguaje y sistemas  informáticos. [Documento en línea <a href="http://www.conicyt.cIl573Modelospredictivosbasadosenredesneuronalesrecurrentesdetiempodiscreto.pdf"> http://www.conicyt.cIl573Modelospredictivosbasadosenredes  neuronalesrecurrentesdetiempodiscreto.pdf</a>] [22/07/08].</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=2546642&pid=S1316-4821201000040000600017&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="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Teres]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Torroja]]></surname>
<given-names><![CDATA[T]]></given-names>
</name>
<name>
<surname><![CDATA[Olcoz]]></surname>
<given-names><![CDATA[S]]></given-names>
</name>
<name>
<surname><![CDATA[Villar]]></surname>
<given-names><![CDATA[E]]></given-names>
</name>
</person-group>
<source><![CDATA[VHDL Lenguaje Estándar de diseño electrónico]]></source>
<year>1998</year>
<edition>Primera</edition>
<page-range>498</page-range><publisher-loc><![CDATA[Madrid ]]></publisher-loc>
<publisher-name><![CDATA[McGraw Hill]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<label>2</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Hilera]]></surname>
<given-names><![CDATA[J.R]]></given-names>
</name>
<name>
<surname><![CDATA[Martínez]]></surname>
<given-names><![CDATA[V.J]]></given-names>
</name>
</person-group>
<source><![CDATA[Redes Neuronales Artificiales]]></source>
<year>1995</year>
<page-range>385</page-range><publisher-loc><![CDATA[Wilmington^eDelaware Delaware]]></publisher-loc>
<publisher-name><![CDATA[Addison-Wesley iberoamericana]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<label>3</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Artigas]]></surname>
<given-names><![CDATA[L]]></given-names>
</name>
<name>
<surname><![CDATA[Barragán]]></surname>
<given-names><![CDATA[A]]></given-names>
</name>
<name>
<surname><![CDATA[Orrite]]></surname>
<given-names><![CDATA[C]]></given-names>
</name>
<name>
<surname><![CDATA[Urriza]]></surname>
<given-names><![CDATA[I]]></given-names>
</name>
</person-group>
<source><![CDATA[Electrónica Digital, Aplicaciones y Problemas con VHDL]]></source>
<year>2002</year>
<page-range>17-26</page-range><publisher-name><![CDATA[Prentice Hall]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<label>4</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Reese]]></surname>
<given-names><![CDATA[B]]></given-names>
</name>
<name>
<surname><![CDATA[Reese]]></surname>
</name>
</person-group>
<source><![CDATA[VHDL Synthesis Tutorial]]></source>
<year></year>
<publisher-name><![CDATA[Mississipi State University]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<label>5</label><nlm-citation citation-type="book">
<source><![CDATA[VHDL for Programmable Logic]]></source>
<year>1996</year>
<publisher-name><![CDATA[Addison Wesley]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<label>6</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B7">
<label>7</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B8">
<label>8</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B9">
<label>9</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B10">
<label>10</label><nlm-citation citation-type="">
<collab>Universidad Politécnica de Madrid^dDepartamento de Sistemas Electrónicos y de Control</collab>
<source><![CDATA[Introducción al Lenguaje VHDL]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B11">
<label>11</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B12">
<label>12</label><nlm-citation citation-type="">
<source><![CDATA[Basic Neural Network Example]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B13">
<label>13</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B14">
<label>14</label><nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Oemuth]]></surname>
<given-names><![CDATA[Howard]]></given-names>
</name>
<name>
<surname><![CDATA[Beale]]></surname>
<given-names><![CDATA[Mark]]></given-names>
</name>
<name>
<surname><![CDATA[Hagan]]></surname>
<given-names><![CDATA[Martin]]></given-names>
</name>
</person-group>
<source><![CDATA[Neural Network Toolbox User's GuideUser's Guide]]></source>
<year>2005</year>
</nlm-citation>
</ref>
<ref id="B15">
<label>15</label><nlm-citation citation-type="">
<source><![CDATA[Implementación con FPGAs: Introducción a las FPGAs]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B16">
<label>16</label><nlm-citation citation-type="">
<source><![CDATA[]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B17">
<label>17</label><nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Pérez Ortiz]]></surname>
<given-names><![CDATA[Juan Antonio]]></given-names>
</name>
</person-group>
<source><![CDATA[Modelos Predcitivos Basados en Redes Neuronales Recurrentes de tiempo discreto]]></source>
<year>2002</year>
<publisher-name><![CDATA[Universidad de Alicante. Departamento de lenguaje y sistemas informáticos]]></publisher-name>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
