IEEE 754 coma/punto flotante, que es?

  • 1
--16936--
#1 por --16936-- el 17/10/2006
alguno puede traducirme, para dehaznarme.
Subir
undercore
#2 por undercore el 17/10/2006
lo de coma flotante me suena a valores decimales, y IEEE me suena a Firewire...cual es el contexto de eso???
Subir
--16936--
#3 por --16936-- el 17/10/2006
Under son normas/standars/protocolos, tanto el 754 32/64 bits como el firewire ... todo esto nace del topico de saturación, aca seria el tema de la precision y los calculos ... como estoy realmente confundido o siempre lo supe mal, y no me molesta por que no tuve una carrera universitaria, si lo puedo aprender, que bien vendria.
Subir
modulay
#4 por modulay el 17/10/2006
Son dos formas diferentes de almacenar un dato digital.Que un sistema digital trabaje en punto fijo ó punto flotante determina el rango de posibles valores de una muestra que un sistema puede almacenar-representar-entender y la cantidad incremental mínima entra un valor digital y el más cercano.Por ejemplo,si tenemos un DSP de 8 bits y que trabaje con punto fijo (los hay,pero están en desuso) el rango de valores con el que puede trabajar para codificar muestras es quizá comparable al de uno de punto flotante que también sea de 8 bits,pero la precisión con la que un sistema en punto flotante puede almacenar un dato no entero es muchísimo mayor en la mayoría de los casos.Esto tiene su razón de ser en que cuando se aplica un filtro digital sobre una serie de muestras lo que básicamente se hace es multiplicar el valor digital de las muestras por una serie de coeficientes.Estos coeficientes son normalmente números con decimales.Mientras que un DSP de punto fijo tiene una cantidad fija de dígitos para representar la parte decimal,el de punto flotante puede variar esta cantidad de dígitos decimales (desplazar el punto decimal) para proporcionar una representación más fiel de los coeficientes y por lo tanto de los resultados tras procesar muestras.
Ejemplo:
Si disponemos de 4 digitos de punto fijo,2 para la parte entera y 2 para la parte decimal,la representación del número 9.432 sufriría un redondeo y se almacenaría como 09.43
Un sistema de punto flotante que cuente también con 4 dígitos,no tiene tamaño fijo para la parte decimal,la situación de la coma decimal se adaptará al número que se quiere almacenar,en este caso el número de antes quedaría almacenado como 9.432
Subir
undercore
#5 por undercore el 17/10/2006
bueno yo lo de la coma flotante lo vi en digitalizacion de audio, el problema que tenian tanto los 16 como los 24 bits es que solo podian usar numeros enteros, se tenia que hacer una aproximacion, esa aproximacion no era notable, pero si se hacia una cadena de efectos que trabajaran a esas profundidades de bits la señal se degradaba, con los 32 llego eso de coma flotante que podia usar nuemros decimales y se ganaba en precision.

http://es.wikipedia.org/wiki/Coma_flotante

aqui una explicacion cientifica del asunto jejeje
Subir
--31852--
#6 por --31852-- el 17/10/2006
Alfredo es el estandar de procesamiento digital de la IEEE (instituto de ingenieros elctricos y electronicos)

http://es.wikipedia.org/wiki/IEEE_punto_flotante


la wiki como siempre muy informativa..




un saludo alfredo
Subir
--16936--
#7 por --16936-- el 17/10/2006
vamos a complicar la pregunta 0 dbfs, en 24 bit (como parece ser que trabajan los medidores VU), que supongo que sera fija, en 32 bit como flotante y en 64 bit de doble presición, cual son la diferencias?
Subir
--31852--
#8 por --31852-- el 17/10/2006
y la web del instituto

http://www.ieee.org/portal/site


cachis, se me adelanto undercore con el link de la wiki


slds
Subir
--31852--
#9 por --31852-- el 17/10/2006
Alguien escribió:

vamos a complicar la pregunta 0 dbfs, en 24 bit (como parece ser que trabajan los medidores VU), que supongo que sera fija, en 32 bit como flotante y en 64 bit de doble presición, cual son la diferencias?


Uff alfredo, se me escapa.. el q sabe de estas cosas por aki es edding, aunq alguien mas habra digo yo, recuerdo un hilo en el q yo le pregunte a edding acerca de los tan traidos y llevados 48 vs 32 flotantes... , si te sirve de algo hay un white paper de rane q parece bastante interesante, pero ya te digo q a mi todo este digitalismo tan profundo, me da un poco de repelus...

