Autor Tema: transformada rapida de fourier conpic 16f877 (FFT)  (Leído 19314 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #15 en: 25 de Agosto de 2010, 23:56:34 »
Pero hay otras personas ansiosas que queremos ver código, y no necesitan tantas explicaciones!  :D :D


A pues para todos ellos que se les queman las habas por ver el programa correr ahi esta el hex en su topico  correspondiente :D :D :D

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #16 en: 26 de Agosto de 2010, 00:06:12 »
Pero hay otras personas ansiosas que queremos ver código, y no necesitan tantas explicaciones!  :D :D


A pues para todos ellos que se les queman las habas por ver el programa correr ahi esta el hex en su topico  correspondiente :D :D :D
:D :D :D Naaa. Es un chiste!  :D

Igualmente para los que quieran implementar una FFT para visualizar un LCD no necesitan gran cosa, por ejemplo la FFT que se muestra en este post en un 18F4620 se ejecuta en unos 1.8 ms. Es de 16 puntos y les sobra para visualizaciones de ese estilo.

Si quieren algo de teoria de FFT, algoritmos, errores de truncamiento, ect, pueden darle una leída a Tratamientos Digital de señales, Proakis y Manolakis  ;-) Aclaro que hay que tener una base sobre tratamientos de señales, sino van a quedar  :z)   :D :D


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #17 en: 26 de Agosto de 2010, 00:25:34 »
   :D :D  uyyy suky, en 1.8 ms ya se habia creado y expandido el uiverso despues del big bang....
mmm FFT en C, 16 muestras, de las cuales solo les sirven 8, porque las otras 8 son simetricas, en 1.8 milisegundos.....

Veamos estos datos, digo, para aquellos pacientes que aprecien el poder del ensamblador....
Los tiempos que tarda en ejecutarse mi FFT @ 12mips

Muestras  Tcys   tiempo      FFTs/seg
2              317    26.41us    37854
4              888    74us         13513
8            1999    166.58us   6003
16          4705    392.08us   2550
32        10841    903us        1106
64        24448   2.037ms     490.83
128      53996   4.499ms     222.23
256     117032  9.752ms     102.53

* Estos tiempos mejoraran en cuanto haga unos updates pendientes...
sacando datos en español, en una FFT de C de 16 muestras, caben 4.59 FFT-16 hechas en assembler.  Visto de otra manera, una FFT de 16 muestras @ 1.8ms  en C, equivale a una FFT de 64 muestras en assembler @ 2ms.

Claro, yo saque mucha info del proakis manolakis, lo importante del tutorial que tengo pendiente, no es llenarlos de formulas y matematicas, para eso pueden romperse la cabeza con el proakis, la idea, es como implementarla en un programa, entendiendo 1ro, como y porque funcionan cada una de sus partes...   para despues implementar el codigo, a eso me referia con eso de que es bien facil copiar y pegar y no saber ni por donde quedo la bolita, paciencia pues...

Ademas, esta FFT que hice es universal, basta con escribir el numero de muestras y listo, el mismo codigo funciona para todas las longitudes desde 2 hasta 256 muestras

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #18 en: 26 de Agosto de 2010, 00:52:44 »
Felicitaciones, hiciste una FFT que se calcula antes que se haya creado y expandido el universo despues del big bang  :D :D Yo no digo nada de tu rutina, te felicito por el todo el tiempo que has ocupado para realizarla.  ;-) Pero todo depende de la aplicación.


Claro, yo saque mucha info del proakis manolakis, lo importante del tutorial que tengo pendiente, no es llenarlos de formulas y matematicas, para eso pueden romperse la cabeza con el proakis, la idea, es como implementarla en un programa, entendiendo 1ro, como y porque funcionan cada una de sus partes...   para despues implementar el codigo, a eso me referia con eso de que es bien facil copiar y pegar y no saber ni por donde quedo la bolita, paciencia pues...

Ademas, esta FFT que hice es universal, basta con escribir el numero de muestras y listo, el mismo codigo funciona para todas las longitudes desde 2 hasta 256 muestras

Me encantan las matemáticas  :D :D


