Algoritmo DSP de MATLAB de punto fijo

Tengo una pregunta sobre la codificación de un algoritmo para un DSP Texas Instruments TMS320C64xx en MATLAB:

Tengo una implementación descuidada de trabajo de mi filtro en MATLAB. Mi objetivo es utilizar MATLAB Embedded Coder para convertir este algoritmo a C, que luego puedo importar a Code Composer Studio y cargar en el DSP.

Para hacer esto, sé que hay ciertas cosas que debo hacer con mi código MATLAB. Por ejemplo, necesito preasignar espacio para matrices para que sepa de qué tamaño hacerlas (a menos que quiera preocuparme por los datos de tamaño variable). Todo ese masaje del código MATLAB en código C'ish para que el codificador MATLAB pueda convertirlo, lo entiendo más o menos. Sin embargo, no tengo idea de cómo asegurarme de que mis tipos de datos (por ejemplo, los coeficientes de mi filtro) sean de punto fijo en lugar de punto flotante para que MATLAB Embedded Coder convierta mi código a C, que solo involucra tipos de datos de punto fijo.

Así que supongo que mis preguntas generales son:

  1. ¿Hay alguna forma de garantizar que MATLAB Embedded Coder no cree tipos de datos flotantes?

  2. ¿Necesito usar la caja de herramientas de punto fijo de MATLAB?

Puede que sea más sencillo compilar un modelo de Simulink de punto fijo, pero no tengo mucha experiencia con el traductor de C de MATLAB. La única vez que lo usé con Simulink (cuando Coder se llamaba Real-Time Workshop) y CCS, "simplemente funcionó".
¿CCS es Code Composer Studio? Entonces, ¿simplemente tradujo a C y luego usó los archivos fuente de C como fuente para su proyecto CCS? Si no le importa que le pregunte, ¿qué tipo de interfaz tenía con su DSP para programar? Creo que podría estar atascado usando este emulador XDS USB JTAG.
También preguntó: "Si el C64xx se especifica como un DSP de punto fijo de 32 bits, ¿eso significa que un compilador arrojará un error si trato de usar el tipo de datos flotante?" Mi respuesta rápida probablemente no sea, volverá al punto flotante del software lento como la melaza (suponiendo que el compilador tenga habilitado el punto flotante, según mi experiencia con otros chips TI). Si desea una respuesta más completa, hágala como una pregunta separada.

Respuestas (1)

Echando un vistazo al sitio web de matlab, creo que necesita la caja de herramientas de punto fijo http://www.mathworks.co.uk/products/fixed/description6.html , esto se puede traducir a código entero c más adelante usando el codificador simulink.