You are on page 1of 1

#include "dsk6713_aic23.

h"
Uint32 fs=DSK6713_AIC23_FREQ_16KHZ; //* frecuencia de muestreo dada por el trabajo
16khz.
#define N 39 //* n�mero de coeficientes dados por el matlab
float h[N] = {
-0.00279282820484334,0.0196114025352254,-0.0301528621743490,0.00291325572585581,
0.0176505415622264,0.00854471934211395,-0.0109092884587126,-0.0192124385484300,
-0.00385241829761624,0.0211264065347018,0.0245520697495643,-0.00557209480670678,
-0.0391866582579949,-0.0297963393755197,0.0286865919613123,0.0762436623263891,
0.0334185290480710,-0.116198289681979,-0.290632195285165,0.631962677075660,-
0.290632195285165,
-0.116198289681979,0.0334185290480710,0.0762436623263891,0.0286865919613123,-
0.0297963393755197,
-0.0391866582579949,-0.00557209480670678,0.0245520697495643,0.0211264065347018,-
0.00385241829761624,
-0.0192124385484300,-
0.0109092884587126,0.00854471934211395,0.0176505415622264,0.00291325572585581,
-0.0301528621743490,0.0196114025352254,-0.00279282820484334
}; //* coeficientes dados por el matlab
float yn; //* se crea yn que es la respuesta.
float dly[N]; //* se crea para mover los datos a una siguiente muestra.
short a,b; //* variables a de entrada y b de salida.
interrupt void c_int11()
{
int i; //* variable creada para los "for".
b = input_sample(); //* muestra de entrada guardado en b.
dly[0]=(float)(b); //* supongo que es para el procesamiento en "float" para m[as
definici�n pues b es "short".
yn = 0; //* se inicializa la salida yn en cero para que el procesamiento sea el
mismo para cada muestra.
for (i = 0; i< N; i++) //* for para la cantidad de coeficientes, pues hay que sumar
cada uno de estos para la salida yn.
yn += (h[i] * dly[i]); //* comparable a yn = yn + (h[i] * dly[i]); quiere decir que
guarda la suma de cada soluci�n de cada cooeficiente para tener la suma total en
yn.
for (i = N-1; i > 0; i--) //* for para mover los datos de una siguiente muestra,
para usar los datos corrector es la ec. en diferencias.
dly[i] = dly[i-1]; //* se cambian los lugares una muestra.
a=(short)(yn); //* se almacena el dato en a, que es la salida en short para el DAC.
output_sample(a); //* puerto de salida del DSK.
return;
}
void main()
{
comm_intr(); // Iniciar DSK, codec, McBSP
while(1); // Esperar que ocurra una interrupci�n
}

You might also like