Saturday 18 November 2017

Simple moving average arduino no Brasil


Estou trabalhando em um robô móvel controlado através de um link sem fio de 2,4 GHz. O receptor está conectado ao Arduino Uno que serve a bordo como o controlador principal. O canal de entrada mais crítico (e principal) proveniente do receptor produz um sinal muito ruidoso, o que leva a muitas pequenas mudanças na saída dos atuadores, mesmo que não sejam necessárias. Estou à procura de bibliotecas que podem realizar o suavização eficiente. Existem algumas bibliotecas de suficiência de sinal disponíveis para o Arduino (Uno), solicitado em 16 de fevereiro às 13:57. Creio que vejo muitas picos de ruído de amostra única em seu sinal ruidoso. O filtro médio é melhor para se livrar de picos de ruído de amostra única do que qualquer filtro linear. (É melhor do que qualquer filtro passa-baixa, média móvel, média móvel ponderada, etc. em termos de tempo de resposta e sua capacidade de ignorar esses valores abertos de picos de ruído de amostra única). Existem, de fato, muitas bibliotecas de suavização de sinais para o Arduino, muitas das quais incluem um filtro mediano. Bibliotecas de suavização de sinal no arduino. cc: bibliotecas de suavização de sinal no github: Alguma coisa assim funciona no seu robô (A mediana de 3 requer muito pouca energia da CPU e, portanto, rápida): você pode filtrar isso digitalmente usando um baixo Filtro de passagem: mude o 0,99 para alterar a freqüência de corte (mais perto de 1,0 é menor freqüência). A expressão real desse valor é exp (-2piffs) onde f é a frequência de corte desejada e fs é a frequência em que os dados são amostrados. Outro tipo de filtro digital é um filtro de eventos. Funciona bem em dados que têm valores esportivos, e. 9,9,8,10,9,25,9. Um filtro de eventos retorna o valor mais freqüente. Estatisticamente este é o modo. As médias estatísticas, como Mean, Mode, etc., podem ser calculadas usando a Biblioteca Média Arduino. Um exemplo tirado da página da Biblioteca Arduino referida: Esta é uma coleção de rotinas para a realização de análises matemáticas de arrays de números. Suporte de função atual: todas as funções estão totalmente sobrecarregadas para suportar os seguintes tipos de dados: com a exceção de stddev () eles retornam o mesmo tipo de dados que a matriz. Uma série de valores int retorna um único int. Stddev () sempre retorna um flutuador. Todas as funções, exceto rollingAverage (), levam dois argumentos. A primeira é a matriz para trabalhar. O segundo é o número de entradas na matriz. RollingAverage () toma um terceiro argumento - a nova entrada para adicionar à matriz. Formato médio do rolamento: média de rodagemAmbra (historyarray, sicecount, valor) Adiciona valor ao array historyarray deslocando todos os valores para baixo em um lugar. A média média é retornada. Formato: média média (array, sicecount) Calcula a média média dos valores na matriz. Slicecount é o número de entradas na matriz. Formato: modo médio (array, sicecount) Localiza o número mais comum na matriz. Formato: max máximo (array, slicecount) Localiza o maior valor na matriz. Formato: min mínimo (array, sicecount) Localiza o menor valor na matriz. Formato do desvio padrão: desvio stddev (array, sicecount) O desvio padrão é a raiz quadrada da média da soma dos quadrados da diferença entre cada ponto de dados e a média média da matriz. Essa é a única função que não retorna o mesmo tipo de dados que a matriz. O desvio padrão é sempre retornado como um flutuador.

No comments:

Post a Comment