Tuesday, 10 October 2017

Filtro De Passagem Média Como Passa Baixa


Estou codificando algo no momento em que eu estou tendo um monte de valores ao longo do tempo de uma bússola de hardware Esta bússola é muito precisa e atualiza com muita freqüência, com o resultado de que se ele jiggles ligeiramente, eu acabar com o valor estranho que s wildly Inconsistente com seus vizinhos Eu quero alisar esses valores out. Having feito alguma leitura ao redor, parece que o que eu quero é um filtro passa-alta, um filtro passa-baixa ou uma média móvel Meio móvel eu posso começar para baixo com, apenas Manter um histórico dos últimos 5 valores ou o que quer que seja, e usar a média desses valores a jusante no meu código onde eu estava uma vez apenas usando o valor mais recente. Isso deve, eu acho, suavizar os jiggles muito bem, mas me parece que Provavelmente é bastante ineficiente, e este é provavelmente um daqueles Problemas Conhecidos a Programadores Adequados aos quais há uma solução de Matemática Inteligente realmente limpa. Eu sou, no entanto, um daqueles programadores autodidacta horríveis sem um pedaço de educação formal em qualquer coisa mesmo Vagamente relacionado com CompSci ou Math Leitura em torno de um pouco sugere que este pode ser um filtro de alta ou baixa passagem, mas eu não posso encontrar qualquer coisa que explica em termos compreensíveis para um hack como eu o que o efeito desses algoritmos seria sobre uma matriz de valores, deixe Sozinho como a matemática funciona A resposta dada aqui, por exemplo, tecnicamente responde a minha pergunta, mas apenas em termos compreensíveis para aqueles que provavelmente já sabem como resolver o problema. Seria uma pessoa muito bonita e inteligente quem poderia explicar a Tipo de problema que é, e como as soluções funcionam, em termos compreensíveis para um graduado Arts. asked setembro 21 10 at 13 01.Se a sua média móvel tem que ser longo, a fim de atingir o alisamento necessário, e você realmente não precisa Qualquer forma particular de kernel, então você está melhor se você usar uma média móvel exponencial decadência. Onde você escolher minúsculo para ser uma constante adequada, por exemplo, se você escolher minúsculo 1- 1 N, ele terá a mesma quantidade de média como uma janela De tamanho N, Mas distribuído de forma diferente sobre pontos mais antigos. De qualquer forma, uma vez que o próximo valor da média móvel depende apenas do anterior e seus dados, você não tem que manter uma fila ou qualquer coisa E você pode pensar nisso como fazer algo como, Bem, Tenho um novo ponto, mas não confio muito nisso, então vou manter 80 da minha velha estimativa da medição, e só confiar neste novo ponto de dados 20 Isso é praticamente o mesmo que dizer, Bem, eu Apenas confiar neste novo ponto 20, e eu vou usar 4 outros pontos que eu confio na mesma quantidade, exceto que em vez de tomar explicitamente os 4 outros pontos, você está supondo que a média que você fez na última vez foi sensato para que você possa usar o seu anterior Eu sei que este é 5 anos de atraso, mas obrigado por uma resposta incrível Estou trabalhando em um jogo onde o som muda com base na sua velocidade, mas devido à execução do jogo em um lento - ass computador, a velocidade iria flutuar descontroladamente, o que era bom para a direção, mas super irritante in ter Ms do som Esta foi uma solução realmente simples e barata para algo que eu pensei que seria um problema realmente complexo Adam Mar 16 15 às 20 20.Se você está tentando remover o valor ímpar ocasional, um filtro passa-baixa é o melhor do Três opções que você identificou Os filtros de passagem baixa permitem mudanças de baixa velocidade, como as causadas pela rotação de uma bússola à mão, ao mesmo tempo em que rejeitam mudanças de alta velocidade, como as causadas por solavancos na estrada, por exemplo. Provavelmente não será suficiente, uma vez que os efeitos de um único blip em seus dados afetará vários valores subseqüentes, dependendo do tamanho de sua janela média móvel. Se os valores ímpares são facilmente detectados, você pode até ser melhor com um glitch - O primeiro gráfico é o sinal de entrada, com uma falha desagradável O segundo gráfico mostra o efeito de uma média móvel de 10 amostras O gráfico final é uma combinação do algoritmo de 10- Amostra média e E simples algoritmo de detecção de falhas mostrado acima Quando a falha é detectada, a média de 10 amostras é usada em vez do valor real. Respondido Sep 21 10 em 13 38.Nicely explicado, e pontos de bônus para o gráfico Henry Cooke Set 22 10 at 0 50.Wow Seldomly viu uma resposta tão agradável Muis Jun 4 13 em 9 14. A média móvel é um filtro de passa baixo nomen Oct 21 13 em 19 36.Try um streaming streaming mediana em vez de kert 25 de abril 14 a 22 09.Moving média I Pode começar para baixo com mas me golpeia que é provavelmente completamente inefficient. There s realmente nenhuma razão uma média movente deve ser ineficiente Você mantem o número de pontos que de dados você quer em algum amortecedor como uma fila circular Em cada ponto novo dos dados, você estala O valor mais antigo e subtraí-lo de uma soma e empurrar o mais novo e adicioná-lo à soma Assim cada novo ponto de dados realmente só envolve um impulso pop, uma adição e uma subtração Sua média móvel é sempre esta soma deslocada dividida pelo número de Valores em seu buffer. Ele fica um pouco mais complicado se você re Recebendo dados simultaneamente a partir de vários segmentos, mas desde que seus dados vêm de um dispositivo de hardware que parece altamente duvidoso para mim. Oh e também terrível autodidata programadores unite. The média móvel parecia ineficiente para mim, porque você tem que armazenar um buffer de valores - melhor apenas fazer algumas matemáticas inteligentes com o seu valor de entrada e valor de trabalho atual Eu acho que é como a média móvel exponencial funciona Uma otimização que eu vi para este tipo de média móvel envolve o uso de uma fila de comprimento fixo um ponteiro para onde você está Que fila, e apenas embrulhando o ponteiro ao redor com ou um Voila nenhum impulso caro empurrar para os amadores, irmão Henry Cooke 22 de setembro 10 em 0 54. Henry Para uma média móvel straight-up você precisa do buffer simplesmente para que você Saber o valor obtém estourou quando o próximo valor ser empurrado Dito isto, a fila de comprimento fixo um ponteiro que você está descrevendo é exatamente o que eu quis dizer por fila circular Isso é por que eu estava dizendo que não é ineficiente O que você acha que eu Significava E se a sua resposta é uma matriz que muda seus valores de volta em cada remoção indexada como std vetor em C bem, então, eu estou tão machucado Eu nem quero falar com você mais Dan Tao 22 Set 10 em 1 58. Henry Eu não sei sobre o AS3, mas um programador Java tem coleções como CircularQueue em sua disposição Eu não sou um desenvolvedor Java, então eu tenho certeza que existem melhores exemplos lá fora, que é apenas o que eu encontrei a partir de uma pesquisa rápida do Google, que implementa Precisamente a funcionalidade que estamos falando Eu estou bastante confiante a maioria das linguagens de médio e baixo nível com bibliotecas padrão têm algo semelhante, por exemplo, lá s Queue T Enfim, eu era a filosofia de mim mesmo, então tudo é perdoado Dan Tao Sep 22 10 at 12 44. Uma média móvel em decadência exponencial pode ser calculada manualmente com apenas a tendência se você usar os valores apropriados Veja para uma idéia sobre como fazer isso rapidamente com uma caneta e papel se você estiver procurando exponencialmente suavizada média móvel com 10 suavização Mas desde que você tem Um computador, você provavelmente quer fazer deslocamento binário em oposição a deslocamento decimal. Desta forma, tudo que você precisa é uma variável para o seu valor atual e um para a média A próxima média pode então ser calculada a partir de that. answered Set 21 10 at Uma técnica chamada de porta de intervalo que funciona bem com amostras espúrias de baixa ocorrência, assumindo o uso de uma das técnicas de filtro mencionadas acima, média móvel, exponencial, uma vez que você tenha uma história suficiente, você pode testar a nova entrada Antes de ser adicionada à computação. É necessário algum conhecimento da taxa máxima de mudança razoável do sinal, a amostra bruta é comparada ao valor mais recente suavizado e se o valor absoluto dessa diferença é Maior do que o intervalo permitido, essa amostra é descartada ou substituída por alguma heurística, por exemplo, uma previsão baseada no diferencial de declive ou o valor de predição de tendência de dupla compensação exponencial. 16 em 6 56.Moving Average Filter. O MovingAverageFilter implementa um filtro de média móvel de passagem baixa O MovingAverageFilter é parte do Preprocessing Modules. An exemplo de um sinal de onda senoidal aleatória de ruído filtrada usando um filtro de média móvel O sinal vermelho é o ruído do sinal original , O sinal verde é o sinal filtrado usando um filtro de média móvel com um tamanho de janela de 5 eo sinal azul é o sinal filtrado usando um filtro de média móvel com um tamanho de janela de 20. O Filtro de Movimentação é bom para remover uma pequena quantidade de Ruído de alta freqüência a partir de um sinal de dimensão N. A principal desvantagem do MovingAverageFilter é que, a fim de filtrar significativamente o ruído de alta freqüência, o tamanho da janela do filtro precisa ser grande O problema de ter uma grande janela de filtro é que isso irá induzir Uma latência grande em qualquer sinal que passa através do filtro, o que pode não ser vantajoso para aplicações em tempo real Se você achar que você precisa de uma grande janela de filtro para f Ilter out ruído de alta freqüência ea latência induzida por este tamanho de janela não é adequado para o seu aplicativo em tempo real, então você pode querer tentar um filtro de média móvel duplo ou filtro de passagem baixa instead. Example Código. GRT MovingAverageFilter Exemplo Este exemplo demonstra como criar e usar o GRT MovingAverageFilter PreProcessing Module. O MovingAverageFilter implementa um filtro de média móvel passe baixo. Neste exemplo, criamos uma instância de um MovingAverageFilter e usá-lo para filtrar alguns dados fictícios, gerados a partir de um seno Wave random noise O sinal de teste e os sinais filtrados são salvos em um arquivo para que você possa traçar os resultados em Matlab, Excel, etc, se necessário. Este exemplo mostra como - Criar uma nova instância MovingAverageFilter com um tamanho de janela específica para um 1 - Filtrar alguns dados usando o MovingAverageFilter - Salvar as configurações MovingAverageFilter em um arquivo - Carregar as configurações MovingAverageFilter de um arquivo. Incluem GRT h usando namespace GRT. int main int argc const char argv Criar uma nova instância de um filtro de média móvel com um tamanho de janela de 5 para um sinal de 1 dimensão MovingAverageFilter filter 5 1. Criar e abrir um arquivo para salvar o arquivo fstream de dados Arquivo aberto fstream out. Gerar algum ruído de onda senoidal de dados e filtrá-lo x 0 const UINT M 1000 Aleatório aleatório para UINT i 0 i M i sinal duplo sin x aleatório getRandomNumberUniform - 0 2 0 2.double filterValue filter filter signal. file sinal t filterValue endl. x TWOPI double M 10. Feche o ficheiro de arquivo fechar. Salve as configurações de filtro em um filtro de arquivo saveSettingsToFile. Podemos então carregar as configurações mais tarde, se necessário filtro loadSettingsFromFile. return EXITSUCCESS. The MovingAverageFilter também funciona com qualquer sinal N dimensional. Criar uma nova instância do MovingAverageFilter com um tamanho de janela de 10 para um sinal tridimensional MovingAverageFilter filtro 10 3. O valor que você deseja filtrar dados vetoriais duplos 3 dados 0 0 Obter valor de dados do sensor 1 0 Obter valor de dados do sensor 2 0 Obter valor do sensor. Filtrar o filtro de sinal double filterValue filter filter data. Code Resources. Moving Filtro de filtragem média Filter. Loading O filtro de média móvel é um simples Low Pass FIR filtro de resposta de impulso finito comumente usado para suavizar uma matriz de sinal de dados amostrados Toma M amostras de entrada Em um momento e ter a média dessas M-amostras e produz um único ponto de saída É um muito simples LPF Low Pass Filter estrutura que vem a calhar para cientistas e engenheiros para filtrar indesejados ruidoso componente dos dados pretendidos. Como o comprimento do filtro aumenta O parâmetro M a suavidade da saída aumenta, enquanto que as transições nítidas nos dados são feitas cada vez mais sem corte Isso implica que este filtro tem excelente domínio tempo resposta, mas uma má resposta de freqüência. O filtro MA executar três importantes functions.1 leva M entrada Pontos, calcula a média desses pontos M e produz um único ponto de saída 2 Devido aos cálculos de cálculo envolvidos, o filtro introduz um Quantidade definida de atraso 3 O filtro funciona como um filtro de passa-baixa com resposta de domínio de freqüência pobre e uma resposta de domínio de tempo bom. Matlab código. Following matlab código simula a resposta de domínio de tempo de um M-ponto Moving Average filtro e também traça a resposta de freqüência Para vários filtros lengths. Time Domain Response. Input to MA filtro.3-point MA filtro output. Input to Movendo média filter. Response de 3 pontos Filtro de média móvel. De filtro de média de 51 pontos Moving. Response de 101 pontos Filtro de média móvel. Filtragem do filtro MA de 501 pontos. Resposta de 501 pontos Filtro médio móvel. No primeiro gráfico, temos a entrada que está entrando no filtro de média móvel The A entrada é ruidosa e nosso objetivo é reduzir o ruído A próxima figura é a resposta de saída de um filtro de média móvel de 3 pontos Pode-se deduzir da figura que o filtro de média móvel de 3 pontos não tem feito muito na filtragem do ruído Aumentamos a Filtro toca a 51 pontos e podemos ver que o ruído na saída reduziu muito, que é descrito na figura seguinte. Resposta de freqüência de Moving Average Filtros de vários lengths. We aumentar as torneiras mais para 101 e 501 e podemos Observe que mesmo que o ruído é quase zero, as transições são atenuadas drasticamente observar a inclinação em ambos os lados do sinal e compará-los com a transição de parede de tijolo ideal em nossa resposta input. Frequency. From a resposta de freqüência pode ser Afirmou que o roll-off é muito lento ea atenuação de banda de parada não é bom Dada esta atenuação de banda de parada, claramente, o filtro de média móvel não pode separar uma banda de freqüências de outro Como sabemos que um bom desempenho no domínio do tempo resulta em Baixo desempenho no domínio da freqüência, e vice-versa Em resumo, a média móvel é um filtro de suavização excepcionalmente bom a ação no domínio do tempo, mas um filtro low-pass excepcionalmente ruim a ação no fr Domínio equency. External Links. Recommended Books. Primary Sidebar.

No comments:

Post a Comment