Filtro De Media Movel Recursiva




Filtro De Média Móvel RecursivaO cientista e os coordenadores guia para processamento de sinal digital Por Steven W. Smith, Ph. D. Uma grande vantagem do filtro de media movel e que ele pode ser implementado com um algoritmo que e muito rapido. Para entender esse algoritmo, imagine passar um sinal de entrada, x, atraves de um filtro de media movel de sete pontos para formar um sinal de saida, y. Agora, veja como dois pontos de saida adjacentes, y 50 e y 51, sao calculados: Estes sao quase os mesmos pontos de calculo x 48 a x 53 devem ser adicionados para y 50 e novamente para y 51. Se y 50 ja foi calculado , A maneira mais eficiente de calcular y 51 e: Uma vez que y 51 tenha sido encontrado usando y 50, entao y 52 pode ser calculado a partir da amostra y 51, e assim por diante. Depois que o primeiro ponto e calculado em y, todos os outros pontos podem ser encontrados com apenas uma unica adicao e subtracao por ponto. Isso pode ser expresso na equacao: Observe que esta equacao usa duas fontes de dados para calcular cada ponto na saida: pontos a partir da entrada e pontos previamente calculados a partir da saida. Isso e chamado de equacao recursiva, o que significa que o resultado de um calculo e usado em calculos futuros. (O termo recursivo tambem tem outros significados, especialmente na informatica). O Capitulo 19 discute uma variedade de filtros recursivos em mais detalhes. Esteja ciente de que o filtro recursivo medio movel e muito diferente dos filtros recursivos tipicos. Em particular, a maioria dos filtros recursivos tem uma resposta de impulso infinitamente longa (IIR), composta de sinusoides e exponenciais. A resposta de impulso da media movel e um pulso retangular (resposta de impulso finito, ou FIR). Este algoritmo e mais rapido que outros filtros digitais por varias razoes. Primeiro, ha apenas dois calculos por ponto, independentemente do comprimento do kernel do filtro. Segundo, a adicao e subtracao sao as unicas operacoes matematicas necessarias, enquanto a maioria dos filtros digitais requerem multiplicacao demorada. Em terceiro lugar, o esquema de indexacao e muito simples. Cada indice na Eq. 15-3 e encontrado adicionando ou subtraindo constantes inteiras que podem ser calculadas antes do inicio da filtragem (isto e, p e q). Em seguida, todo o algoritmo pode ser realizado com representacao de inteiro. Dependendo do hardware usado, inteiros podem ser mais do que uma ordem de magnitude mais rapida do que ponto flutuante. Surpreendentemente, a representacao de numeros inteiros funciona melhor do que o ponto flutuante com este algoritmo, alem de ser mais rapido. O erro round-off de aritmetica de ponto flutuante pode produzir resultados inesperados se voce nao for cuidadoso. Por exemplo, imagine um sinal de 10.000 amostras sendo filtrado com este metodo. A ultima amostra no sinal filtrado contem o erro acumulado de 10.000 adicoes e 10.000 subtraccoes. Isso aparece no sinal de saida como um deslocamento a deriva. Os inteiros nao tem esse problema porque nao ha nenhum erro de arredondamento na aritmetica. Se voce deve usar ponto flutuante com este algoritmo, o programa na Tabela 15-2 mostra como usar um acumulador de precisao dupla para eliminar esta deriva. Filtro de media movel e 0 Filtro FIR de comprimento N com todas as torneiras definidas igual a (1N) .160 E conhecida por sua pessima separacao de frequencia, mas excelente resposta no tempo - nesse sentido, ela fora - Bessels um filtro Bessel.160 Voce pode implementa-lo com SigmaStudios bloco FIR Como descrito aqui: Quanto mais tempo o filtro, mais suavizacao - mas o algoritmo de filtro FIR padrao usa muitas instrucoes para filtros enormes, porque ele tem que multiplicar coeficientes para cada tap.160 Isso e um desperdicio quando todos os coeficientes sao os mesmos .160 Como o capitulo 15 do livro de Steven W. Smiths aponta, voce pode fazer um filtro de media movel com uma tecnica recursiva que tem um toque antes e depois de um retardo de tamanho (N-1 ).160 Esse filtro aparece abaixo como parte de Um circuito de teste com fonte de sinal e Um filtro de Bessel para comparacao: 160160160160 Os coeficientes sao puxados para o bloco de ganho unico na entrada.160 A amostra presente adiciona a saida a medida que entra no atraso, a amostra atrasada subtrai da saida a medida que sai.160 O adicionador com o Feedback acumula essas adicoes e subtracoes para formar a saida - isso faz algo que e trivial em C, mas e de outra forma uma dor na GUI.160 Embora uma tecnica recursiva e usada, o filtro permanece um verdadeiro filtro FIR - o comprimento de seu impulso Resposta e definida apenas pelo seu atraso. 160160160160 Minha entrada de teste e uma onda quadrada com ruido adicionado.160 Os resultados filtrados aparecem como o traco superior em ambas as fotos - Primeiro o filtro de media movel: O filtro Bessel: 160160160160 O filtro de media movel permite mais ruido, mas melhor preserva a Forma de onda quadrada - nao rode os cantos e as inclinacoes para cima e para baixo sao simetricas (sua fase linear) .160 Ouvir as duas formas de onda com fones de ouvido mostra um resultado similar - mais ruido com o filtro de media movel, mas a caracteristica Som de uma onda quadrada vem through. Moore amp Consultoria Moore Servicos de Valores Mobiliarios e Analise Tecnica Filtros Digitais - Medias Movimentais exponenciais (1) Filtros digitais recursivos Uma maneira de estruturar filtros digitais em uma base mais eficiente e usar alguns dos resultados e aplica-lo Para a entrada. Isso torna o filtro recursivo a medida que a saida re ocorre na entrada, fazendo com que o filtro pareca infinito em comprimento. Devido a isso, esses filtros tambem tem o nome Infinite Impulse Response (IIR) filtros, como a resposta pode continuar para o infinito Neste caso, este filtro IIR muito simples tem apenas um estagio e tem uma porcentagem (pequena) da saida anterior. A equacao para este filtro digital simples de IIR e: Schematically o desenho deste filtro IIR muito simples olha como aquele abaixo O grafico abaixo mostra o que acontece. Serie 1, a entrada de passo fino, produz as seguintes saidas transientes tipicas. Com um valor de 9 para k, entao k 0,09, entao a Serie 2 (a linha grossa) e a primeira resposta transitoria tipica. Se a percentagem (k) for reduzida para 5 (k 0,05), entao a Serie 3 (a linha fina sob Serie 1) e o resultado esperado. Com k caiu mais para 1 (k 0,01), entao temos a serie 4 (a linha pontilhada bem sob as outras duas saidas) e a resposta. Todas essas saidas seguem respostas de tempo exponenciais. Assim, com um pequeno feedback nos mudamos o filtro nao recursivo bastante complexo em um filtro recursivo simples com muito a mesma resposta de frequencia, mas uma resposta de tempo diferente A forma de onda de saida do filtro IIR continua em eternidade (ao infinito) para convergir no estavel Valor, e e por isso que esses filtros obter o nome Infinite Impulse Response (IIR) filtros. Com o Technical Trading, o denominador comum e periodos (geralmente dias), por isso e necessario relacionar o fator recursivo (k) em um fator Periodo. Felizmente ha uma dada relacao direta e e atraves da formula como segue: Onde escolhemos k 0,09, esta formula converte para 21.2222 Periodos, e para k 0.05, esta formula converte a 39.0 Periodos e para k 0.01, esta formula converte a 199.0 Periodos. Voltando para tras, queremos realmente descobrir o fator k do Periodo e transpondo a formula torna-se: So para 11,0 Periodos entao k 0,16666666, para 21,0 Periodos entao k 0,090909 e para k 40,0 Periodos entao k 0,0487804 Tudo isso parece muito simples , Mas o relacionamento precisa ser amarrado. Voltando ao grafico, e obvio que a resposta ao tempo e um decaimento exponencial. Na Terra da Fisica, todas as acoes naturais seguem uma taxa exponencial de carga e decaimento. Preste atencao a um resplendor da cisterna: todo o varoosh no comeco e termina acima de um gotejamento (antes que o plugue caia dentro para reencher o tanque) Quando os farois do carro extinguem tornam-se escuros e escuros de uma maneira exponencial. E um fenomeno natural em toda parte Quando a chuva comeca e para de cair, a densidade da chuva ao longo do tempo e uma funcao exponencial, e segue as mesmas regras exponenciais de decaimento Voltar em Eletronica Terra declinios exponenciais sao muito comuns e os tempos de carga e descarga sao medidos em uma abordagem normalizada Chamado Constantes de Tempo (T). Uma constante de tempo descarrega para cerca de 37, dois para cerca de 14, tres para cerca de 5 quatro para cerca de 1,8 e cinco para cerca de 0,6 - o que e basicamente nada Quando componentes eletronicos carregam eles seguem o inverso da taxa de descarga, ou seja: 63, 86, 95 , 98.2, 99.4, etc. Voltando a equacao simples do Filtro Digital IIR onde esta respondendo a uma funcao Heaviside Step, a curva de carga tem a seguinte equacao: y (t) x (0). (1-exp - tT) Onde T tempo constante (ou Periodo) valor. O grafico dessa equacao se alinha exatamente com o filtro recursivo simples descrito acima, portanto, aplicando a funcao Heavisides Step (fazendo a variavel que varia de tempo a 1 em vez de 0) e entao substituindo os Periodos como fator de tempo t (39) no Diretamente acima da equacao, entao y (39) (1-exp-39T) 0,8646647 assim 0,1353352 exp -39T e ln (0,1353352) -2 assim exp -2 exp -39T entao -2 -39T e transposicao, T 19,5 Entao o que fez Tudo o que a matematica da High School significa significa basicamente que o numero especificado de periodos em um filtro recursivo simples e equivalente a duas (2) constantes de tempo. Em outras palavras, quando especificamos um filtro recursivo (digamos) de 100 dias, no 100? dia, a saida da resposta do filtro (a partir de uma entrada de passo) sera igual a de duas constantes de tempo (86 da quantidade maxima). Agora temos a matematica para prever com precisao a saida do filtro de qualquer entrada conhecida sem adivinhacao Obrigado, Oliver Heaviside e os matematicos mais cedo brilhante Agora, podemos usar sua matematica fundamental para calcular a resposta a uma rampa, eo erro tambem O grafico sobre O lado esquerdo abaixo mostra uma entrada de passo de 100 unidades sendo aplicada tanto a um filtro SMA20 como a um filtro EMA20, e as duas saidas sao claramente vistas. A partir da entrada de passo, a saida SMA20 sobe como uma rampa ate atinge o valor maximo, assim como um amplificador de taxa limitada slew O EMA20 sobe rapidamente, em seguida, cai exponencialmente para convergir assintoticamente na saida estavel. As duas saidas atravessam na marca 80, e esta e uma referencia a ser usada quando se compara uma miriade de outras respostas. O grafico do lado direito abaixo mostra uma resposta do filtro IIR a uma rampa de unidade (uma posicao vertical por passo horizontal). (Isto poderia ser visto como dizer 1 centavo por dia.) Desta vez k 0,15 para os Periodos 12,3333, ea Constante de Tempo (T) e, portanto, 6,1666667 Periodos. A Rampa de Unidade e a linha reta pontilhada fina inclinacao positiva e sob que e a resposta de saida de linha de espessura para a rampa, que tambem decolou e torna-se assintoticamente paralela a rampa. A distancia vertical entre estes dois e o erro. Entao agora sabemos que este filtro IIR simples tem uma resposta exponencial de primeira ordem, que tem um erro zero para um valor de entrada estavel e um erro constante conhecido para uma entrada de rampa. A formula para o erro e Erro Rk 1, onde R e a taxa de inclinacao da entrada. Substituindo k 0,15 nesta equacao da um erro infinito de 5,666666 e e exatamente o que o grafico mostra. Um filtro recursivo (IIR) na pratica A secao acima acaba de descrever o funcionamento interno do filtro recursivo mais simples, (filtro IIR), que apenas acontece de ser o funcionamento identico de uma media movel exponencial (EMA) e praticamente nada e alterado separadamente De algum nome Por exemplo, um EMA de 20 dias e realmente um filtro IIR com k 0.095238 e que nao deve ser surpresa. Agora tambem sabemos que a Constante de Tempo para um filtro EMA de 20 dias e, portanto, de 10 dias e que o fator de erro de rampa e de 9,5 (assumindo uma taxa de rampa de um centavo por dia). O grafico acima (tirado do MarketTools Chart) mostra a diferenca de resposta entre um SMA20 (Verde) e um EMA20 (Azul). A medida que o preco Close comeca a subir, o EMA inicialmente segue mais proximo e oscila enquanto o SMA20 desliza mais lentamente (rounder) e forma uma linha praticamente reta. Isso nao deve ser surpresa, pois sabemos que a SMA e muito menos reativa a mudancas recentes do que uma EMA. Voce pode ver claramente o erro que eles tem para uma rampa de precos e isso pode ser usado para uma vantagem ao fazer analise tecnica Este grafico tambem mostra as medias moveis rastreamento dos precos, mas com um preco muito semelhante compensacao (erro) causada pela virtualmente Taxa de variacao constante do preco durante um periodo limitado (neste caso). O problema com os precos e que existe um sistema de feedback que regula as variacoes de precos e este feedback e humano gerenciado que funciona como este: Por alguma razao, alguem ve que eles gostariam de comprar um estoque especifico, mas o preco e marginalmente maior do que Preco de negociacao anterior. Quando eles compram o estoque o novo preco e agora maior. Outros veem esse preco como demasiado elevado, correto ou ainda barato. Com este pensamento em mente, outros comerciantes usam os precos anteriores como uma referencia e tendem a corrigir esse preco de volta para o preco de referencia que cada um deles tem. Isso faz com que o preco flutuar de uma forma oscilatoria que tende a estabilizar com o tempo. Tudo nao e perdido, pois isso e importante para ser entendido que a tecnologia de media movel e um sistema de ordem 1, por agora ele pode ser usado no conhecimento de que se os precos estao em geral abaixo da media movel, entao os precos estao realmente caindo Com o tempo, e se os precos estao acima da media movel, entao os precos estao em geral aumentando com o tempo. Portanto, faz muito sentido para conhecer esta regra muito basica, pois significa que as acoes so para ser envolvido em sao aqueles com os precos acima da linha de media movel. Mas que constante de tempo deve ser usado para a media movel e porque Praticamente nenhum pacote de analise tecnica vem em qualquer lugar perto desta profundidade, e todos eles tratar SMA e EMA com uma falta real de compreensao. O problema e quase auto-explicativo em que praticamente todos os dados sao baseados em EOD e por causa disso, atravessar as medias moveis pode resolver a maioria dos sinais de compra-venda Em outras palavras, o avanco da analise tecnica parou como um onibus batendo um penhasco quando as medias moveis foram Resolvido com os dados EOD. Uma vez que firmemente estabelecido o fato de que um SMA e um EMA sao ambos os sistemas de ordem 1, e que ambos estes efetivamente minimizar o ruido de variacoes do comercio, nomeadamente os valores proximos Com base em dados EOD nao e surpresa que estas medias tem um uso como uma indicacao comprar ou nao comprar para titulos que tem qualquer forma de tendencia. Seu uso e uma aplicacao simples em que o erro entre o preco de fechamento real ea media movel quando positivo indicou que a seguranca deve ser prendido e o inverso. Este indicador e o mais primitivo de todos os indicadores tecnicos, e e anos luz alem de usar qualquer forma de indicacao gerada financeiramente para mostrar se um preco de seguranca esta subindo ou caindo em uma tendencia. O indicador realmente brilha quando a seguranca esta em uma tendencia, mas quando o preco paira ou flattens para fora tem um problema de indecisao. O grafico abaixo indica essa situacao, e e exemplificado por incluir uma funcao de comutacao para mostrar o que pode acontecer. A funcao de comutacao mostra os graficos de media movel de precos. No caso da esquerda, e um EMA12, e como o preco proximo flutua, o switch torna-se muito indeciso quando a tendencia de precos se estabiliza ou muda de direcao. Uma maneira de contornar o problema e usar uma media movel mais lenta como a EMA21, como mostrado no lado direito. O numero de pontos de indecisao e reduzido, o que significa que o numero de negocios inuteis seria significativamente reduzido, mas olhe mais perto e consideravel lucro corridas sao perdidas porque a media movel e muito tarde na mudanca. Em segundo plano ha um positivo em que o 12 e 21 EOD medias moveis sao mais suaves do que o EOD fechar e que por si so pode ser usado com vantagem. Duas medias moveis Ao comparar duas medias moveis (que em si ja sao suavizadas por seus proprios atributos), uma indicacao mais limpa pode ser obtida e pode oferecer algumas vantagens. Os graficos abaixo mostram alguns exemplos sobre a mesma seguranca para comparacao direta. O grafico acima a esquerda tem a mesma funcao de comutacao baseada em duas medias moveis EMA12 e EMA26 e ver que a indecisao e praticamente nula. Este e um passo positivo, mas um olhar mais atento sobre os pontos de mudanca real mostra que e muito conservador e, em muitos casos, ganhos consideraveis ??sao perdidos antes da decisao e tomada para retirar. Se nao fosse para este entao este poderia ser um indicador ideal do holdell baseado puramente em precos proximos dos numeros de EOD. O grafico acima a direita (tirado do OmniTrader) mostra uma exibicao de seis meses de um estoque e existem duas medias moveis exponenciais (EMAs) tambem no grafico. Neste caso particular, a media movel que abraca os precos das acoes e um EMA8 eo outro que converge lentamente no preco da acao e um EMA35. Este e um bom exemplo, uma vez que a EMA mais rapida tem o intervalo dos valores EOD do preco da acao que se cruzam em varias ocasioes. O mais lento EMA atinge mal as gamas de preco EOD. OmniTrader tem uma caracteristica muito agradavel em que cada indicador de teste pode ser definido para auto-otimizar-se para cada seguranca ao longo de um historico especificado (por exemplo, 250 dias de negociacao). Isso da aos indicadores uma boa chance de fornecer uma taxa de hit muito melhor do que voce normalmente obteria, simplesmente definindo os parametros indicadores voce mesmo. Neste caso, eles comecaram em EMA12 e EMA40 e decidiu EMA8 e EMA35 para um resultado ideal. O problema e o da incerteza, pois ambas as medias moveis convergem umas nas outras e nao tem um crossover limpo. Esta nao e uma questao importante, pois sabemos que tanto a SMA como a EMA sao sistemas de 1? ordem e por isso convergem assintoticamente em uma entrada constante, entao se um preco permanecer constante, entao as duas medias moveis convergirao para essa constante Valor, mas com taxas diferentes. O problema real e o do ruido (na verdade a flutuacao de precos sobre um valor constante) e isso pode fazer com que a media movel mais rapida para whipsaw sobre o mais estavel mais lento (mais) media movel. Existem varias solucoes para este problema, e cada um tem seus meritos. Multiplas Medias Moveis Estendendo-se sobre o tema das medias moveis de um para dois para muitos e uma progressao logica ea abordagem de Multiple Moving Averages e um conceito bastante simples de visualizar. Daryl Guppy inventou-lo e consiste em dez medias moveis em dois grupos que sao geometricamente espacados. O primeiro grupo e de curto prazo EMA3, EMA5, EMA7, EMA10 e EMA15, enquanto as medias moveis de longo prazo sao EMA30, EMA35, EMA40, EMA50 e EMA60. Para obter um visual sobre como ele olha, os dois graficos abaixo mostram as imagens gerais. No grafico a esquerda abaixo, as cinco medias moveis de longo prazo seguem linhas geralmente paralelas a medida que o preco das acoes se eleva, os precos entao se recuam e as linhas de media movel se expandem umas das outras e depois convergem e se expandem a medida que a nova tendencia E as medias moveis voltam a formar linhas paralelas. Olhando mais de perto no grafico da direita do mesmo estoque com o conjunto mais curto de medias moveis, torna-se obvio que quando as medias moveis exponenciais convergem ou divergem, entao algo esta prestes a acontecer A razao que essas medias moveis formam linhas paralelas efetivamente enquanto Uma tendencia em acontecer e que o erro do preco real a media movel e dependente do fator do gabarito no EMA. Em comparacao direta, o SMA baseado nas mesmas constantes de tempo e demonstrado abaixo: Os graficos acima mostram o mesmo arco-iris de curvas, mas todos com SMA em vez de EMA. E por causa da resposta de entrada nao linear a etapa que a EMA tem que faz com que as curvas convergem umas nas outras, onde o conjunto de curvas SMA nestes dois graficos inferiores claramente ultrapassa um ao outro. Guppy Multiplas Medias Moveis Daryl Guppy desenvolveu um arco-iris de multiplas medias moveis, chamado Guppy Moving Averages (GMA) que, quando colocado em um grafico de precos, convergem a medida que a tendencia comeca a acontecer, e convergem novamente a medida que a tendencia diminuiu, e Todo o resto do tempo eles sao divergentes Como e facil que com base em trafego EOD, Daryls EMA constantes sao, para o curto prazo: 3, 5, 8, 10, 12, 15, e para longo prazo 30, 35, 40, 45, 50 e 60. Para as constantes de curto prazo, eu acho que isso foi baseado em um conjunto aritmetico simples de EMAs que eram nominalmente 2,4 periodos separados e ajustados para o inteiro mais proximo para o periodo, resultando em: 3 , 5,4, 7,8, 10,2, 12,6 e 15,0 dando 3, 5, 8, 10, 13 e 15, com o 13 puxado de volta para 12. Parece-me que as constantes de longo prazo sao baseadas em outra progressao aritmetica com 55 desaparecidos Provavelmente porque ficou muito apertado la, e isso me diz que essa sequencia deve ter sido uma progressao geometrica em qualquer caso. Com cinco intervalos entre 30 e 60, o multiplicador e de cerca de 1,1487, pelo que a sequencia torna-se 30,00, 34,46, 39,59, 45,47, 52,23, 60,00 e trazendo isto para os Inteiros mais proximos da: 30, 34, 40, 45, 52, Dar um mesmo conjunto de longo prazo EMAs de uma progressao geometrica obter as constantes de longo prazo. Entao, por que eu estou viciado em progressoes geometricas, e por que eles ensinam essas coisas na escola? Bem, e assim, relacionamentos de vida sao realmente relacionados geometricamente tudo e uma proporcao de outras coisas, ate mesmo adicoes as familias sao geometricamente relacionadas nao aritmeticamente relacionadas com a larga escala. Eu sei que os professores nao me mostraram isso quando na escola e eu tive alguns professores fantasticos ensanguentados. De longe os melhores professores eram aqueles que tinham habilidades industriais e de negocios atraves da experiencia nao-escolar, e eram a inveja daqueles que nao. Enfim Para ver a imagem nao ha nada como um exemplo visual Os dois graficos acima dar exemplos de Guppy Moving Averages (GMMA), e estes sao Exponential Moving Averages, nao Simple Moving Averages. Interessante, como SMA ter uma resposta mais arredondada, porque nao overreact aos valores mais recentes como EMAs fazer. Ha duas familias destes e o lado esquerdo mostra a faixa de longo prazo longe dos precos e convergindo em mudancas. O lado direito mostra as medias moveis de curto prazo mais proximo dos precos (proximos). Indo para outra tangente, estabelecendo uma progressao geometrica baseada na raiz 2 como por uma lente de fotografia, uma sequencia tipica e 5, 7, 10, 14, 20, 28, 40, 56, 80, 113, 200 etc. Mao e baseada em EMA ea da direita e baseada em SMA. Como o SMA tem uma resposta transitoria linear, o traco geral e um pouco mais arredondado do que o EMA que tem uma resposta de decaimento conico, dai a pulverizacao de medias moveis exponenciais, em comparacao com o numero de cruzamentos com as medias moveis simples. Esta e uma ferramenta muito popular e arco-iris de Guppys dar um visual de alto impacto visual, e se e isso que voce esta procurando, entao e isso nao so e interessante assistir as diferentes medias moveis divergem e convergir, mas indo que um passo alem Calcular e mostrar que divergencia e convergencia e a proxima etapa evolutiva logica. Enquanto esses arco-iris de medias moveis tem um impacto visual usando dados EOD, quando se trata de dados de comercio e uma historia inteiramente diferente, como os incrementos sao muito menores por causa dos intervalos de tempo curtos, e isso da origem a realmente analisar a sequencia de crossovers , Uma vez que este escolhe a diferenca entre um comercio e um investimento, mas mais tarde Uma alternativa para recorrer ao comercio (ao vivo) dados e usar um filtro melhor - ou cascata (colocar um apos o outro) alguns filtros de primeira ordem em tentar fazer uma maior Perda na faixa de paragem com um aumento mais curto e linear risetime e EMAs em cascata e a proxima etapa de aventuraIm implementar um 80-72-64-48 multi passagem filtro de media movel para um sistema embutido em C e em ponto fixo. A implementacao e um buffer circular onde im manter uma soma corrente e calcular yn yn-1 xn-xn-M onde M e o comprimento de um filtro. Isso e feito para cada subfiltro com a saida de um servico como entrada para outro. Im escalando meus coeficientes por 2 o que me da coeficientes de comprimento 2 ou 2 dependendo do comprimento do filtro. Em seguida, o resultado e reduzido novamente por 2 para obter a saida correta. Agora, tudo parece bom em escalas de tempo curto, mas durante longos tempos eu obter uma deriva. A razao para a implementacao recursiva e salvar calculos em um processador incorporado. Eu inclui a imagem de alguns dos internals de meu filtro, isto e quando uma resposta da etapa e aplicada e nos podemos ver as funcoes da transferencia dos filtros que tomam a forma, quadrado, triangulo, aproximando entao um gaussian assim que o filtro esta trabalhando como esperado. Existe alguma maneira de corrigir isso, e onde e a fonte mais provavel disso. E este drift devido a um pouco se perder no deslocamento ou outra coisa. A deriva nao esta presente para as entradas de CC, mas para sinais de CA ele lentamente drifts. SOLUCAO: O problema estava no acumulador como sugeriu Robert nos comentarios. A questao era que um elemento do calculo tinha ido atraves de um deslocamento para cima e para baixo extra em comparacao com o resto, o que criou um deslocamento redondo que se acumulou. Perguntou 27 de abril as 21:12 e o seu acumulador yn sendo arredondado ou quantized de qualquer maneira voce deve se certificar de que o xn-M que e subtraido e exatamente o mesmo valor que xn que foi adicionado M amostras atras. Entao voce realmente quer fazer uma soma movel. Em vez de uma media movel e escala a saida de sua soma movel (com 1M) para obter a media. Isso e bastante factivel e ainda melhor feito em ponto fixo em vez de ponto flutuante. Ndash robert bristow-johnson 27 de abril as 22:52 quotScaling os coeficientes Eu suponho que voce divide por M apos cada etapa e que e o coeficiente que voce escala que e provavelmente a causa do deslocamento. Melhor entao dividir por prod Mi no final de todos os filtros. Voce precisa manter o controle das amplitudes internas embora como voce acabara por transbordar os acumuladores. No entanto, isso e facilmente resolvido atraves de aritmetica modulo (dos quais dois complemento e um caso especial). Ndash Oscar Apr 28 15 at 7:00 Oscar, este e um filtro de ponto fixo. Significado i so fazer aritmetica inteira. Para uma media movel de comprimento gt 1 com ganho 1, as constantes de filtro serao uma fraccao que nao e representavel em numeros inteiros. Assim, os coeficientes sao escalados para torna-los inteiros pela esquerda deslocando-os x muitos bits. Devido a isso a saida final tem que ser deslocada tambem para a direita por tantos bits. I nao pode manter uma soma correndo atraves de todos os 4 filtros sem restaurar a saida entre, o sinal de entrada e de 16 bits e com o coeficiente de dimensionamento e comprimentos Um unico filtro usa todo o meu espaco acumulador de 32 bits ndash user70614 Apr 28 15 at 8:20