Saludos!  :)


No contesto mensajes privados, las consultas en el foro

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #19 en: 26 de Agosto de 2010, 01:23:56 »
Felicitaciones, hiciste una FFT que se calcula antes que se haya creado y expandido el universo despues del big bang  :D :D Yo no digo nada de tu rutina, te felicito por el todo el tiempo que has ocupado para realizarla.  ;-) Pero todo depende de la aplicación.

Precisamente has dado en el clavo, todo depende de la aplicacion, pero esta, depende de hasta a donde quieras o te veas llegar, Vamos a un ejemplo en concreto.  El dia de hoy, quiero hacer mi pantallita y listo, no me importa si la rutina corre a 1.8ms o en 350us...   Pero el dia de mañana, cuando quiera hacer una pantalla grande, que tenga vectores, graficos, touch screen, sensores, etc,   SI, desde el comienzo, tengo una rutina que el dia de ayer hice a las carreras por querer las cosas faciles (CSS), pues obvio no voy a tener tiempo para ejecutar todo mi demas codigo en tiempo real...

Por eso hago mucho enfasis en hacer lo mas eficientemente posible las rutinas, porque asi, en aplicaciones a futuro o presentes, tenga tiempo para hacer mas procesos...  Por eso, JAMAS uso C, sabiendo que es mas sencillo, no tendria tanto ancho de banda en tareas multiprocesos.   Mas tarea aun, tendria que regresar a reprogramar rutinas que en su momento no me importo su tiempo de ejecucion.   

Entonces, como dices, depende de la aplicacion, pero creo, que todas ellas, deben ser eficientes pensando en el futuro.  Quizas en este debate ya, el pic se la pase flojeando y haciendo 10 FFTs porque no tiene nada mejor que hacer u otros procesos, pero pensar en hacer bien las cosas desde el inicio.... bueno, a la larga, obtienes tanta rapidez que puedes hacer cosas y aplicaciones como esta....  (aprovecho para hacer comercial a otro proyecto,  :D  :D  :D)


saludos...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #20 en: 26 de Agosto de 2010, 01:30:29 »
Interesante lo que comentas! Y es muy cierto, eso de mejor comenzar a hacer bien las cosas del principio. En mi caso no lo hago porque me aburro rápido y seguro dejo el proyecto  :? Mientras más rápido salga y funcione adecuadamente, todo joya. Total es hobby  :mrgreen:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #21 en: 26 de Agosto de 2010, 01:33:21 »
Tambien estabas preparando un tuto con el robot de proceso de imagenes ?????
Con razon reconoci el robotcito!

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #22 en: 26 de Agosto de 2010, 01:40:46 »
Interesante lo que comentas! Y es muy cierto, eso de mejor comenzar a hacer bien las cosas del principio. En mi caso no lo hago porque me aburro rápido y seguro dejo el proyecto  :? Mientras más rápido salga y funcione adecuadamente, todo joya. Total es hobby  :mrgreen:


Saludos!

Esa es la diferencia, entre ir a cojer cubitos con un robot, o perseguir pelotas...    Me gusta mas el hobby de tener un perro robot con quien jugar...

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #23 en: 26 de Agosto de 2010, 01:43:33 »
El problema es hacer el hobby algo que ocupe todo el tiempo  :? Las cosas importantes están en otro lado  :)  Pero cada uno hace lo que quiere  ;-) El último comentario, no hay que perder el tema principal del hilo.

Adios!
« Última modificación: 26 de Agosto de 2010, 01:47:18 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #24 en: 26 de Agosto de 2010, 01:50:59 »
Tambien estabas preparando un tuto con el robot de proceso de imagenes ?????
Con razon reconoci el robotcito!

No tanto como el robot, pero por fin, conseguimos los mentados sensores de imagen para el sistema de vision artificial.... Proximamente publicaremos la camarita como un producto, o la venta del sensor de imagen, que es el talon de aquiles, que no ha dejado a muchos empezar, y por otro lado, no tenia caso continuar con el tema si nadie mas podia armar la camarita, dado la escases de los sensores de imagen....

