Sunday 4 August 2019

Filtro passa baixa médio móvel exponencial


Um método simples e geral para preencher os dados em falta, se você tiver uma série de dados completos, é usar regressão linear. Digamos que você tenha 1000 execuções de 5 em uma linha sem que falte. Configure o 1000 x 1 vetor y e 1000 x 4 matriz X: Regressão lhe dará 4 números a b c d que dão uma melhor combinação para suas 1000 linhas de dados mdash dados diferentes, diferentes a b c d. Então você usa estes a b c d para estimar (prever, interpolar) falta wt0. (Para os pesos humanos, espero que abcd seja todo 14.) (Há zilhões de livros e documentos sobre regressão, em todos os níveis. Para a conexão com a interpolação, no entanto, não conheço uma boa introdução qualquer um) To-use digital filter A média móvel exponencial (EMA) é um tipo de filtro de resposta de impulso infinito (IIR) que pode ser usado em muitas aplicações DSP incorporadas. Requer apenas uma pequena quantidade de RAM e poder de computação. O que é um Filter Filters vem em formas analógicas e digitais e existe para remover freqüências específicas de um sinal. Um filtro analógico comum é o filtro RC de passagem baixa mostrado abaixo. Os filtros analógicos são caracterizados pela resposta de freqüência que é o quanto as freqüências são atenuadas (resposta de magnitude) e deslocadas (resposta de fase). A resposta de freqüência pode ser analisada usando uma transformada de Laplace que define uma função de transferência no domínio S. Para o circuito acima, a função de transferência é dada por: Para R é igual a um quilo-ohm e C é igual a um microfarad, a resposta de magnitude é mostrada abaixo. Observe que o eixo dos x é logarítmico (cada marca é 10 vezes maior que a última). O eixo y está em decibéis (o que é uma função logarítmica da saída). A frequência de corte para este filtro é de 1000 rads ou 160 Hz. Este é o ponto em que menos da metade do poder em uma determinada freqüência é transferida da entrada para a saída do filtro. Os filtros analógicos devem ser usados ​​em projetos embutidos quando amostragem de um sinal usando um conversor analógico para digital (ADC). O ADC apenas captura freqüências que são até metade da freqüência de amostragem. Por exemplo, se o ADC adquire 320 amostras por segundo, o filtro acima (com uma freqüência de corte de 160Hz) é colocado entre o sinal ea entrada ADC para evitar aliasing (que é um fenômeno onde as freqüências mais altas aparecem no sinal amostrado como Freqüências mais baixas). Filtros digitais Os filtros digitais atenuam as freqüências em software em vez de usar componentes analógicos. Sua implementação inclui amostragem dos sinais analógicos com um ADC, em seguida, aplicando um algoritmo de software. Duas abordagens de design comuns para filtragem digital são filtros FIR e filtros IIR. Os filtros Filtros de Filtros finitos de Resposta a Impulso (FIR) utilizam um número finito de amostras para gerar a saída. Uma média móvel simples é um exemplo de um filtro FIR de baixa passagem. As freqüências mais altas são atenuadas porque a média suaviza o sinal. O filtro é finito porque a saída do filtro é determinada por um número finito de amostras de entrada. Como exemplo, um filtro de média móvel de 12 pontos acrescenta as 12 amostras mais recentes, em seguida, divide-se por 12. A saída de filtros IIR é determinada por (até) um número infinito de amostras de entrada. Filtros IIR Os filtros Infinite Impulse Response (IIR) são um tipo de filtro digital onde a saída é inifinetelyin teoria de qualquer forma influenciada por uma entrada. A média móvel exponencial é um exemplo de um filtro IIR de passagem baixa. Filtro médio exponencial exponencial Uma média móvel exponencial (EMA) aplica pesos exponenciais a cada amostra para calcular uma média. Embora isso pareça complicado, a equação conhecida em linguagem de filtragem digital como a equação de diferença para calcular a saída é simples. Na equação abaixo, y é a saída x é a entrada e alfa é uma constante que define a freqüência de corte. Para analisar como esse filtro afeta a freqüência da saída, a função de transferência do domínio Z é usada. A resposta de magnitude é mostrada abaixo para alfa igual a 0,5. O eixo dos e é, novamente, mostrado em decibéis. O eixo dos x é logarítmico de 0,001 a pi. A freqüência do mundo real se correlaciona com o eixo x, sendo zero a tensão CC e sendo igual a metade da frequência de amostragem. Quaisquer freqüências que são maiores que metade da freqüência de amostragem serão alias. Como mencionado, um filtro analógico pode garantir que praticamente todas as freqüências no sinal digital estão abaixo da metade da freqüência de amostragem. O filtro EMA é benéfico em projetos incorporados por dois motivos. Primeiro, é fácil ajustar a freqüência de corte. Diminuir o valor do alfa diminuirá a freqüência de corte do filtro como ilustrado pela comparação do gráfico alfa 0.5 acima com o gráfico abaixo, onde alfa 0.1. Em segundo lugar, o EMA é fácil de codificar e requer apenas uma pequena quantidade de energia e memória informática. A implementação do código do filtro usa a equação de diferença. Existem duas operações de múltiplas operações e uma operação de adição para cada saída. Isso ignora as operações necessárias para arredondar matemática de ponto fixo. Somente a amostra mais recente deve ser armazenada na RAM. Isto é substancialmente menor do que o uso de um filtro de média móvel simples com N pontos que requer N operações de multiplicação e adição, bem como N amostras a serem armazenadas na RAM. O código a seguir implementa o filtro EMA usando matemática de ponto fixo de 32 bits. O código abaixo é um exemplo de como usar a função acima. Os filtros de conclusão, tanto analógicos como digitais, são parte essencial dos projetos incorporados. Eles permitem aos desenvolvedores se livrar de freqüências indesejadas ao analisar a entrada do sensor. Para que os filtros digitais sejam úteis, os filtros analógicos devem remover todas as frequências acima da metade da frequência de amostragem. Os filtros digitais IIR podem ser ferramentas poderosas no design incorporado, onde os recursos são limitados. A média móvel exponencial (EMA) é um exemplo de um filtro que funciona bem em projetos embutidos devido aos requisitos de baixa capacidade de memória e computação. Filtro de passagem baixa Essas são principalmente notas. Não será completa em nenhum sentido. Existe para conter fragmentos de informações úteis. Pseudocódigo A média móvel ponderada exponencialmente (EWMA) é o nome para o que é provavelmente a mais fácil realização digital, no domínio do tempo, do passe baixo (de primeira ordem) em dados discretos. Este filtro suaviza usando uma média local em movimento, o que o torna um seguidor lento do sinal de entrada. Intuitivamente, ele responderá lentamente às mudanças rápidas (o conteúdo de alta freqüência) enquanto ainda segue a tendência geral do sinal (o conteúdo de baixa freqüência). É pesado por uma variável (veja x3b1) para poder variar sua sensibilidade. Em aplicativos que são amostrados em um intervalo regular (por exemplo, som), você pode relacionar x3b1 com o conteúdo de freqüência. Nesses casos, muitas vezes você quer calcular uma série de saída filtrada para uma série de entrada, fazendo um loop através de uma lista fazendo algo como: ou o equivalente: a última forma pode se sentir mais intuitiva: a mudança na saída filtrada é proporcional à quantidade de Muda e pesa pela força do filtro x3b1. Ambos podem ajudar a considerar como o uso da saída filtrada recente dá a inércia do sistema: um x3b1 menor (maior 1-x3b1 no primeiro) (também faz RC maior) significa que a saída se ajustará mais lenta e deve mostrar menos ruído (desde a A freqüência de corte é menor (verifique)). Um maior x3b1 (menor 1-x3b1) (RC menor) significa que a saída se ajustará mais rapidamente (terá menos inércia), mas será mais sensível ao ruído (uma vez que a freqüência de corte é maior (verifique)). Como o cálculo é local, os casos Onde você quer apenas o valor mais recente, pode evitar armazenar uma grande variedade, fazendo o seguinte para cada nova amostra (muitas vezes um monte de vezes seguidas, para se certificar de que podemos ajustar o suficiente). Em casos de amostragem não tão regular x3b1 está mais relacionado à velocidade de adaptação do que ao conteúdo de frequência. Ainda é relevante, mas as notas sobre o conteúdo de freqüência se aplicam de forma menos estrita. Você normalmente deseja implementar a arraymemory como flutuadores - mesmo se você retornar - para evitar problemas causados ​​por erros de arredondamento. A maior parte do problema: quando a alfadiferença (em si uma multiplicação flutuante) é inferior a 1, torna-se 0 em um elenco (truncatng) para um inteiro. Por exemplo, quando o alfa é 0,01, as diferenças de sinal menores que 100 farão um ajuste de 0 (via truncamento inteiro), de modo que o filtro nunca se ajustaria ao valor atual do ADC. O EWMA tem a palavra exponencial, porque cada nova saída filtrada efetivamente usa todos os valores antes dele e efetivamente com pesos exponencialmente decadentes. Veja os links do wikipedia para mais discussões. Um exemplo gráfico: Uma captura de tela do arduinoscope - um gráfico em movimento, com as amostras mais recentes à esquerda. O sinal bruto no topo é um valor de alguns segundos de uma amostragem ADC de um pino flutuante, com um dedo tocá-lo de vez em quando. Os outros são versões baixas do mesmo, aumentando os pontos fortes. Algumas coisas a observar sobre isso: o ajuste exponencial lento para respostas semelhantes a um passo (bem como um capacitor de carregamento - rapidamente, inicialmente, mais lento e lento) a supressão de grandes desvios de pontos. Que é certamente possível filtrar muito difícil (embora esse julgamento dependa muito da velocidade de amostragem e das freqüências de conteúdo de adaptação que sua finalidade precisa). Na segunda imagem, a oscilação de alcance total surge a meio caminho não tanto por causa da filtragem, mas também em grande parte porque a maioria das amostras em bruto por aí estão saturadas em qualquer extremidade da gama de ADCs. No x3b1, x3c4 e na frequência de corte, esta seção de artigos é um talão x2017, provavelmente uma pilha de notas de meia ordem, não está bem verificada, então pode ter bits incorretos. (Sinta-se livre para ignorar, corrigir ou me dizer) x3b1 é o fator de suavização, teoricamente entre 0,0 e 1,0, na prática geralmente lt0.2 e, muitas vezes, lt0.1 ou menor, porque acima, você apenas faz filtragem. No DSP geralmente é baseado em: x394 t. Escrito regularmente dt. O intervalo de tempo entre amostras (recíproco da taxa de amostragem) uma escolha de constante de tempo x3c4 (tau), aka RC (o último parece uma referência a um circuito resistor-plus-capacitor, que também faz passagem baixa. Especificamente, RC dá o tempo em Que o capacitor cobra Se você escolher um RC perto de dt, você terá alphas superior a 0,5, e também uma freqüência de corte que está perto da freqüência nyquist (acontece em 0.666 (verificar)), que filtra tão pouco que faz o filtro Na prática, muitas vezes você escolhe um RC que é pelo menos alguns múltiplos de dt, o que significa que x3b1 é da ordem de 0,1 ou menos. Quando a amostragem acontece estritamente regularmente, como é para o som e muitos outros aplicativos DSP A freqüência de corte é a freqüência do joelho, bem definida, sendo: por exemplo, quando RC0.002sec, o ponto de corte está na amostra de 200Hz, 2000Hz e 20000Hz, o que faz alphas de 0.7, 0.2 e 0.024, respectivamente. (Com a mesma velocidade de amostragem: o alfa inferior é, th E mais lento a adaptação a novos valores e menor a freqüência de corte efetiva) (verificar) Para um passo baixo de primeira ordem: em freqüências mais baixas, a resposta é quase completamente plana, a essa freqüência a resposta é -3dB (começou a diminuir em um Flexk suave) em frequências mais elevadas ele cai a 6dboctave (20dBdecade) As variações de ordem superior caem mais rápido e têm um joelho mais difícil. Observe que também haverá uma mudança de fase, que fica para trás da entrada. Depende da frequência que começa antes da queda da amplitude e será de -45 graus na frequência do joelho (verifique). Arduino exemplo Esta seção de artigos é um talão x2017 provavelmente uma pilha de notas de meia ordem, não está bem verificado, então pode ter bits incorretos. (Sinta-se livre para ignorar, corrigir ou me dizer) Esta é uma versão de uma peça de memória, pois quando você está interessado apenas no (mais recente) valor de saída. Semi-classificados

No comments:

Post a Comment