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.
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.
Comentario