Autor Tema: Filtro digital en dsPic 30f4013  (Leído 4146 veces)

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

Desconectado gmarzik

  • PIC10
  • *
  • Mensajes: 5
Filtro digital en dsPic 30f4013
« en: 20 de Abril de 2019, 21:11:37 »
Hola, cómo andan? Estoy comenzando a programar dsPics y mi idea es implementar un filtro pasa bajos del tipo FIR, para filtrar en tiempo real, pero tengo algunas dudas sobre si el microcontrolador que estoy usando (dsPic 30f4013) sirve para esa tarea.

La idea es usarlo para audio, por lo tanto necesito una frecuencia de muestreo de, por lo menos, 44100 Hz. Por lo que leí en la datasheet, el conversor analógico digital del controlador tiene hasta 100000 muestras por segundo (100 ksps) de tasa de conversión, este es el dato que estoy buscando, no? Y supongo también que debería alcanzarme esta tasa de conversión para poder muestrear la señal de entrada correctamente, no?. Por otro lado, la profundidad de bits del conversor es de 12 bits, lo ideal sería tener 16 bits o más para tener una buena relación señal a ruido, pero con 12 la pérdida no sería tan importante, no?.

Aparte de eso, por lo que leí, para que un filtro funcione bien en tiempo real necesito que el tamaño del buffer sea por lo menos igual a la cantidad de muestras que tenga la respuesta al impulso del filtro que quiero programar. Este valor por las cuentas que estuve haciendo es de aproximadamente 700 muestras. Por lo que entendí de la datasheet, usando buffer circular, el tamaño máximo que puedo alcanzar es de 32000 palabras, o 64 kBytes, entonces por este lado también me debería alcanzar, no?.

Por ahora estas son las dudas que tengo, seguramente surgirán más a medida que avance con el proyecto.

Gracias desde ya por su ayuda!

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Filtro digital en dsPic 30f4013
« Respuesta #1 en: 21 de Abril de 2019, 15:35:38 »
¿Y vas a filtrar señal mono o estéreo?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Filtro digital en dsPic 30f4013
« Respuesta #2 en: 21 de Abril de 2019, 15:43:38 »
En cuanto a la potencia de cálculo, con 30MIPS ese micro va estar muy ajustado para calcular 700 operaciones MAC (multiplicación y suma) 44100 veces por segundo.

Un saludo.

Desconectado gmarzik

  • PIC10
  • *
  • Mensajes: 5
Re:Filtro digital en dsPic 30f4013
« Respuesta #3 en: 21 de Abril de 2019, 21:04:12 »
¿Y vas a filtrar señal mono o estéreo?
Sí, perdón, me olvidé de aclarar. Sólo busco filtrar señal moño.

En cuanto a la potencia de cálculo, con 30MIPS ese micro va estar muy ajustado para calcular 700 operaciones MAC (multiplicación y suma) 44100 veces por segundo.

Un saludo.

Ah, gracias por la aclaración. No lo había pensado pero tiene muchísimo sentido. ¿Qué recomendás, tratar de bajar un poco la frecuencia de muestreo para bajar la cantidad de operaciones por segundo o pasar a un micro con más MIPS? ¿Qué problemas podría llegar a traer trabajar muy al límite de la máxima cantidad de instrucciones por segundo?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Filtro digital en dsPic 30f4013
« Respuesta #4 en: 22 de Abril de 2019, 09:15:03 »
Yo probaría a filtrar con 22050 muestras por segundo, si funciona puedes intentar llevar el filtro a más frecuencia de muestreo.

Parece que quieres filtrar la componente de 60Hz de alimentación. Puede que haya otros métodos más efectivos para que no necesites tanta potencia de cálculo.

Hay modelos mejores de dsPIC. Tienes dsPIC33 que trabajan a 5V hasta 70Mhz y otros que trabajan a 3.6V hasta 200Mhz. Ambos ejecutan una instrucción MAC por cada dos ciclos de reloj. Los dsPIC30 son mucho más lentos porque ejecutan una instrucción por cada 4 ciclos de reloj.
https://www.microchip.com/maps/Microcontroller.aspx

