Anuncio

Colapsar
No hay ningún anuncio todavía.

Transformada inversa de furier (IFFT)

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Otras carreras Transformada inversa de furier (IFFT)

    Bueno gente he aqui mi problema. Estoy desarrllando un programa y necesito calcular la transformada de furier. Hasta ahora me he ido todo bien. Y corrijanme si en alguno de mis comentarios me equivoco.

    Mi programa trabaja de la siguiente forma. Ingresas un grupo de numeros realis y imaginarios, a partir de estos numeros, se calcula la FFT (transformada rapida), tambien realize la DFT y en esencia me da igual que la FFT. Hasta aca iba todo muy bien. Les cuento que lo que estoy tratando de hacer es migrar un sistema hecho en otro lenguaje a c++. Y voy comparando los resultados. asique asumo que hasta este punto estaba todo bien.

    Ahora tengo que hacer la transformada INVERSA. Les cuento que a partir de los datos originales, aplico FFT y despues la inversa y vuelvo a los datos originales. Asique sigo asumiendo que todo va Bien.

    Ahora, en una parte del programa, le hago un proceso a los numeros y en si queda algo asi:

    realoes imaginarios
    0 0
    0 0
    0 0
    99.87 -120.6
    54.99 -2.554
    0 0

    Y el resto de los numeros sigue en 0, osea el resto de la muestra. Lo que pasa aqui... es que con mi codigo, no consigo que me de el mismo resultado que el programa con esas entradas. Y NO TENGO IDEA POR QUE. Por que asumiendo que la otra forma esta bien... no entiendo por que de esta forma funciona. Estos valores son (magnitud y Fase).


    Aca les muestro unos valores de entrada, procesados por la fft y procesados luego por la IFFT.

    [IMG]file:///C:/DOCUME%7E1/Juanpi/LOCALS%7E1/Temp/moz-screenshot.jpg[/IMG][IMG]file:///C:/DOCUME%7E1/Juanpi/LOCALS%7E1/Temp/moz-screenshot-1.jpg[/IMG]

    Nota: Aclaro que aca la entrada son un conjunto de numeros realies y imaginarios. Con esa salida luego puedo calcular la magnitud y fase. (osea q esos valores no son magnitud y fase) Y bueno despues introdusco estos valores a la IFFT y me devuelve el original.

    Igual de la misma manera, ingresando los valores de magnitud y fase la calcula bien.. solo cdo introdusco los valores de arriba me da erroneamente

    Se que mi error es matematico. Tiene que ver con el calculo, pero no se que puede llegar a ser.

  • #2
    Re: Transformada inversa de furier (IFFT)

    Hola.

    Si en tu programa te salen variables como 0, en vez de como 0.00000, tiene pinta de que haya algo relacionado con la inicialización (o mas bien la no inicializacion) de las variables.

    Prueba a igualarlas todas a cero (real) antes de trabajar con ellas.

    Comentario


    • #3
      Re: Transformada inversa de furier (IFFT)

      Antes que nada Gracias por contestar...

      No creo que sea ese el problema... ya que te toma 0 por que es lo mismo que 0.0000. Osea directamente te muestra 0. (igual... ya que lo mencionaste probe crear una variable flotante que valiera 0.0000 y fue el mismo resultado.)

      He revisado el programa entero y no logro dar con el problema.

      Mi problema es cuando inicializo un array con todos los valores iguales a 0 (reales y imaginarios) salvo dos que serian la frecuencia alta y la frecuencia baja. Es decir... tengo un array de 1024. Donde todos los valores son 0 salvo 2, que son los valores de la alta y baja frecuencia. Donde le paso los valores originales del resultado de la fft de la muestra completa.

      0 0
      0 0
      0 0
      99.87 -120.6
      54.99 -2.554
      0 0
      ...

      donde el primero es la magnitud y el segundo la fase.

      He hecho rpueba con todos los valores a 0 y la ifft me devueve todo 0. Lo que asumo que esta bien. Tambien probe psando los datos originales de la muestra por la fft y luego por la ifft y me devolvio los valores originales. Lo que asumo que tambien esta bien. Entonces no entiendo por que cuando solo le paso 2 valores al array todo en 0... no me devuelve el resultado correctamente.

      Alguien tiene idea?

      Comentario

      Contenido relacionado

      Colapsar

      Trabajando...
      X