Moving average filter c program
É possível implementar uma média móvel em C sem a necessidade de uma janela de amostras? Descobri que eu posso otimizar um pouco, escolhendo um tamanho de janela que é uma potência de dois para permitir a mudança de bits em vez de dividir, mas não precisando um buffer seria legal. Existe uma maneira de expressar um novo resultado de média móvel apenas como uma função do resultado antigo e da nova amostra Definir um exemplo de média móvel, em uma janela de 4 amostras a ser: Adicionar nova amostra e: Uma média móvel pode ser implementada recursivamente , mas para um cálculo exato da média móvel, você deve se lembrar da amostra de entrada mais antiga na soma (ou seja, a no seu exemplo). Para um comprimento N média móvel você calcula: onde yn é o sinal de saída e xn é o sinal de entrada. Eq. (1) pode ser escrito recursivamente como Então você sempre precisa se lembrar da amostra xn-N para calcular (2). Como apontado por Conrad Turner, você pode usar uma janela exponencial (infinitamente lo