пятница, 15 июня 2018 г.

Gps speed moving average


Estou desenvolvendo uma aplicação Android usando o GPS. Eu gosto de implementar um recurso que exibe a velocidade média dos usuários ao longo dos 1515 minutos. Algo como a carga da CPU no Unix. Eu posso calcular a média facilmente, acumulando a distância percorrida segundo a segundo e dividindo-a pelo tempo decorrido, mas não consigo pensar em uma maneira inteligente de calcular a média móvel. Obviamente, posso obter uma identificação feita, colocando a distância entre a última e a atual posição em uma matriz a cada segundo enquanto exclui o valor mais antigo. Estou procurando uma maneira limpa de fazer isso. Pediu 18 de dezembro às 21:51 Você precisará armazenar todos os valores para todo o período, como você já sugeriu. A razão é que você de alguma forma precisa esquecer as contribuições dos valores antigos para a média móvel. Você não pode fazer isso exatamente se você não sabe quais são esses valores onde (ou seja, se você não os armazena). No seu caso, 1 valor cada segundo por 15 minutos equivale a 15 60 900 pontos de dados, isso deve estar OK. Observe que você não precisa realizar uma soma em toda a matriz sempre que você atualizar: você pode calcular a nova média móvel a partir do número de pontos de dados, o novo valor e o valor que você está esquecendo nesse momento: Aqui, n é O número de pontos de dados (900 no seu caso), o xforget é o valor que você está esquecendo e xnew é o valor mais recente. Você então solta o xforget da frente da sua matriz e armazena xnew no final. Em vez de uma matriz, você pode querer usar uma fila implementada através de uma lista vinculada. Respondeu 18 de dezembro 11 às 22:24 Heres um caminho a seguir sobre isso que é bastante direto: se você é a posição de amostragem a cada segundo, mantenha 901 amostras em uma fila, isso é 15 minutos (e 1 extra). Posição 0 é a medida mais recente, efetivamente sua posição atual. Para uma velocidade média nos últimos X minutos: a velocidade é agora unidades de distância por segundo, converte para mph, ou kph ou quaisquer unidades que você precisar. Valores diferentes de X podem ser usados ​​para qualquer média entre 1 e 15 minutos. Respondido 18 de dezembro às 22:20 Sua resposta 2017 Stack Exchange, IncGPS Determinação do curso e da velocidade Tom Tom Clark, W3IWI Primeiro - deixe-me descrever como seu receptor de GPS mede a posição e a velocidade. O seu receptor rastreia (pelo menos) 4 satélites GPS. Os loops de rastreamento DSP incorporados no receptor devem bloquear duas partes do sinal de cada satélite - o código CA de 1.023 Mbs e a freqüência portadora de 1575,42 MHz. A operação dual DSP envolve dois loops de rastreamento - um CLL (Code Locked Loop) para o código CA e um PLL (Phase Locked Loop) que rastreia o operador. O CLL produz o tempo do sinal GPS WRT (em relação a) o relógio interno dos receptores - normalmente é expresso em unidades de distância chamadas Pseudo-Range (PR) e inclui o erro no relógio interno dos receptores adicionado ao real Alcance geométrico do satélite. Da mesma forma, o PLL mede a taxa de fase do portador (ou seja, a freqüência de satélite aparente em relação ao oscilador local dos receptores, geralmente derivada do mesmo oscilador de cristal que é usado como relógio de temporização) - isso é chamado de Taxa de Pseudo-Gama (PRR) E inclui o erro de freqüência dos receptores LO e a contribuição das mudanças Doppler associadas a todos os movimentos. O deslocamento Doppler inclui a soma vetorial da velocidade orbital de 7 kmsec dos satélites mais a velocidade de rotação de 400 ms (ao equador) da Terra mais os movimentos de seus receptores (em um carro em movimento, em receptores GPS precoce, quatro PRs de 4 satélites foram convertidos Em uma posição 3-D (XYZ, LatLonHgt ou qualquer outra coisa) mais a calibração da polarização temporária do seu receptor e 4 PRRs foram convertidos em uma velocidade 3-D mais uma medição do erro de freqüência do oscilador. Mais modernos receptores tomam Todos os dados PRPRR de todos os satélites N em vista para os últimos T segundos e alimenta o PRPRR 2NT amostras para uma única caixa negra matemática (BB) (geralmente um filtro de Kalman) para produzir uma estimativa sobredeterminada dos mesmos 8 parâmetros Assim, em receptores modernos, este BB está usando tanto a combinação de RPs atuais anteriores e PRRs de muitos satélites para melhorar a estimativa de Posição, Tempo de Velocidade (PVT). Portanto, a afirmação de Pauls sobre as velocidades sendo determinada por mudanças de posição é assim Rta, parcialmente correto, mas (quando você olha as equações dentro do BB), as freqüências Doppler aparentes medidas são ainda mais importantes. Além de 1: Parte desse tópico perguntou sobre as capacidades de velocidade dos vários receptores Garmin. Garmin teve dois tipos de receptores genéricos. O primeiro, incluindo o GPS-20, o GPS-38, o GPS-45, o GPS-45XL e o GPS-II original usaram uma CPU lenta para executar as funções de exibição do DSPBB. O DSP suportou apenas dois canais de receptor, que foram multiplexados sequencialmente entre os vários satélites. O Brain Dead CPU, aparentemente, não tinha potência suficiente para lidar com uma largura de banda PRR mais do que associada à velocidade de 100 MPH, de modo que esses receptores possuem um grampo de software que os torna inúteis em aviões. Os Garmins mais recentes (GPS-25, GPS-48, GPS-12, GPS-12XL, GPS-II, GPS-III, etc.) têm muito mais potência de CPU que o meu GPS-III usa um i386ex. Como resultado, a Garmin conseguiu lidar com até 12 satélites simultaneamente no DSP, o BB pode lidar com as velocidades do avião e o GPS-III ainda suporta o mapeamento das massas das estradas. Agora retornando ao tutorial - podemos responder a pergunta de erro speedvelocity. Os erros que você obtém em speedvelocity surgem de várias fontes. Os dois principais são a precisão inerente do sistema GPS (seu receptor mais os satélites GPS) e o ruído adicional do agravamento do DoD chamado disponibilidade seletiva (SA). Para olhar para o primeiro destes, vamos desligar SA e assumir que os satélites GPS são perfeitos. O comprimento de onda do portador de sinal GPS é de 20 cm, de modo que com um SNR modesto, o PLL no receptor pode ver (medir) a fase transportadora para cerca de 1 cm (120º de ciclo ou 20 graus de fase elétrica). Por simplicidade, assumimos que medimos por 1 segundo, então posso ver 1 cms de velocidade para um determinado satélite. Uma vez que normalmente não pensamos nessas unidades, 1 cmsec 36 metroshhor 0.023 mileshour. Para avaliar a geometria e o fato de que vemos múltiplos satélites, multiplicamos isso por HDOP (para velocidade horizontal) ou VDOP (para velocidade), uma vez que HDOP raramente é 3, isso significa que o erro de velocidade do sistema raramente é de 0,07 milhas de hora. E note que o fato de que estamos confiando na taxa de fase do operador para determinar a velocidade, estamos medindo a freqüência portadora L-band relativa (ou seja, Doppler offset) para 120º de um Hertz Now, vamos ver a SA. Em essência, o DoD degrada o desempenho dos relógios atômicos em órbita nos satélites GPS, colocando uma caminhonete programável na saída do relógio (10,23 MHz) e fazendo o relógio com uma seqüência pseudo-aleatória mágica que só eles sabem . Nossas medidas de amadores mostraram que eles empurraram a caminhonete em um amplo espectro de escalas de tempo, variando de alguns segundos a 12 horas, mas que a média de longo prazo é zero. Durante escalas de tempo mais longas, as variações afetam o tempo dos sinais de clock que o GPS transmite (como o código da CA de 1.023 Mbs), então nossas medidas de PR são barulhentas e vemos nossa posição aparente vagar. O DoD garantiu que os erros de posição devido à SA não excederão 100 metros (3 sigma, horizontal) para o intervalo de variações que adicionam, quando visto com um número razoável de satélites (como no HDOP Esta página foi modificada pela última vezGPS Speed: Quão preciso é o quão rápido eu posso? Quão alto posso ir aos receptores GPS exibir velocidade e calcular a velocidade usando algoritmos no filtro Kalman. A maioria dos receptores calcula a velocidade por uma combinação de movimento por unidade de tempo e computa a mudança doppler no pseudo alcance Os sinais dos satélites são ligados e a velocidade não instantânea. COMO PRECISO É A LEITURA DE VELOCIDADE No documento de introdução do equipamento do usuário NAVSTAR GPS Seção 3.7: os receptores GPS normalmente calculam a velocidade medindo a mudança de freqüência (deslocamento doppler) do GPS D - Operadora (s) de banda. A precisão da velocidade pode ser dependente do cenário, (multipath, visão obstruída do céu a partir do traço de um carro, montanhas, canyons da cidade, DOP incorreto), mas 0,2 ms por eixo (95) é alcançável A precisão da velocidade PPS e SPS é igual à PPS quando SA está desligada. A velocidade medida por um GPS é inerentemente de 3 dimensões, mas os receptores GPS do consumidor apenas relatam a velocidade 2D (horizontal) em sua leitura. As especificações da Garmins citam precisão de 0,1 m³, mas devido a problemas de degradação de sinal observados acima, talvez a precisão de 0,5 m de precisão em aplicações automotivas típicas seria o que você pode contar. COMO RÁPIDO PODE IR E TER MEU GPS READOUT MINHA VELOCIDADE Todos os receptores de GPS CONSUMIDORES atualmente conhecidos que conhecemos medirão a velocidade de 999 milhas por hora. Garmin (exclusivamente pelo que sabemos) fabricou as unidades G-38, G-40, G-45 e G-II (não PLUS), que tinham um limite de leitura de velocidade de 90 mph. Essas unidades são manufaturadas descontinuadas e não conhecemos nenhum outro fabricante que fez uma unidade que não iria para 999 mph. COMO ALTO POSSO IR E TENHO O MEU ALÉTICO DO GPS REDAUT Os regulamentos do departamento de defesa proíbem que os receptores de GPS padrão do consumidor funcionem acima de 60,000 pés e 999 mph (simultaneamente). A maioria dos receptores GPS parece estabelecer limites rígidos em 999 mph ou 60,000 pés.

Комментариев нет:

Отправить комментарий