Sunday 20 August 2017

Filtro de média móvel exponencial


Assumir a primeira ordem IIR Filter. Yn alfa xn 1 - alfa yn - 1.Como posso escolher o parâmetro alfa st o IIR aproxima o melhor possível o FIR que é a média aritmética das últimas k amostras. Quando n em k, infty, significando a entrada para o IIR pode ser mais longo do que k e ainda eu gostaria de ter a melhor aproximação da média das últimas k entradas. Eu sei que o IIR tem resposta de impulso infinita, daí eu estou procurando a melhor aproximação que eu seria feliz para a solução analítica se ele É para ou. Como poderia esta otimização problemas podem ser resolvidos dado apenas 1 ª ordem IIR. asked Oct 6 11 at 13 15. Deve ter de seguir yn alfa xn 1 - alfa yn - 1 precisamente Phonon Oct 6 11 at 13 32.This É obrigado a tornar-se uma aproximação muito pobre Você não pode pagar nada mais do que uma primeira ordem IIR leftaroundabout Oct 6 11 em 13 42. Você pode querer editar a sua pergunta para que você não use yn para significar duas coisas diferentes, por exemplo, o Segunda equação exibida poderia ler zn frac xn cdots frac x nk 1, e você pode querer dizer Qual é exatamente o seu critério de tão bom quanto possível, por exemplo, você quer que vert yn - zn vert seja o menor possível para todos n, ou vert yn - zn vert 2 seja o menor possível para todos n Dilip Sarwate Oct 6 11 Em 13 45. niaren Eu sei que este é um post antigo, por isso, se você pode se lembrar como é a sua função f derivado eu codifiquei uma coisa semelhante, mas usando as funções complexas de transferência para FIR H1 e IIR H2 e, em seguida, fazendo sum abs H1 - H2 2 Eu comparei isso com a sua soma fj, mas obter resultados resultantes diferentes Pensamento eu perguntaria antes de arar através da matemática Dom Jun 7 13 em 13 47.OK, vamos tentar obter o melhor começo yn alfa xn 1 - alfa yn - 1 Alfa xn 1 alfa alfa x n 1 1 alfa 2 alfa alfa x n-1 1 alfa 2 alfa x n-2 1 - alfa 3 yn - 3 fim de modo que o coeficiente de x Nm é alpha 1- alpha m. O próximo passo é tomar derivativos e equacionar a zero. Olhando para um gráfico do derivado J para K 1000 e alfa de 0 a 1, parece que o problema como eu ve set Ele está mal posicionado, porque a melhor resposta é alfa. Eu acho que há um erro aqui. A maneira como deveria ser de acordo com meus cálculos é. Usando o seguinte código no MATLAB produz algo equivalente, embora diferente. Mínimo. Então vamos supor que realmente só nos importamos com a aproximação sobre o comprimento de suporte do filtro FIR. Nesse caso, o problema de otimização é apenas J2 alfa alfa alfa alfa m - frac 2.Plotando J2 alfa para vários valores de K versus alfa resulta na data nas parcelas e tabela abaixo. Para K 8 alfa 0 1533333 Para K 16 alfa 0 08 Para K 24 alfa 0 0533333 Para K 32 alfa 0 04 Para K 40 alfa 0 0333333 Para K 48 alfa 0 0266667 Para K 56 alpha 0 0233333 Para K 64 alpha 0 02 Para K 72 alpha 0 0166667. As linhas tracejadas vermelhas são 1 K e as linhas verdes são alfa, o valor de alfa que minimiza J2 alfa escolhido de tt alfa 0 01 1 3. Há uma discussão agradável deste problema em Processamento de Sinal Embedded com o Micro Signal Archite Cture aproximadamente entre as páginas 63 e 69 Na página 63 inclui uma derivação do filtro de média móvel recursiva exata que niaren deu em sua resposta. Por conveniência com relação à discussão a seguir, corresponde à seguinte equação de diferença. A aproximação que coloca a Filtro para o formulário que você especificou requer assumindo que x aproximadamente y, porque e eu cito de pg 68 y é a média de xn amostras Essa aproximação nos permite simplificar a equação diferença anterior como follows. Setting alfa, chegamos à sua forma original, Y alpha xn 1- alpha y, o que mostra que o coeficiente que você quer com relação a esta aproximação é exatamente 1 em cima de onde N é o número de samples. Is esta aproximação o melhor em algum respeito É certamente elegante Aqui está como a resposta de magnitude Compara-se a 44 1kHz para N 3, e à medida que N aumenta para aproximação de 10 em azul. Como a resposta de Peter sugere, aproximar um filtro FIR com um filtro recursivo pode ser problemático sob um Norma de mínimos quadrados Uma extensa discussão sobre como resolver esse problema em geral pode ser encontrada na tese de JOS, Técnicas para Design de Filtros Digitais e Identificação de Sistemas com Aplicação ao Violino. Ele defende o uso da Norma Hankel, mas nos casos em que a fase Resposta não importa, ele também abrange Kopec s Método, que pode funcionar bem neste caso e usa uma norma L 2 Uma ampla visão geral das técnicas na tese pode ser encontrada aqui Eles podem render outras aproximações interessantes. Um Easy-to - Use a Filtro Digital. 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 tanto analógico e Digitais e existem para remover freqüências específicas de um sinal Um filtro analógico comum é o filtro RC passa baixo mostrado abaixo. Filtros analógicos são caracterizados por sua resposta de freqüência que é o quanto as freqüências Es resposta de magnitude atenuada e resposta de fase deslocada 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. Note que o eixo x é logarítmico cada marca é 10 vezes maior do que o último O eixo y é em decibéis que é uma função logarítmica da saída A frequência de corte para este Filtro é 1000 rads ou 160 Hz Este é o ponto onde menos da metade da potência em uma dada freqüência é transferida da entrada para a saída do filtro. Filtros analógicos devem ser usados ​​em projetos incorporados quando a amostragem de um sinal usando um analógico para Conversor digital ADC O ADC só 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 si Gnal ea entrada de ADC para impedir o aliasing que é um fenômeno onde as freqüências mais elevadas aparecem no sinal amostrado como freqüências mais baixas. Os filtros digitais atenuam freqüências no software um pouco do que usando componentes análogos Sua execução inclui amostragem os sinais análogos com um ADC então Aplicando um algoritmo de software Duas abordagens de projeto comuns para a filtragem digital são filtros FIR e IIR filters. FIR Filters. Finite Resposta Impulse FIR filtros usam um número finito de amostras para gerar a saída Uma média móvel simples é um exemplo de um filtro passa baixa FIR Higher As freqüências são atenuadas porque a média alisa o sinal O filtro é finito porque a saída do filtro é determinada por um número finito de amostras de entrada Como um exemplo, um filtro de média móvel de 12 pontos adiciona as 12 amostras mais recentes e depois divide por 12 A saída de filtros IIR é determinada por até um número infinito de amostras de entrada. IIR Filters. Infinite Impulse Respons E os filtros IIR são um tipo de filtro digital onde a saída é inifinely na teoria de qualquer maneira influenciada por uma entrada A média móvel exponencial é um exemplo de um filtro IIR passa baixo. Filtro Médio exponencial de Movimento. Uma média móvel exponencial EMA aplica pesos exponenciais a cada Na equação abaixo, y é a saída x é a entrada e alfa é uma constante que define o valor da saída. Freqüência de corte. Para analisar como esse filtro afeta a freqüência da saída, a função de transferência de domínio Z é usada. A resposta de magnitude é mostrada abaixo para alfa igual a 0. O eixo y é, novamente, mostrado em decibéis. O eixo é logarítmico de 0 001 a pi A freqüência do mundo real mapeia para o eixo x com zero sendo a tensão DC e pi sendo igual a metade da freqüência de amostragem Qualquer freqüência que é maior que a metade da amostragem A freqüência será aliased Como mencionado, um filtro analógico pode garantir 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 embutidos por dois motivos Primeiro, é fácil ajustar a freqüência de corte Diminuir o valor De alfa irá diminuir a freqüência de corte do filtro como ilustrado pela comparação do gráfico alfa 0 5 acima para o gráfico abaixo, onde alfa 0 1.Segundo, o EMA é fácil de codificar e requer apenas uma pequena quantidade de poder de computação e memória O código A implementação do filtro usa a equação de diferença Existem duas operações de multiplicação e uma operação de adição para cada saída que ignora as operações necessárias para arredondar matemática de ponto fixo Somente a amostra mais recente deve ser armazenada na RAM Isso é substancialmente menor do que usando uma média móvel simples Filtro com N pontos que requer N multiplicação e operações de adição, bem como N amostras para ser armazenado em RAM O código a seguir implementa o EMA Filtro usando o math do ponto fixo de 32 bocados. O código abaixo é um exemplo de como usar a função acima. Filtros, análogos e digitais, são uma parte essencial de projetos incorporados permitem que os colaboradores livrem-se 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 freqüê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 EMA exponencial móvel é um exemplo de um filtro que funciona bem em projetos incorporados Devido à baixa memória e os requisitos de energia de computação. Filtros FIR, filtros IIR e equação de diferença de coeficientes constantes lineares. Filtros FIR de média movente. Nós discutimos sistemas nos quais cada amostra da saída é uma soma ponderada de certas As amostras da entrada. Tomemos um sistema de soma ponderada causal, onde causal significa que uma determinada amostra de saída depende apenas da amostra de entrada corrente e outras inpu Ts mais cedo na seqüência Nem os sistemas lineares em geral, nem os sistemas de resposta de impulso finito em particular, precisam ser causais No entanto, a causalidade é conveniente para um tipo de análise que vamos explorar em breve. Se nós simbolizamos os inputs como valores de a O vetor xe as saídas como valores correspondentes de um vetor y então tal sistema pode ser escrito como. qual os valores de b são pesos aplicados às amostras de entrada atuais e anteriores para obter a amostra de saída corrente Podemos pensar na expressão como uma equação , Com o sinal de igual signo que é igual a, ou como uma instrução procedural, com a significação de signo igual. Vamos escrever a expressão para cada amostra de saída como um loop MATLAB de instruções de atribuição, onde x é um vetor N-comprimento de amostras de entrada, E b é um vetor de pesos M-length Para tratar o caso especial no início, vamos incorporar x em um vetor mais longo xhat cujas primeiras M-1 amostras são zero. Escreveremos a soma ponderada para cada yn como Um interior Produto, e fará algumas manipulações das entradas como inverter b para este fim. Este tipo de sistema é muitas vezes chamado de um filtro de média móvel, por razões óbvias. De nossas discussões anteriores, deve ser óbvio que tal sistema é linear e Shift-invariant Naturalmente, seria muito mais rápido usar a convolução convolução MATLAB conv em vez de nossa mafilt. Instead de considerar as primeiras M-1 amostras da entrada a ser zero, poderíamos considerá-los a ser o mesmo que o último M-1 amostras Isso é o mesmo que tratar a entrada como periódica Vamos usar cmafilt como o nome da função, uma pequena modificação da função mafilt anterior Na determinação da resposta de impulso de um sistema, geralmente não há diferença entre estes dois , Uma vez que todas as amostras não-iniciais da entrada são zero. Enquanto um sistema deste tipo é linear e invariante mudança, sabemos que o seu efeito sobre qualquer sinusóide será apenas a escala e deslocá-lo Aqui, é importante que usamos a circular A versão circular - Convolução é deslocada e escalada um pouco, enquanto a versão com convolução normal é distorcida no start. Let s ver o que a escala exacta e deslocamento é usando um fft. A entrada e saída têm amplitude apenas nas freqüências 1 e -1, Que é como deveria ser, uma vez que a entrada era uma sinusoid e o sistema era linear Os valores de saída são maiores por uma razão de 10 6251 8 1 3281 Este é o ganho do sistema. Que sobre a fase Nós só precisamos olhar Onde a amplitude não é zero. A entrada tem uma fase de pi 2, como pedimos A fase de saída é deslocada por um adicional de 1 0594 com sinal oposto para a freqüência negativa, ou cerca de 1 6 de um ciclo à direita, como Podemos ver no gráfico. Agora vamos tentar uma sinusoid com a mesma freqüência 1, mas em vez de amplitude 1 e fase pi 2, vamos tentar a amplitude 1 5 ea fase 0. Sabemos que apenas a freqüência 1 e -1 terão Amplitude não-zero, por isso vamos apenas olhar para eles. Again a relação de amplitude 15 9377 12 0000 é 1 3281 - e Como para o phase. it é novamente deslocado por 1 0594.Se esses exemplos são típicos, podemos prever o efeito da resposta do nosso sistema de impulso 1 2 3 4 5 em qualquer sinusoid com frequência 1 - a amplitude será aumentada por um fator De 1 3281 e a fase de frequência positiva será deslocada por 1 0594. Poderíamos continuar a calcular o efeito deste sistema sobre sinusóides de outras frequências pelos mesmos métodos. Mas existe uma maneira muito mais simples e que estabelece o ponto geral Dado que a convolução circular no domínio do tempo significa multiplicação no domínio da frequência, a partir daí segue-se. Em outras palavras, a DFT da resposta de impulso é a razão da DFT da saída para a DFT da entrada. Os coeficientes DFT são números complexos Dado que abs c1 c2 abs c1 abs c2 para todos os números complexos c1, c2, esta equação diz-nos que o espectro de amplitude da resposta ao impulso será sempre a relação do espectro de amplitude da saída para a do No caso de O espectro de fase, ângulo c1 c2 ângulo c1 - ângulo c2 para todos os c1, c2 com a condição de que as fases que diferem por n 2 pi são consideradas iguais Portanto, o espectro de fase da resposta ao impulso será sempre a diferença entre os espectros de fase da saída E a entrada com quaisquer correções de 2 pi são necessárias para manter o resultado entre-pi e pi. Podemos ver os efeitos de fase mais claramente se desempacotar a representação de fase, ou seja, se adicionar vários múltiplos de 2 pi conforme necessário para minimizar Os saltos que são produzidos pela natureza periódica da função de ângulo. Embora a amplitude ea fase são normalmente utilizados para apresentação gráfica e mesmo tabular, uma vez que eles são uma maneira intuitiva de pensar sobre os efeitos de um sistema sobre os vários componentes de freqüência de sua , Os coeficientes de Fourier complexos são mais úteis algébricamente, uma vez que permitem a expressão simples da relação. A abordagem geral que acabamos de ver funcionará com filtros arbitrários do tipo Como mencionado anteriormente, estes são muitas vezes chamados filtros de resposta de impulso finito, porque a resposta ao impulso é de tamanho finito, ou, por vezes, Moving Average filters. We pode determinar o As características de resposta de freqüência de tal filtro do FFT de sua resposta de impulso, e nós podemos também projetar filtros novos com características desejadas por IFFT de uma especificação da resposta de freqüência. Filtros de IIR de I. Retoregressive. Seria pouco ponto em ter nomes para filtros de FIR A menos que houvesse algum outro tipo s para distingui-los, e assim aqueles que estudaram pragmática não ficará surpreso ao saber que existe de fato um outro tipo principal de filtro linear invariante no tempo. Esses filtros são às vezes chamados de recursivos porque o valor de Saídas, bem como matérias entradas anteriores, embora os algoritmos são geralmente escritos usando construções iterativas Eles também são chamados Infinite Impulse Resposta Os filtros IIR, porque em geral a sua resposta a um impulso continua eternamente. Eles também são chamados filtros auto-regressivos, porque os coeficientes podem ser considerados como o resultado de fazer a regressão linear para expressar valores de sinal em função de valores de sinal anteriores. A relação entre os filtros FIR e IIR pode ser vista claramente em uma equação linear de diferença de coeficiente constante, i. e.setando uma soma ponderada de saídas igual a uma soma ponderada de entradas. Isto é como a equação que damos anteriormente para o filtro FIR causal, Exceto que, além da soma ponderada de entradas, também temos uma soma ponderada de outputs. If quisermos pensar nisso como um procedimento para gerar amostras de saída, precisamos reorganizar a equação para obter uma expressão para a amostra de saída atual Y n. Adopting a convenção de que a 1 1, por exemplo, escalando outros como e bs, podemos nos livrar do termo 1 a 1.ynb 1 xnb 2 x n-1 b Nb 1 x n-nb - a 2 y n - 1 - - a Na 1 y n-na. Se todos os outros tha Na 1 são zero, isto reduz a nosso amigo velho o filtro causal do FIR. Este é o caso geral de um filtro LTI causal, e é executado pelo filtro da função de MATLAB. Veja o caso onde os coeficientes de b outros que b 1 São zero em vez do caso FIR, onde o a é zero. Neste caso, a amostra de saída de corrente yn é calculada como uma combinação ponderada da amostra de entrada corrente xn e das amostras de saída anteriores y n-1, y n-2, Etc Para ter uma idéia do que acontece com esses filtros, vamos começar com o caso where. That é, a amostra de saída atual é a soma da amostra de entrada atual e metade da amostra de saída anterior. Vamos tomar um impulso de entrada através de um Poucos passos de tempo, um de cada vez. Deve ser claro neste momento que podemos facilmente escrever uma expressão para o valor de amostra saída nth é apenas. Se MATLAB contado a partir de 0, isso seria simplesmente 5 n. Como o que estamos calculando é a resposta ao impulso do sistema, temos demonstrado pelo exemplo que a resposta ao impulso pode de fato ter infinitamente muitas amostras não-zero. Para implementar este primeiro trivial Filtro de ordem no MATLAB, poderíamos usar filtro A chamada será semelhante a this. and o resultado é. Está este negócio realmente ainda linear. We pode olhar para isso empirically. For uma abordagem mais geral, considere o valor de uma amostra de saída y N. Por substituição sucessiva, podemos escrever isto como. Isto é exatamente como nosso velho amigo, a forma de convolução de um filtro FIR, com a resposta ao impulso fornecida pela expressão 5 k eo comprimento da resposta ao impulso sendo infinito. Assim, o mesmo Os argumentos que usamos para mostrar que os filtros FIR eram lineares agora se aplicam aqui. Até agora isso pode parecer um monte de barulho por não muito. O que é toda essa linha de investigação boa para. Vamos responder esta questão em etapas, começando com um Não é um Grande surpresa que podemos calcular uma amostra exponencial por multiplicação recursiva Vamos olhar para um filtro recursivo que faz algo menos óbvio Desta vez, vamos torná-lo um filtro de segunda ordem, de modo que a chamada para filtrar será do formulário. Por favor, Defina o segundo coeficiente de saída a2 para -2 cos 2 pi 40 eo terceiro coeficiente de saída a3 para 1 e observe a resposta ao impulso. Não é muito útil como filtro, na verdade, mas gera uma onda senoidal amostrada a partir de um impulso Com três multiplicações por amostra Para entender como e por que ele faz isso, e como os filtros recursivos podem ser projetados e analisados ​​no caso mais geral, precisamos dar um passo atrás e dar uma olhada em algumas outras propriedades de números complexos, No caminho para a compreensão da transformada z.

No comments:

Post a Comment