Autor Tema: Muestreo de una senhal  (Leído 2274 veces)

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

Desconectado Power_DSP

  • PIC10
  • *
  • Mensajes: 15
Muestreo de una senhal
« en: 19 de Abril de 2006, 19:51:05 »
Saludos nuevamente
Ahora estoy con problemas al muestrear una senhal, obtengo un alias de la senhal de su madre, segun el teorema de muetreo Fs >= 2.fm.
Estoy generando una senhal con la tarjeta de sonido de 4 Khz +- 1V, el ADC del dsPIC esta configurado para darme una interrupcion cada fs = 32Khz, el filtro antialias tiene una frecuencia de corte de apox 4khz.

La fs es mucho mayor que fm, fm es la senhal generada por la tarjeta de soido de  4Khz ??? o fm seria 8 khz........    de ser fm = 8Khz  fs seria igual a fs= 16khz.

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
Re: Muestreo de una senhal
« Respuesta #1 en: 22 de Abril de 2006, 05:16:34 »
Buenas.

Segúnel famoso teorema de Niquist, la frecuenci de muestreo (fs) debe ser, como mínimo, el doble de la máxima frecuencia que tiene la señal. En tu caso, la señal a digitalizar es de 4KHz máximo, por lo que la fs deberá ser de 8KHz mínimo. Si estás muestreando a 32KHz, vas sobrao.

Desconectado Power_DSP

  • PIC10
  • *
  • Mensajes: 15
Re: Muestreo de una senhal
« Respuesta #2 en: 23 de Abril de 2006, 13:30:04 »
Ya encontre el problema del aliasing , y todo se debe a que estoy usando MATLAB para hacer todo desde generar mis propias ondas y reproducirlas hasta adquirir los datos con usb (usando el CDC emulation) matlab corre muy lento los programas lo probe con C y mejoro mucho.
Para que tengan una idea de como estaba solo estaba adquiriendo la PC 1k muestras approx por segundo cuando debia ser mas de 31K

Desconectado Power_DSP

  • PIC10
  • *
  • Mensajes: 15
Re: Muestreo de una senhal
« Respuesta #3 en: 26 de Abril de 2006, 13:41:13 »
Otro bug encontrado........
El puerto serial tiene diferentes configuraciones para transferencia de bits por ejemplo

bps: 9600, 19200,57600,115200.

Para saber cuantos caracteres por segundo puedo enviar se usa esta formula que puede bariar si usas 2 bits de parada

Caracter/seg = Baud/11 = 9600/11 = 872 caracteres max por seg

Yo estaba usando 19200 bps (max 1745 aprox por seg) !!!!!!!!!!! asi que no va a haber aliasing ???? yo necesito por lo menos 8000 muestras por segundo y estaba muestreando a 32Khz , estaba todo un desastre ;)} .
Como solucion he aumentado a 115200 bps (aprox 10472 caracteres x seg) y he decidido generar una senhal de entrada de 1250hz y muestrearla a 2500hz.

 PORQUE TAN BAJA FRECUENCIA ?????????????????

El conversor del dsPIC es de 10bits, y tomo el dato del buffer y lo convierto a ASCII(0h400 ---> "1024") para cada muestra necesito mandar 4('1','0','2','4') caracteres a la PC. De 10000 aprox caracteres por segundo que puedo mandar 10000/4 = 2500 solo representan 2500 muestras por segundo o sea mi frecuencia max de muestreo es Fs = 2500 max por lo que si entra una senhal mas alta a los 1.25 khz habra un aliasing debido al muestreo.

Este muestreo solo para cuando interface a la PC y pruebe los filtros digitales si no necesito analizar o demostrar en la PC puedo llegar hasta el limite 500ksps en el dsPIC que estoy usando.

Desconectado antoniof

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 729
Re: Muestreo de una senhal
« Respuesta #4 en: 30 de Abril de 2006, 08:14:01 »
En vez de hacer eso, podrías pasarlos a ASCII en el PC y enviar por RS-232 los dos bytes (10bits) capturados por el dsPIC.

Si es muy critica la frecuencia de muestreo, también puedes muestrear a 8bits.


 

anything