# Filtro digital para un pic



## chip986 (Dic 10, 2008)

Hola, como estan, necesito diseñar un filtro digital de tipo IIR o FIR en un pic. la idea es que al PIC le entre una señal, la convertimos a un valor digital mediante el conversor A/D del PIC. es un filtro a 20 khz. 
mediante matlab ya tengo los coeficientes para un filtro fir de orden 20 y son los siguientes:
const int BL = 42;
const uint8_T B[42] = {
      0,    0,    0,    0,    1,    1,    0,    0,    3,    3,    0,    0,
      5,    5,    0,    0,    6,    7,    0,    0,    7,    7,    0,    0,
      7,    6,    0,    0,    5,    5,    0,    0,    3,    3,    0,    0,
      1,    1,    0,    0,    0,    0
};
 les agradezco me puedan colaborar con la implementacion de este filtro en un pic en C, pues no tengo ni idea de como llevar estos coeficientes al lengaje en c para el PIC 16f877 y realizar el respectivo algortimo.


----------



## Ardogan (Dic 22, 2008)

Guau!, un filtro de orden 20, primera vez que veo que alguien precisa un orden tan elevado. Igual no tengo mucha experiencia, asi que en realidad tengo muchas "primeras veces" en electrónica.

Un par de notas de aplicación que pueden ser útiles:

AN852 - Implementing FIR and IIR Digital Filters Using PIC18 Microcontrollers
AN542 - Implementing IIR Digital Filters

Seré curioso, por qué un orden tan alto del filtro?, 20 dB/decada / polo.... 400 dB/decada!. Eso sí es atenuación. No irás a tener problemas de fase? (empieza a perder linealidad bastante antes de la frecuencia de corte). A no ser que no importe la fase....

Bueno, te agradecería si comentás algo de la aplicación que requiere un filtro de esas características, el pueblo quiere saber  

Saludos


----------



## Chico3001 (Dic 22, 2008)

Ardogan dijo:
			
		

> Bueno, te agradecería si comentás algo de la aplicación que requiere un filtro de esas características, el pueblo quiere saber
> Saludos



+1 aqui...


----------



## Dr. Zoidberg (Dic 22, 2008)

Ardogan dijo:
			
		

> 20 dB/decada / polo.... 400 dB/decada!. Eso sí es atenuación. No irás a tener problemas de fase?





			
				chip986 dijo:
			
		

> ...mediante matlab ya tengo los *coeficientes para un filtro fir de orden 20 *y son los siguientes...



No es para tanto!!! Es un filtro *FIR* no un IIR. Los coeficientes y los polos no tienen la misma relación!!! y mucho menos la fase!

Saludos!


----------



## Ardogan (Dic 22, 2008)

Ups, mejor releo un poco. A veces pienso que me saco el óxido en algunos temas, pero se ve que no, que lo muevo a otro tema en el mejor de los casos.


----------



## chip986 (Dic 23, 2008)

ok, Ardogan, observare con detenimiento los links de las aplicaciones, gracias.  ademas pues el orden no importa, lo que importa es la estructura del programa en C que llevaria el microcontrolador. aqui es donde tengo el problema de llevar esos coeficientes al algoritmo C.


----------