Era solo un ejemplo de que tan rapido son ya todos los procesos del robot, tal que puede correr tras un objeto,  muchos pueden tomarse todo el tiempo del mundo en tomar un objeto estatico, seguirlo... es otra cosa...

Me tomo poco tiempo esta funcion como hobby, al no tener que regresar al reprogramar... todo depende de la aplicacion...
Saludos...

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #25 en: 26 de Agosto de 2010, 02:00:20 »
Ya veo!

Esta interesante!
Suerte con tu producto!!

Saludos!

Desconectado jhefren

  • PIC10
  • *
  • Mensajes: 42
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #26 en: 26 de Agosto de 2010, 02:36:19 »
primero obtenemos un valor del ADC del PIC, luego lo guadamos en la memoria RAM
esto ce hace hasta completar la cantidad de 8 puntos. y para la cantidad de 8 puntos o muestras de datos tendremos un tiempo de 166.58 us si usamos un PIC que corra a 12 mhz



Desconectado vixctor

  • PIC16
  • ***
  • Mensajes: 110
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #27 en: 26 de Agosto de 2010, 02:51:58 »
primero obtenemos un valor del ADC del PIC, luego lo guadamos en la memoria RAM
esto ce hace hasta completar la cantidad de 8 puntos. y para la cantidad de 8 puntos o muestras de datos tendremos un tiempo de 166.58 us si usamos un PIC que corra a 12 mhz


Si, medio entiendoo tu idea pero creo que no entendiste a lo que me referia con los tiempos de la FFT
efectivamente, 8 muestras tomadas a 40khz...  tomarian 200 microsegundos exactamente
por otro lado, la FFT de 8muestras, tarda 166.58 us en ejecutarse, es decir, la FFT se calcula mas rapido, de lo que tardarias en adquirir otras 8 nuevas muestras...

Eso te puede llevar a pensar, que si hicieras la FFT al mismo tiempo que capturas 8 muestras... para cuando las termine de calcular, ya habra otras 8 nuevas muestras, sin que hayas perdido una sola en ese intervalor de tiempo...   Efectivo no? si tu FFT de 8 muestras, tardara no se... 900 microsegundos haciendola en C...   pues para cuando acabaras la primera FFT, ya habrias perdido 28 muestras que NO podras procesar...

De hecho la FFT de 32 muestras, tarda 903 us, el tiempo en adquirir esas 32 muestras, a 40 khz son 800 us... o sea, la FFT de 32 corre casi en el mismo tiempo en que las muestras son capturadas, solo pierde 100us, o un equivalente a 4 muestras entre FFT y FFT.

En este momento estoy mejorando el codigo, espero la FFT corra al mismo tiempo en que se llena el buffer de las muestras

Saudos

Desconectado jhefren

  • PIC10
  • *
  • Mensajes: 42
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #28 en: 26 de Agosto de 2010, 03:52:38 »
Esa ya lo vi anteriormente, quiero aprender a hacer eso tambien. e visto que usando filtros de kalman lo hacen, pero con mictrocontroladores pic, creo que seria como dicen en mi pais "UN FUME TOTAL", cuando hallamos terminado de aprender FFT lograremos  hacer  que la camara siga el objeto y genere una grilla en la pantalla calculando la posicion  del objeto. Para luego.........

Desconectado zaxione

  • PIC10
  • *
  • Mensajes: 7
    • Zaxione
Re: transformada rapida de fourier conpic 16f877 (FFT)
« Respuesta #29 en: 01 de Agosto de 2012, 12:07:35 »
Aqui le tengo una pagina interesante donde llamada zaxione, donde nuestro amigo saul implementa un vumetro con pic16f877 al que le interese ese es el link:


http://www.zaxione.com/index.php?option=com_content&view=article&id=31:vumeter-estereo-con-varias-visualizaciones&catid=4:proyectos-varios&Itemid=3


Hola el enlace anterior es antiguo :? y ya no esta en uso, aporto el nuevo :):
http://www.zaxione.com/index.php/8-proyectos/1-vu-meter-estereo-con-varias-visualizaciones

Un saludo.
WWW.ZAXIONE.COM