Como classificar os dados do acelerômetro?


7

Estou tentando detectar se um carro acelerou ou freou usando o acelerômetro do iPhone.

Na figura abaixo, plotei os dados coletados. (Para coletar os dados, o telefone estava deitado no carro, de frente para a parte superior do telefone).

O problema que estou tendo agora é que, visualmente, consigo ver claramente onde o carro acelerou e onde freou (veja abaixo). Mas não consigo descobrir como fazer isso programaticamente.

O que eu basicamente quero é saber com que frequência um carro freou ou acelerou durante um certo período de tempo. (Tamanho da janela em torno de 10 a 30 segundos).

Qualquer ajuda seria muito apreciada.

Desde já, obrigado! Aceleração  Travagem de um carro


Qual é a unidade no xaxis?
Gilles

A unidade do eixo x é o tempo. Eu amostrado com 60 Hz. Portanto, os valores no eixo x dividido por 60 representariam segundos.
Riik 20/08/2014

Ok, é o número de amostras. Uma maneira seria obter uma janela deslizante do tamanho que você está sugerindo e colocar condições na média e na variação das amostras coletadas, se necessário, adicionar condições em intervalos de cruzamento zero. Mas, se você fizer a análise sem as janelas de curto prazo, o número de bordas crescentes do sinal de atividade (sinal azul) pode fornecer quantas vezes você acelerou e as bordas caindo para quebrar?
Gilles

11
@PaulR obrigado pelo esclarecimento! Acabei de atualizar a pergunta de acordo.
Riik

2
OK, se você usar os dados do acelerômetro, poderá, em princípio, usar apenas o sinal da aceleração (- para frenagem, + para acelerar). O problema é o barulho. Provavelmente, você pode aumentar suficientemente o SNR usando um filtro Savitzky Golay .
Matt L.

Respostas:


1

Você deve considerar fazer um STFT no sinal do acelerômetro. Isso permitirá que você visualize a frequência do sinal. Se você puder determinar a frequência dos freios, poderá definir um limite para essa frequência específica de frenagem e contar cada vez que for excedido. Você também seria capaz de medir por quanto tempo a frenagem ocorre.

Como você está processando seu sinal? O Matlab e o python têm a função specgram, que permite ver a frenagem de frequência real. A partir daí, você poderá determinar a frequência do freio, bem como um limite.


1

Quando os freios são acionados, a aceleração na direção do movimento reverterá o sinal. Por exemplo, se você posicionar o telefone de forma que o eixo z do acelerador esteja na direção do eixo de gravidade (ou seja, de frente para a terra), a aceleração ao longo do eixo z será -g. Por outro lado, se o eixo z negativo estiver alinhado com g, o eixo z do acelerômetro medirá + g. Isso é análogo ao cenário de um carro acelerando e freando, embora a magnitude da desaceleração seja um pouco menor que a aceleração. Você pode começar definindo o eixo de referência como o eixo g e definindo os outros 2 eixos com base na direção de aceleração mínima e máxima, usando uma matriz de rotação. Basicamente, você altera o eixo de referência das coordenadas x, y, z, com base na orientação do telefone, para um sistema de referência g, a, s estacionário (onde g é o eixo de gravidade, a é a direção da aceleração máxima es eixo estacionário). Você também pode usar um giroscópio para alcançar essa rotação do eixo, conforme discutido emnesta página. Ao visualizar o acelerômetro daya nos eixos transformados, você pode facilmente classificar regiões de aceleração e desaceleração com base no sinal de apenas um eixo, independentemente da orientação do telefone, procurando por zero cruzamentos.


1

Você deve saber a orientação do telefone porque o sinal do eixo deve ser o mesmo do movimento do carro. Supondo que filtero sinal do eixo esteja correto, é possível entrar o sinal do acelerômetro lowpass, para limpar a alta frequência noisee ver o sinal do sinal para detectar se há uma interrupçãoa(ti)<0 ou uma aceleração a(ti)>0.

Você deve tentar filtrar com um butterworthpasse baixo de segunda ou terceira ordem com baixa frequência, por exemplo10Hz ou menos, tente algumas frequências de corte visualizando o gráfico.

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.