Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

21/12/2009 #1


Correlación entre dos señales en dsPIC30F
Hola.
Estamos con un amigo trabajando con el dsPIC30F4011. Necesitamos obtener el tiempo de retardo entre dos señales, que llegan a dos micrófonos ubicados en dos lugares distintos. Para eso pensamos hacer la correlación entre las dos señales y de ese modo saber cuál es el retardo entre ambas. La pregunta es: hay alguna forma eficiente de hacer la correlación en el dsPIC? o existe algun algoritmo que la calcule??. o tienen una idea mejor para hacerla que implementar la formula "textual" (suma por suma) en el dspic?
Se entendió la pregunta??
12/07/2010 #2


Respuesta: Correlación entre dos señales en dsPIC30F
Hola Juani84,

Trabajo con un dspic33f y estoy usando la librería dsp.h para calcular la correlación entre dos señales. Tienen que tener en cuenta que usa tipo de dato fractional (Q15).

Mi problema es que la longitud de la señales es demasiada para la memoria que tengo, ¿¿¿saben si existe algún algoritmo de correlación por bloques???¿¿Cómo solucionaron este problema??

Saludos!
12/07/2010 #3


Respuesta: Correlación entre dos señales en dsPIC30F
Hola Caprilidia.
Mirá, nosotros decidimos realizarla a partir de la definición de la correlación, o sea, para cada valor desplazamos una de las dos señales la cantidad de muestras que corresponde, multiplicamos las dos señales y luego las sumamos. Básicamente es como lo hace el Matlab.
Digamos que es medio a "lo bruto" Seguramente no sea la forma óptima de hacerlo, dado que para ello están las librerías que me mencionas. Sin embargo, en nuestro caso, funciona joya. Nosotros tenemos dos señales con 50 muestras cada una, y lo más difícil (desde el punto de vista del procesamiento) son los productos, que con la instrucción MAC se hacen en un solo ciclo (sumando el resultado obtenido al valor anterior). Las muestras son enteros sin signo, provenientes del conversor A/D.

No creo poder ayudarte con lo que buscas, ya que según veo, vos le querés sacar "más jugo" al dsPIC. Seguramente tengas más muestras, y cada ciclo que puedas ahorrarte sea más importante que en nuestro caso.
Sin embargo, si te interesa cómo lo hice, te lo explico más detalladamente. De todos modos, el programa tendrá unas 40 lineas o 50 instrucciones aprox, que no es tanto..


Saludos..
15/07/2010 #4


Respuesta: Correlación entre dos señales en dsPIC30F
Hola Juani 84!!

Gracias por tu respuesta!! Mis muestras son mucho más largas,ahora estoy trabajando con 1024, y deben ser aún mayores, por eso incluso me estoy planteando aumentar la memoria del dsPIC mediante una memoria externa. De momento el uso de la librería me va bien, aunque también estoy barajando la opción de hacer el procesado en frecuencia, para ahorrar tiempo de cómputo. Me gustaría que explicaras más detalladamente, tengo curiosidad!!!!!

Saludos!
21/07/2010 #5


Respuesta: Correlación entre dos señales en dsPIC30F
Hola caprilidia.
Perdón por la demora. Estuve medio ocupado.
Lo que hicimos para calcular la correlación fué lo siguiente:
Viste que la definición de la correlación significa realizar los productos entre las dos señales, con una desplazada y luego sumar todos los productos. Cada elemento de la correlación implica un desplazamiento distinto. Algo así como (si mal no recuerdo):

Rxy[k]=sumatoria(x[m]*y[m-k])

Bueno, lo que hacemos es desarrollar eso mismo. Primero guardamos las dos señales en las dos regiones X e Y para poder usar la instrucción MAC para multiplicar y sumar el resultado, y con dos registros vamos apuntando a la posición de memoria donde está la muestra que tenemos que multiplicar. Es registros van cambiando de valor según la muestra de la correlación que queremos calcular.
Seguro que no es lo mas eficiente, pero nos sacó de un apuro...jajaja

Saludos...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.