TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: jgpeiro en 31 de Enero de 2006, 08:49:00

Título: Diseño de filtros interactivo
Publicado por: jgpeiro en 31 de Enero de 2006, 08:49:00
solo tenemos que escoger el tipo de filtro y los parametros y el nos genera un codigo en C listo para empotrar en cualquir programa. Como este:#define NZEROS 8
#define NPOLES 8
#define GAIN   5.430635089e+01

static float xv[NZEROS+1], yv[NPOLES+1];

static void filterloop()
  { for (;Giño
      { xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8];
        xv[8] = next input value / GAIN;
        yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8];
        yv[8] =   (xv[0] + xv[8]) - 4 * (xv[2] + xv[6]) + 6 * xv[4]
                     + ( -0.0767566150 * yv[0]) + (  0.7737069185 * yv[1])
                     + ( -3.5263246486 * yv[2]) + (  9.3763015919 * yv[3])
                     + (-15.9891146160 * yv[4]) + ( 17.9764618080 * yv[5])
                     + (-12.9640071450 * yv[6]) + (  5.4297305753 * yv[7]);
        next output value = yv[8];
      }
  }

La pagina es http://www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html

Si lo insertamos en el MPLAB trabaja en coma flotante, si alguien sabe como adaptarlo para que trabaje en fractional con el DSP que me lo diga...