Sunday 12 January 2020

Filtro de média móvel de 8 pontos


Eu tentei poucos techning média de execução para suavizar a alteração em dados ADC em AtMega48 para controlar luzes (PWM) ao girar um pote (ADC). Os filtros (pseudo códigos): Eu observei que os filtros são muito agradáveis. Mas lento em resposta que é esperado. Eu estou procurando uma técnica como média móvel exponencial. Disse para ser mais responsivo. Existe outro como este Como diz: onde está entre 0 e 1. Como codificar e otimizar aqueles sábios de código (sem usar flutuadores) Ou Como eu converter os flutuadores para correspondentes números inteiros para tornar o código pequeno, rápido e responsivo. E eu mantive 1 outro então que não trabalhará como esperado. Porque Idve para alterar todas as variáveis ​​para flutuar. Por favor não se concentre na seguinte declaração por enquanto, mas observe. Mantendo flutuadores na minha base de código está enchendo a memória do programa de 45 para 137, no caso de você pode implementar com sobrecarga mínima, limitando a frações binárias. Eu usei isso com bons resultados. Pegue o resultado existente, Shift it N lugares direito para dividir por 2N Subtraí-lo do resultado existente. Adicionar novos dados Isto não é tão rápido em mudar com uma mudança de passo nos dados de entrada como você pode desejar, mas é fácil de implementar e eficaz o suficiente como um filtro em muitos casos. Você pode acelerar sua resposta tomando decisões informais sobre seu comportamento em casos que são muito diferentes. Por exemplo, manter uma contagem de entradas seqüenciais que são mais do que algum limite diferente do resultado existente. Se essa contagem exceder algum limiar, então altere a razão de divisão N por algum fator. Por exemplo, N é geralmente 4- resultados são deslocados direito 4 vezes 16 dividir. Se a entrada é mais de xxx longe da resposta fazer apenas dois turnos à direita e multiplicar nova amostra por 4 antes de adicionar. Resposta da freqüência de um LTI sistema é a DTFT da resposta de impulso, a resposta de impulso de uma L-amostra de média móvel. Como o filtro de média móvel é FIR, a freqüência Resposta reduz à soma finita Podemos usar a identidade muito útil para escrever a resposta de freqüência como onde temos deixar ae menos jomega. N 0 e M L menos 1. Podemos estar interessados ​​na magnitude desta função para determinar quais freqüências passam pelo filtro sem atenuação e quais são atenuadas. Abaixo está um gráfico da magnitude desta função para L 4 (vermelho), 8 (verde) e 16 (azul). O eixo horizontal varia de zero a pi radianos por amostra. Observe que, em todos os três casos, a resposta de freqüência tem uma característica de passagem baixa. Uma componente constante (frequência zero) na entrada passa através do filtro sem ser atenuada. Determinadas frequências mais elevadas, tais como pi 2, são completamente eliminadas pelo filtro. No entanto, se a intenção era projetar um filtro lowpass, então não temos feito muito bem. Algumas das freqüências mais altas são atenuadas apenas por um fator de cerca de 110 (para a média móvel de 16 pontos) ou 13 (para a média móvel de quatro pontos). Podemos fazer muito melhor do que isso. O gráfico acima foi criado pelo seguinte código Matlab: omega 0: pi400: pi H4 (14) (1-exp (-iomega4)) (1-exp (-iomega)) H8 (18) (1-exp (- (1-exp (-iomega)) (1-exp (-iomega)) traço (omega, abs (H4) abs (H8) abs ( Quando se calcula uma média móvel em execução, colocar a média no período de tempo médio faz sentido No exemplo anterior, calculamos a média do primeiro 3 períodos de tempo e colocá-lo próximo ao período 3. Poderíamos ter colocado a média no meio do intervalo de tempo de três períodos, ou seja, próximo ao período 2. Isso funciona bem com períodos de tempo ímpares, mas não tão bom para mesmo períodos de tempo. Então, onde colocamos a primeira média móvel quando M4 Tecnicamente, a Média Móvel cairá em t 2,5, 3,5. Para evitar esse problema, suavizamos as MAs usando M 2. Assim, suavizamos os valores suavizados Se formos um número médio de termos, precisamos suavizar os valores suavizados. A tabela a seguir mostra os resultados usando M 4.

No comments:

Post a Comment