Tratamiento de la salida de una FFT en vhdl

Hola a todos,

Os escribo porque me ha surgido una duda, tengo una FPGA de Actel y tengo que implementar una FFT. Como entrada a la FFT introduzco los datos provenientes de un acelerómetro y la salida de la FFT tengo que compararla con una serie de datos decimales, no enteros. Mi problema es que al ser la salida de la FFT un numero determinado de bits pues no sé bien compararlo, o sí es posible compararlo. Os adjunto el pdf con la explicación de la FFT que he cogido de la propia página web de Actel. He cogido como b=16 bits, N=1024 puntos y unconditional block floating-point scaling, pero estos parámetros se podrían configurar de manera distinta sin problema.

Lo que he intentado hasta ahora ha sido:

library std;
use std.textio.all;
library ieee;
use ieee.std_logic_textio.all;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.conv_integer;
use ieee.std_logic_arith.conv_std_logic_vector;
use ieee.numeric_std.all;

port(...) etc

declaraciones:
signal fft_re:std_logic_vector(15 downto 0);
signal fft_re1:real;

fft_re1<=real(to_integer(unsigned(fft_re)));

...

Compilar, me compila pero a la hora de sintetizar da error en esa sentencia ya que dice que no es implementable.
¿Alguna solución posible? Es que necesito compararla con un dato real, decimal, ya que sí no, perdería un montón de precisión.

Si me pudierais ayudar, estaría muy agradecida.

Muchas gracias,

Saludos
 
Me parece que el error surge al momento de comparar tu salida con ese dato decimal, creo que estas comparando un dato en formato de coma flotante contra otro dato que no lo es (decimal sin coma flotante, considerado como numero en modulo sin signo) de ahi que te da el error, es como si compararas naranjas con manzanas, entre si no son comparables, pero si lo son si se lo hace con los de su mismo tipo.
 
Pero tiene que haber alguna forma, no? cuando haces la FFT en matlab por ejemplo, los valores que salen son decimales también, enteros pierdes precisión. Como por ejemplo usar X numeros de bits para la parte entera y X numeros de bits para la parte fraccionaria (coma fija o algo), no? El problema es que en ese pdf tampoco veo que haga eso...
 
el problema no esta en el numero en si, sino como decis que son esos numero, que formato poseen.si son en coma flotante o en modulo, es correcto lo que decis de que una parte de los bits es para la parte entera y otra para la parte fraccionaria, pero el numero ese esta en formato de coma flotante, el otro tambien lo esta?.
 
Atrás
Arriba