¿Cómo programar un filtro IIR o Recursivo en Arduino o PIC?

Hola, he buscado por los foros y no encontré mucho al respecto, tengo la ecuación de recursión de mi filtro IIR, sé que todo este filtro es programable, pero también sé que requiero una entrada analógica la cual hará convolución por cada término ¿verdad? y así tener una salida de acuerdo a la frecuencia de muestreo.

¿Alguien tiene idea de cómo hacerlo?
 
MICROCONTROLADORES AVANZADOS dsPIC. Controladores digitales de señales. Arquitectura, programación y aplicaciones

Buscá ese libro, es muy recomendable para aprender a programar filtros digitales con PIC.
 
Hola, podés postear la transferencia del filtro o tu ecuación recursiva ?? y también estaría bueno que digas como lo querés hacer asi los foreros pueden estimar cual es tu conocimiento y asi ayudarte mejor.

saludos
 
Pues pienso poner a la entrada un tren de pulsos con el 555 en modo astable, y luego ir multiplicando por mi ecuación

y(n) = 0.042181 x(n)0.084362 x(n-1)0.042181 x(n-2) 1.340959 y(n-1) -0.509682 y(n-2)

y fijarme si en realidad hio el filtro pasabajas con el IIR
 
ok, o sea que tenés que muestrear la señal cuadrada del 555. Luego le querés aplicar el filtro pasa-bajo.

¿¿ Y como pensás visualizar la salida del filtro ??

Implementar ese filtro es sencillo, necesitas 6 posiciones de memoria. 3 para la señal de entrada y 3 para la salida.
 
Exacto amigo, o sea le aplicaré el filtro pasa-bajo IIR a mi entrada, y la salida pues la visualizaré con el Osciloscopio, pero lo que no entiendo bien es como hacerlo, es decir, no tengo la idea concreta de como programarlo en un Microcontrolador (Qué no sea Dspic), o ya sea en una Arduino.

Porque podría obtener la muestra de acuerdo a los bits, los 256 en resolución de los pulsos de del 555 y luego multiplicarlo por mi ecuación en diferencias, la parte recursiva del IIR ....

y(n) = 0.042181 x(n)0.084362 x(n-1)0.042181 x(n-2) 1.340959 y(n-1) -0.509682 y(n-2)

pero lo qué no me queda claro, es si nada más se multiplica una vez por todo, o cuántas veces, para tener mi salida. esa es mi duda más grande.
 
A VER: vamos a ponerte a prueba. Suponte que un instante dado las variables y[n], y[n-1] e y[n-2] son iguales a cero. Luego te entra la siguiente secuencia de valores al filtro:
{1V, 4V, -3V, -2V, 2V}

entonces dime cuales son los valores de y[0], y[1], y[2], y[3] , y[4] ?????

según el filtro tuyo.

Tenés que poder resolver ese ejercicio antes de ponerte a programar el filtro en el microcontrolador.
 
Pues al momento de entrar la scuencia de {1V, 4V, -3V, -2V, 2V}

podríamos decir que Y[n] ={ 0 , -1 , -2}
luego y[1] = {1 0 0}
luego y[4] = {4, 3 2}
......y[-3] = {-3 -4 -5}
......y[-2] = {-2 -3 -5}
.......y[2] = { 2 1 0 }

¿así? o estoy mal.
 
eso está mal !. No entiendo como te ponés a trabajar en algo que no sabes como funciona. No tenés ni idea. Encima la ecuación está mal escrita, faltan signos de suma entre cada término:

y(n) = 0.042181 x(n) + 0.084362 x(n-1) + 0.042181 x(n-2) + 1.340959 y(n-1) -0.509682 + y(n-2)

Quisiera saber de donde sacaste ese filtro ??? seguro que vos no lo hiciste. Antes de ponerte a implementar algo asi deberías entender algo de la teoría que estás usando.
 
Atrás
Arriba