De todas formas, si te pasas a un ARM no tendrás problemas y aprenderás una plataforma con futuro. Tienes placas de desarrollo como la discovery desde 9€:
https://www.mouser.es/Embedded-Solutions/Engineering-Tools/Embedded-Processor-Development-Kits/Development-Boards-Kits-ARM/_/N-cxd2t/?Ns=Pricing|0

Saludos.
« Última modificación: 22 de Abril de 2019, 09:23:32 por Picuino »


Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 941
Re:Filtro digital en dsPic 30f4013
« Respuesta #6 en: 22 de Abril de 2019, 14:50:28 »

Buscás implementar un filtro pasa bajos para audio.   OK ¿Pero en qué rango de frecuencias?


Desconectado gmarzik

  • PIC10
  • *
  • Mensajes: 5
Re:Filtro digital en dsPic 30f4013
« Respuesta #7 en: 23 de Abril de 2019, 20:24:37 »
Yo probaría a filtrar con 22050 muestras por segundo, si funciona puedes intentar llevar el filtro a más frecuencia de muestreo.
El problema es que reduciendo tanto la frecuencia de muestreo no podría reconstruir correctamente la señal de audio, según el teorema de Nyquist.

Parece que quieres filtrar la componente de 60Hz de alimentación. Puede que haya otros métodos más efectivos para que no necesites tanta potencia de cálculo.
No, esto no es mi idea, yo busco filtrar una señal de audio, que tiene un ancho de banda de 20 Hz hasta 20 kHz.

Voy a investigar los modelos de dsPIC que me pasas, además de las placas ARM, muchas gracias por la información!


Buscás implementar un filtro pasa bajos para audio.   OK ¿Pero en qué rango de frecuencias?


El rango de frecuencias en el que estoy trabajando es de 20 Hz hasta 20 kHz.

Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 941
Re:Filtro digital en dsPic 30f4013
« Respuesta #8 en: 24 de Abril de 2019, 09:25:51 »
...
El rango de frecuencias en el que estoy trabajando es de 20 Hz hasta 20 kHz.

No me refería a la entrada sino a la frecuencia de corte del pasa bajo.



Desconectado gmarzik

  • PIC10
  • *
  • Mensajes: 5
Re:Filtro digital en dsPic 30f4013
« Respuesta #9 en: 25 de Abril de 2019, 23:44:11 »
...
El rango de frecuencias en el que estoy trabajando es de 20 Hz hasta 20 kHz.

No me refería a la entrada sino a la frecuencia de corte del pasa bajo.

Disculpame, no se si te entiendo bien. ¿Te referís a la frecuencia de corte del filtro pasa bajos a la entrada del conversor analógico digital?

Desconectado Eduardo2

  • PIC24F
  • *****
  • Mensajes: 941
Re:Filtro digital en dsPic 30f4013
« Respuesta #10 en: 26 de Abril de 2019, 01:34:35 »
No, a la del filtro.

100Hz,200Hz,...,1kHz,...   ¿Hasta que frecuencia la señal pasa sin atenuación?

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5878
    • Picuino
Re:Filtro digital en dsPic 30f4013
« Respuesta #11 en: 26 de Abril de 2019, 05:10:07 »
mi idea es implementar un filtro pasa bajos del tipo FIR,

Se refiere al filtro FIR que has comentado en el primer mensaje.

Desconectado gmarzik

  • PIC10
  • *
  • Mensajes: 5
Re:Filtro digital en dsPic 30f4013
« Respuesta #12 en: 29 de Abril de 2019, 23:26:01 »
No, a la del filtro.

100Hz,200Hz,...,1kHz,...   ¿Hasta que frecuencia la señal pasa sin atenuación?

Digamos que 1 kHz, pero en realidad no lo tomo como un parámetro inamovible, no es la idea filtrar una señal determinada (por lo tanto no tengo una frecuencia de corte del filtro definida), sino más bien la experiencia de implementar un filtro para audio en un dsPIC (y ver sus limitaciones).

Saludos

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5538
    • Picmania by Redraven
Re:Filtro digital en dsPic 30f4013
« Respuesta #13 en: 06 de Mayo de 2019, 05:27:02 »
Interesante. Me suscribo.
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania