Instrucciones DSP en STM32F4

Hola Gente!

Tengo una duda.

Estoy implementado, con un microcontrolado STM32F4, un reproductor WAV al cual le aplico unos filtro IIR para eliminar ciertas frecuencias.
La finalidad es implementar algo parecido a un ecualizador.

Tengo entendido que estos micro poseen instrucciones optimizadas para DSP y en mi caso simplemente puse el codigo en C de un filtro generico.
Nose si en realidad este se esta implementado con esas instrucciones. Hay que habilitar algo para el uso de DSP o directamente el compilador ya utiliza las intrucciones optimizadas?

Por ejemplo este es el filtro pasa bajo que tengo, que anda, pero nose si esta utilizando las intrucciones especificas de DSP o estos quemando recursos....

float filtro_low_2(float x)
{

static float vt_1 = 0, vt_2 = 0, yt, vt;

vt= x + 0.19507203E+01 * vt_1 -.97258544E+00 * vt_2;
yt = vt -.19681747E+01 * vt_1 + 0.10000000E+01 * vt_2;
vt_2 = vt_1;
vt_1 = vt;

return(yt);
}

float filtro_low(float x)
{
static float vt_1 = 0, vt_2 = 0, yt, vt, yt2;

vt= x * 0.75627159E-01 + 0.18378850E+01 * vt_1 -.85192148E+00 * vt_2;
yt = vt -.18767974E+01 * vt_1 + 0.10000000E+01 * vt_2;
vt_2 = vt_1;
vt_1 = vt;
yt2 = filtro_low_2(yt);
return(yt2);
}

Desde ya, muchas gracias!
 
El procesador Cortex M4 tiene hardware que lo asemeja un poco a un DSP. Módulos de multiplicación-acumulación, hardware para división, hardware para operaciones de instrucción simple en multiples datos. Esto es invisible para el programador, pero definitivamente en tu código se está usando.

dsp.jpg
 
Atrás
Arriba