domingo, 2 de enero de 2011

Representación en Punto Flotante o IEEE 754.

Muchas de las operaciones que se realizan dentro de los algoritmos implementados en el procesamiento de señales sobre FPGA, se llevan a cabo utilizando la representación en punto flotante de una señal, debido a que la manipulación aritmética y compleja es mucho más fácil y sobretodo porque esta representación ofrece mayor flexibilidad al momento de operar y facilita la presentación de la información. Teniendo en cuenta este hecho, en esta sección se presentan los aspectos básicos de la representación en punto flotante o IEEE 754. 

El IEEE (Institute of Electrical and Electronic Engineering) aprobó en 1985 mediante el ANSI/IEEE Std 754-1985, el formato normalizado IEEE 754 para aritmética en coma flotante, el cual especifica cuatro formatos para la representación de valores en coma flotante: precisión simple (32 bits), precisión doble (64 bits), precisión simple extendida (≥ 43 bits) y precisión doble extendida (≥ 79 bits). Este estándar surge para evitar las limitantes de representación que se tenían al expresar un número mediante punto fijo, debido a que mediante este sistema el rango de valores que es posible representar con un número determinado de bits es mucho menor al estar la coma fija que al tener el sistema de coma flotante, aunque los algoritmos de las operaciones son mucho más complejos.

La representación en punto flotante de un número en un sistema de numeración base B se realiza mediante una mantisa m y un exponente e de la siguiente forma:


n=mB^e

En la que m es el numero en punto fijo, B es la base del sistema de numeración y e es el numero entero que se denomina exponente.

Un ejemplo de un numero representado en el sistema de numeración decimal, B=10, en el formato de punto flotante es el 22.5x103. Pero este número se puede representar de muchas formas, por ejemplo:

22.5x103=0.0225x106=225000x10-1

Que se diferencian por la situación del punto en la mantisa y por el valor del exponente. Así que como se puede observar por este motivo esta representación recibe el nombre de punto flotante.  Aunque las anteriores representaciones son válidas como punto flotante, se suele optar por una representación donde el punto este antes de la cifra más significativa distinta de cero. En el ejemplo seria 0.225x105.

En el estándar se definen formatos para la representación de números en coma flotante, incluyendo el cero y valores desnormalizados, así como valores especiales como infinito y NaN[1] (Not a Number, No es un Número), con un conjunto de operaciones en coma flotante que trabaja sobre estos valores. Tambien se definen los métodos de redondeo que pueden ser hacia arriba o hacia abajo y el truncamiento.

En la figura  se muestra un diagrama de la especificación del estándar para una representación binaria en punto flotante de precisión simple o de 32 bits, ya que en este caso el número se almacena en una palabra de 32 bits. S es el bit de signo,  0 si es un número Positivo y 1 si es un número negativo. Exp es el campo para el exponente de 8 bits  que va desde -126 hasta 127. El campo de la mantisa de 23 bits expresa la base del exponente. 

IEE754 Precision Simple



[1] se usa generalmente para expresar un resultado imposible de calcular, como el caso de las raíces negativas, indeterminaciones, etc.

No hay comentarios:

Publicar un comentario