slds
Subir
--16936--
#10 por --16936-- el 17/10/2006
Chus pero no me dice nada, del porque no se puede saturar, yo busco el sentido practico, para mi es facil y creo que no caer en un error que la diferencia entre 32 y 64 esta dicho por lo de "doble presicion", que para mi es agregar mas decimales a un calculo (traducidos al formato hexagesimal, y la mare en coche), que (ejemplo tozco) en 32 bit, antes del cero esta 0.01 y en 64 bit seria 0.0001, o digames que el numero mas chico antes del redonde es 1 centesima en 32 bit y 1 diezmilesima en 64 bit, hasta alli entiendo perfectamente y en el mundo practico creo que es asi, que un proceso a 64 es mas preciso
Subir
--38357--
#11 por --38357-- el 17/10/2006
Solo por complementar un poco sus respuestas hay que decir que la IEEE (Instituto de ingenieros electricos y electronicos) al igual que la ANSI o la ISO es una organizacion dedicada a la estandarizacion, es decir propone normas que deben seguir determinados sistemas para que luego no tengamos el lio de que cada fabricante hace las cosas a su modo y al fin tenemos sistemas que son incompatibles entre si, por ejemplo el echo de que cada toma de corriente utiliza el mismo tipo de enchufe es producto del trabajo de estas organizaciones, puede parecer tribial, pero es cosa de pedirse un equipo a gingolandia (no se si se entiende el termino pero aca se les llama gringos a los estado unidenses, a ellos les gusta llamarse americanos, pero america es un continente mucho mas grande) o asia y el primer inconveniente que se presenta es la alimentacion, unos a 220v otros a 110v, en fin proponen recomendaciones que al final los fabricantes siguen para asi hacernos la vida mucho mas facil.

Respecto a la pregunta en si, IEx3 754 es una norma que define como se realizaran los computos sobre operaciones de punto flotante, a que se refiere el punto flotante? Bueno un numero en binario esta representado por un determinado numero de bits, en este caso 32, como cada bit puede tomar 2 valores (1 o 0) tenemos 2 a la potencia de 32 lo que da 4294967296 combinaciones binarias posibles, con esta cantidad de combinaciones el sistema debe ser capaz de representar cualquier numero posible.

El primer problema es, que pasa si el numero no es entero o si este numero es demasiado grande y se acerca al infinito, como los represento, bueno ahi entra en juego el punto flotante que establece determinados bits como operadores especiales que determinan si ese numero posee decimales o si es un numero demaciado grande (un numero demaciado grande puede ser representado como una potencia Ej.: 256 = 2^8). Cuando se programa un algoritmo, cada valor manejado se guardara en una variable y para guardar valores esta variable debe ser definida en el mismo tipo de valor que se va a utilizar: existen variables numericas, alfanumericas, punto flotante, etc.

Definir de que tipo sera la variable dice al ordenador como utilizara los bits disponibles para representar ese dato. IEEE 754 es una norma que define un tipo en particular de variable utilizada a la hora de programar, estas variables son las capaces de trabajar con valores decimales o numeros representados en potencias. En la mayoria de los lenguajes de programacion se llaman de tipo FLOAT o DOUBLE y se diferencian de las variables numericas simples en que utilizan los operadores matematicos en forma dinamica, es decir estos pueden posicionarse a lo largo de los 32 bits (o 64 del tipo DOUBLE). Existen otro tipo de variables en las que tu puedes definir cuantos bits utilizaras (8, 16, 32) para representar el numero y de estos cuantos dejaras para decimales, pero una vez definido esto queda fijo teniendo que adaptarse todo valor a las caracteristicas de la variable, lo que trae como consecuencia fallos de precicion producto de aproximaciones o recortes en el numero por a la poca disponibilidad de bits.

Los algoritmos matematicos que representan el comportamiento del sonido arrojan valores con alto numero de decimales o valores que pueden crecer de acuerdo a un exponente (una onda de sonido puede ser representada en forma exponencial o trigonometrica) por lo que una variable de tipo simple no reune las caracteristicas necesarias para trabajar con este tipo de informacion, solo la variables de punto flotante ofrecen la flexibilidad suficiente para trabajar con informacion de este tipo.

