Pulsos de ultrassom e problemas de reflexão


7

Estou construindo um quadro branco para rastrear a posição de sua caneta. Tenho nreceptores de ultrassom colocados na periferia do quadro branco e um emissor de ultrassom na caneta. A caneta emite pulsos que os receptores detectam. Um microprocessador reúne os tempos de chegada dos pulsos para cada receptor e, com as diferenças horárias de chegada (TDOA), faz uma estimativa da posição da caneta seguindo um algoritmo de multilateração .

Os ultrassons refletem nas superfícies, o que pode causar interferência. Esta é uma restrição na frequência dos pulsos. No momento, pulso a caneta em 10Hz, o que é suficiente para que os reflexos se extingam e não interfiram. Infelizmente, 10Hz não é uma amostra suficientemente rápida para os meus propósitos. Idealmente, a caneta pulsaria a 100Hz. (O emissor da caneta está conectado a um microcontrolador, para que eu possa controlar a forma e a frequência do pulso.)

Que truques posso usar para resolver o problema de reflexão? Quais são algumas técnicas de filtragem padrão? O uso de diferentes padrões de pulso em um ciclo ajuda a filtrar as reflexões?


2
Qual é a forma do pulso (um sinusóide, algum sinal modulado etc.)? Qual é a duração de cada pulso? Qual largura de banda está disponível para o sistema de ultra-som de ponta a ponta? Um esquema que poderia funcionar seria percorrer um conjunto de formas de pulso ortogonais diferentes para transmissões subsequentes; isso ajudaria a impedir interferência entre pulsos. Isso exigiria algum nível de sincronização de tempo entre o quadro branco e a caneta, mas isso poderia ser potencialmente resolvido.
Jason R

11
Eu escolho a forma do pulso e a duração (o transmissor está conectado a um microprocessador totalmente programável DAC). A largura de banda ultrassônica é de 40kHz +/- 1kHz. O que exatamente você quer dizer com "formas de pulso ortogonais"?
Randomblue

@ Justin, uma família ortogonal de formas de pulso é, por exemplo, pulsos / sinais cujo produto pontual dá 0. Por exemplo, um ciclo de uma onda sin e um ciclo de uma onda cosseno, quando seu produto pontual é zero.
Spacey

11
@ Justin: Qual a quantidade de recursos de processamento disponíveis no back-end conectado à matriz de receptores de ultrassom?
Jason R

@ JasonR: Existem duas camadas de processamento. O primeiro é um chip ARM que simplesmente realiza a aquisição de dados (envia as leituras dos receptores para a Internet). Em seguida, tenho um servidor poderoso para receber e processar os dados.
Randomblue 12/12

Respostas:


1

Parece que seu problema se presta muito bem ao uso de um esquema CDMA .

Vamos começar com algumas propriedades do CDMA (DSSS). (Espectro de propagação de sequência direta, acesso múltiplo por divisão de código). É um bocado, mas é realmente fácil de implementar.

No CDMA, seu pulso (na banda base) é realmente composto de muitos ' chips ' concatenados , como são chamados. As fichas são apenas 1s ou -1s, com duração fixa. Por exemplo, sua sequência de chipping pode ser [1 -1 1 -1 -1 -1 1]. Você usaria essa sequência de lascas para modular sua operadora.

No entanto, você não pode apenas inventar seu código de chip. O que você quer fazer é usar códigos de lascamento que possuam uma propriedade muito boa, que sua função de autocorrelação seja uma função delta da seguinte forma:

insira a descrição da imagem aqui

(Equivalentemente, sua densidade espectral de potência é branca). Por exemplo, você pode usar o Barker Sequences como seu código de chip (normalmente usado em radar) ou também usar códigos de ouro . Na prática, no entanto, isso significa que você obtém a pontuação máxima de correlação no seu receptor, SOMENTE quando o código do receptor está alinhado exatamente com o código transmitido e, caso contrário , zero .

Como isso te ajuda? No seu receptor, você estaria executando um correlacionador continuamente. O correlacionador estaria executando um produto escalar em execução com seu próprio código local, com o que quer que seja recebido. Agora imagine que você recebe uma forma de onda transmitida da caneta e uma segunda forma de onda de um reflexo. À medida que o correlacionador de seus receptores for executado, ele atingirá um pico quando sua própria palavra de código se alinha exatamente com o código da caneta. Isso fará com que o seu detector 'trave' nesse valor de atraso específico. Agora, aqui é onde você colhe os benefícios de uma função de autocorrelação quase delta do seu código: O sinal refletido também estará presente e também terá seu produto escalar obtido com o código bloqueado dos receptores, mas dará zero, ou quase zero, por ser ortogonalou quase ortogonal ao código atrasado em que o seu receptor já travou.

Por outro lado, se você enviasse um pulso portador não codificado, estaria à mercê de interferências construtivas ou destrutivas que disparariam quando exatamente seu pulso atingisse o nível de detector do seu receptor e, portanto, obteria TDOAs errôneos.


11
Algum problema com o efeito Doppler devido à movimentação da caneta?
endolith 9/12/12

Não entendo como o detector pode 'travar' em um valor de atraso específico. A caneta está se movendo, então o atraso varia.
Randomblue

@ endolith Sim, dependendo da rapidez com que a caneta se move, embora possa ser corrigível com uma PLL.
Spacey

@ Justin Sim, ele trará um atraso específico para esse pulso principal. Em seguida, sua caneta envia outro pulso, travando em um novo atraso, etc. A sua caneta está sempre produzindo novos pulsos, e os receptores sempre os recebendo e computando um novo TDOA. O ponto é que os caminhos múltiplos não sejam capazes de interferir destrutivamente com sua linha principal se houver sinal de visão.
Spacey

11
@ endolith Sim, eu concordo. A largura de banda deve ser larga o suficiente. Voltei ao cálculo do guardanapo que fiz mostra o doppler delta em aproximadamente 100Hz, enquanto a largura de banda 2Khz ... e sim, teria que simular para ver se era bom o suficiente.
Spacey
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.