Estoy construyendo una pizarra para rastrear la posición de su pluma. Tengo n
receptores de ultrasonido colocados en la periferia de la pizarra y un emisor de ultrasonido en la pluma. La pluma emite pulsos que detectan los receptores. Un microprocesador reúne los tiempos de llegada de los pulsos para cada receptor, y con las diferencias de tiempo de llegada (TDOA) realiza una estimación de la posición del lápiz siguiendo un algoritmo de multilateración .
Los ultrasonidos se reflejan en las superficies, lo que puede causar interferencias. Esta es una restricción en la frecuencia de los pulsos. En este momento, pulso el lápiz a 10Hz, que es suficiente para que los reflejos se apaguen y no interfieran. Desafortunadamente, 10Hz no es un muestreo lo suficientemente rápido para mis propósitos. Idealmente, el lápiz debería pulsar a 100Hz. (El emisor de la pluma está conectado a un microcontrolador, por lo que puedo controlar la forma y la frecuencia del pulso).
¿Qué trucos puedo usar para abordar el problema de la reflexión? ¿Cuáles son algunas técnicas de filtrado estándar? ¿Podría usar diferentes patrones de pulso en un ciclo ayudar a filtrar los reflejos?
fuente
Respuestas:
Parece que su problema se presta muy bien para usar un esquema CDMA .
Let comienza con algunas propiedades de (DSSS) CDMA. (Espectro ensanchado de secuencia directa, acceso múltiple por división de código). Es un bocado, pero es realmente fácil de implementar.
En CDMA, su pulso (en la banda base) en realidad está compuesto de muchos ' chips ' concatenados como se les llama. Las fichas son solo 1s o -1s, de una duración fija. Por ejemplo, su secuencia de chip podría ser [1 -1 1 -1 -1 -1 1]. Usaría esta secuencia de chip para modular su operador.
Sin embargo, no puedes inventar tu código de chip. Lo que desea hacer es usar códigos de chip que tengan la propiedad muy agradable, que su función de autocorrelación es una función delta así:
(De manera equivalente, su densidad espectral de potencia es blanca). Por ejemplo, puede considerar el uso de secuencias de Barker como su código de chip, (generalmente usado en el radar), o también puede usar códigos de oro . Sin embargo, en términos prácticos, esto significa que obtiene el puntaje máximo de correlación en su receptor, SOLO cuando el código de los receptores, se alinea exactamente con el código transmitido, y cero en caso contrario.
Cómo te ayuda esto? En su receptor, estaría ejecutando un correlacionador continuamente. El correlacionador estaría ejecutando un producto punto en ejecución de su propio código local, con lo que se reciba. Ahora imagine que recibe una forma de onda transmitida de su lápiz y una segunda forma de onda de un reflejo. A medida que se ejecuta el correlacionador de sus receptores, dará un pico cuando su propia palabra de código se alinee exactamente con su código del bolígrafo. Esto hará que su detector se "bloquee" en ese valor de retraso específico. Ahora, aquí es donde obtiene los beneficios de una función de autocorrelación casi delta de su código: la señal reflejada también estará presente, y también se tomará su producto de punto con el código bloqueado de los receptores, pero dará cero, o puntaje cercano a cero, ya que es ortoginalo casi ortogonal al código retrasado en el que su receptor ya se ha bloqueado.
Por el contrario, si hubiera enviado un pulso portador no codificado, estaría a merced de una interferencia constructiva o destructiva que se dispararía exactamente cuando su pulso alcanzara el nivel máximo del detector de su receptor, y así obtener TDOA erróneos.
fuente