Bueno ya dije demasiado, si sigo hablando me van a venir a buscar de la NASA, jejeje (no se rian que un compañero de estudio esta trabajando en un proyecto de la NASA en el norte de CHILE, el proyecto ALMA). Espero te sea claro y si no, sera, no lo puedo explicar de forma mas simple. Saludos.
Subir
--31852--
#12 por --31852-- el 17/10/2006
Me cuesta seguirte alfredo, jejeje siempre me cuesta...

has preguntado q es el 745 de la IEEE.. yo te he dicho q un estandar de procesado digital..

Intentas relaccionarlo con el otro hilo, con la representacion grafica si no me ekivoco.. te soy sincero, siempre me cuesta seguirte por escrito alfredo, pero en este caso aun mas... pq tampoco esq yo tenga mucha idea del tema.. Kiza estes partiendo de una premisa ekivocada intendo relaccionar el IEEE 745 con esto... no se q estas intentando probar.. no te sigo



un saludo alfredo
Subir
--16936--
#13 por --16936-- el 17/10/2006
Tenes razon Chus que lo quiero relacionar, pero fue que empezaron a relacionarlo en ese topic, porque hasta nuestro amigo de la NASA me esta diciendo lo que a groso modo conocia sobre la norma del IEEE.

... Los algoritmos matematicos que representan el comportamiento del sonido arrojan valores con alto numero de decimales o valores que pueden crecer de acuerdo a un exponente (una onda de sonido puede ser representada en forma exponencial o trigonometrica) por lo que una variable de tipo simple no reune las caracteristicas necesarias para trabajar con este tipo de informacion, solo la variables de punto flotante ofrecen la flexibilidad suficiente para trabajar con informacion de este tipo ...

pero esto no significa que con motor de 64 bit puedas pasarte de 0 dbfs, para mi es como que esta comcluido el tema, si alguien quiere subir mas el tema seria mas que lindo
Subir
--38357--
#14 por --38357-- el 17/10/2006
Para concluir, tratando de exlicar un poco esto de los 24 a 32 bits. En una señal digitalizada a 24 bits cada valor de amplitud sera representado por una combinacion de 24 bits (uno para el signo) estos son valores fijos, enteros, sin decimales, es decir que el motor de calculos del programa secuenciador debe tener asegurados a lo menos 24 bits para realizar operaciones con estos valores, pero que ocurre si una operacion sobre una muestra por ejemplo a 8 bits con el valor 11111111 = 255 si el motor de calculo es a 8 bits tambien y aplicamos un algoritmo (un efecto) que da como resultado 255,1 con esos ocho bits como represente ese decimal, no se puede por tanto se pierde y el resultado final sera como si nunca hubieramos aplicado el efecto. Por tanto para trabajar con audio el procesamiento interno del secuenciador o del efecto debe ser con un numero mayor de bits a los de la muestra y si es con punto flotante mejor aun.
Subir
--38357--
#15 por --38357-- el 17/10/2006
Alfredo.Forte @ 17 Oct 2006 - 05:43 PM escribió:

pero esto no significa que con motor de 64 bit puedas pasarte de 0 dbfs, para mi es como que esta comcluido el tema, si alguien quiere subir mas el tema seria mas que lindo


Bueno la verdad es que estas sacando concluciones apresuradas, este estandard fue desarrallado para calculos matematicos, no para audio por lo que estas un poco equivocado en que las restricciones para superar los 0 dbfs te las da el estandar. Esto esta mas relacionado con otros aspectos. En mi lectura de otros hilos me he quedado con la impresion de que se esta confundiendo los 24 bits de digitalizacion de la señal con los 32 bits del motor de procesamiento del estudio, no tienen nada que ver, 32 bits de procesamiento no implica que existiran mayor cantidad de intervalos de cuantizacion de la señal digital, por lo que el valor maximo de amplitud que pieda adquirir la señal con 24 bits jamas sera superado por que eso esta normalizado por otro estandard y dice que ese es el valor maximo. La señal sera procesada a 32 bits, pero luego sera devuelta a los 24 bits en que fue digitalizada, no se si me explico, bueno tampoco he leido el otro hilo asi que estoy un poco desconectado de los que estan hablando pero, bueno espero ser claro.
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo