tengo el siguiente codigo para un fir de 5 coeficientes para empezar donde solo uno de ellos es un uno , con lo que se debe oir por la salida la entrada realimentada.
Este es el codigo :
static float XBUFF[5];
const float COEF[5]={0.0, 1.0 , 0.0, 0.0, 0.0};
static int=0;
fractional CODIGOAUDIO( fractional Entrada)
{
Declaracion variables.
for(i=4;i>0;i--)
{
XBUFF =XBUFF[i-1];
}
EntradaF= (float) Entrada;
XBUFF[0]= EntradaF;
for (i=0;i<=4;i++){
Muestra_filtrada=(Muestra_filtrada + (COEF*XBUFF));
}
Salida =(fractional) Muestra_filtrada;
return Salida;
}
El problema esta en.... que cuando ejecuto esto se me escucha el audio pero muy muy muy bajo y con mala calidad, incluso si el return es de Entrada; pero lo curioso es que si elimino la linea: Muestra_filtrada= ,,,,,,,,,,,,,,,,,,, y hago return Entrada si se oye perfectamente. Entonces el problema puede ser que llega otra muestra antes que se procesen esas 5 multiplicaciones...????
Si alguien se le ocurre algo, yo he pensado hacer ese for con instrucciones ensamblador, y si puede ser con un DO pero no se si se puede añadir ensamblador aqui.
Saludos y gracias