Go Down

Topic: Ayuda con mi codigo y filtros paso-bajo (Read 7 times) previous topic - next topic

*

Con cualquier sensor para elminar el ruido ambiente, por ejemplo un sensor de distancias de infrarrojos de estos que se ven tanto, sharp creo que son. Es normal implementar un filtro fir paso bajos para eliminar los picos que puedas tener debido al ruido ambiente y promediar la medida.

Por ejemplo si tienes un programa que hace algo cuando el sensor lee x distancia, se puede disparar debido al ruido, implementando un filtro pasobajos previenes que pase ésto, ya que te comes los picos y promedias las medidas.

Por otro lado meter un filtro de este tipo también te supone meter un retardo en la señal que has de consideras en ciertos sistemas.

doggenj

(español, con traductor Google)

Es una buena idea añadir más información a los ejemplos.
He añadido una página wiki, con un poco información básica.
http://code.google.com/p/arduino-signal-filtering-library/wiki/SignalFilteringBasics

"Int" es de 16 bits en el código de Arduino, ya que el ADC es de 10 bits, esto debería ser suficiente (para algunos de los cálculos es necesaria una mayor precisión)

@ionhs: Realmente no se entiende la pregunta, pero un estándar de Arduino no es lo suficientemente rápido para procesar la señal de audio en tiempo real.
@JMN: Mi uso principal del filtro de un sensor de distancia :-) (Sharp GP2Y0A21YK IR Distance sensor) (http://code.google.com/p/gp2y0a21yk-library )

Igor R

#12
Jan 21, 2012, 04:06 pm Last Edit: Jan 21, 2012, 04:40 pm by Igor R Reason: 1
Como JMN, yo creo que el ejemplo más fácil de imaginar es el de medir luz (cualquiera la aplicación que sea, por ejemplo los sensores de distancia, los ldr,etc).
A tu alrededor, tienes una gran fuente de ruido.... los 50 Hz de la red eléctrica. Por ejemplo, tus fluorescentes estarán apagandose/encendiendose a dicha frecuencia. Es decir, cuando recojas la medida de tu sensor, tendrás dicho "ruido" añadida a tu medición.

Si quieres jugar con ésto, nada mejor que el post que salió en paralelo cuando se estuvo discutiendo por aquí aumentar la frecuencia de muestreo del ADC.
Puedes usar el KST a tiempo real para saber que más cosas estas midiendo en la señal adquirida ("frecuencias").
http://arduino.cc/forum/index.php/topic,69995.0.html
http://arduino.cc/forum/index.php/topic,68855.0.html
http://real2electronics.blogspot.com/2011/09/arduino-adc-muestreo-alta-velocidad.html

Si tienes un ldr, puedes hacer el experimento. Tambien puedes probar a medir con el ldr la luz de una incandescente y en una fluorescente para ver diferencias.

El filtro sirve precisamente para quitar(atenuar) la parte que no te interesa medir en la señal adquirida (también hay conceptos como el aliasing, pero sin entrar en detalles).

Otro ejemplo, que a lo mejor es fácil de entender, es medir la aceleración de un cuerpo. Pongamos un coche. Instalas un acelerómetro dentro del coche. Lo que te interesa es medir la aceleración del mismo, pero en el sensor no distingue, otras fuentes como las inducidas por la carretera-neumático-suspensión ó la vibración del motor, etc también las medirás. Por ello tienes que eliminar dicho "ruido" de tu señal, ya que no te interesa esos datos para tu aplicación.





copachino


¿qué no entiendes del filtro paso bajo? Me refiero a conceptos, nada de código. Seguro que si lo entiendes no tienes problemas de hacerlo con la cantidad de información que hay en internet.


Por cierto, para rpm se suele usar "moving average filter", es decir, tomar ciertas medidas y hacer la media (mejor usar la variable del contador, en vez con el float para mejor rendimiento del código).


igor ehhh conceptos he leido bastante y los comprendo, pero mi nivel de programacion no esta como para lograr implementarlo.... por ejemplo no tengo idea en que parte debe ir el filtro........


otra cosa es que nose si mi codigo es lo mas rcomendado para la medicion ya que es un poco rustico si me dijeran alguna manera de poder estructurarlo mejor me vendria bien

copachino


Con cualquier sensor para elminar el ruido ambiente, por ejemplo un sensor de distancias de infrarrojos de estos que se ven tanto, sharp creo que son. Es normal implementar un filtro fir paso bajos para eliminar los picos que puedas tener debido al ruido ambiente y promediar la medida.

Por ejemplo si tienes un programa que hace algo cuando el sensor lee x distancia, se puede disparar debido al ruido, implementando un filtro pasobajos previenes que pase ésto, ya que te comes los picos y promedias las medidas.

Por otro lado meter un filtro de este tipo también te supone meter un retardo en la señal que has de consideras en ciertos sistemas.



bueno lo del retardo de la señal lo he cosiderado, pero creo que es preferible tener un retardo en la señal a tener malas lecturas con el sensor.... claro que me gustaria tener el programa bie estructurado para evtar los mas posible retrasos....

y pues la verdad en lo que necesio ayuda es en eso en poder afnar bien el programa, solo que no quise abrir otro hilo ya que tenia este y pues tengo que evitar hacer un hilo por cada pregunta tonta que me salga.....

gracias a todos por conestar leere u poco de lo que me han comentado y vere si puedo hace algo

Go Up