Tuesday, 29 October 2019

Filtro de média móvel recursiva


O cientista e os coordenadores guia para processamento de sinal digital Por Steven W. Smith, Ph. D. Uma grande vantagem do filtro de média móvel é que ele pode ser implementado com um algoritmo que é muito rápido. Para entender esse algoritmo, imagine passar um sinal de entrada, x, através de um filtro de média móvel de sete pontos para formar um sinal de saída, y. Agora, veja como dois pontos de saída adjacentes, y 50 e y 51, são calculados: Estes são quase os mesmos pontos de cálculo x 48 a x 53 devem ser adicionados para y 50 e novamente para y 51. Se y 50 já foi calculado , A maneira mais eficiente de calcular y 51 é: Uma vez que y 51 tenha sido encontrado usando y 50, então y 52 pode ser calculado a partir da amostra y 51, e assim por diante. Depois que o primeiro ponto é calculado em y, todos os outros pontos podem ser encontrados com apenas uma única adição e subtração por ponto. Isso pode ser expresso na equação: Observe que esta equação usa duas fontes de dados para calcular cada ponto na saída: pontos a partir da entrada e pontos previamente calculados a partir da saída. Isso é chamado de equação recursiva, o que significa que o resultado de um cálculo é usado em cálculos futuros. (O termo recursivo também tem outros significados, especialmente na informática). O Capítulo 19 discute uma variedade de filtros recursivos em mais detalhes. Esteja ciente de que o filtro recursivo médio móvel é muito diferente dos filtros recursivos típicos. 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 média móvel é um pulso retangular (resposta de impulso finito, ou FIR). Este algoritmo é mais rápido que outros filtros digitais por várias razões. Primeiro, há apenas dois cálculos por ponto, independentemente do comprimento do kernel do filtro. Segundo, a adição e subtração são as únicas operações matemáticas necessárias, enquanto a maioria dos filtros digitais requerem multiplicação demorada. Em terceiro lugar, o esquema de indexação é muito simples. Cada índice na Eq. 15-3 é encontrado adicionando ou subtraindo constantes inteiras que podem ser calculadas antes do início da filtragem (isto é, p e q). Em seguida, todo o algoritmo pode ser realizado com representação de inteiro. Dependendo do hardware usado, inteiros podem ser mais do que uma ordem de magnitude mais rápida do que ponto flutuante. Surpreendentemente, a representação de números inteiros funciona melhor do que o ponto flutuante com este algoritmo, além de ser mais rápido. O erro round-off de aritmética de ponto flutuante pode produzir resultados inesperados se você não for cuidadoso. Por exemplo, imagine um sinal de 10.000 amostras sendo filtrado com este método. A última amostra no sinal filtrado contém o erro acumulado de 10.000 adições e 10.000 subtracções. Isso aparece no sinal de saída como um deslocamento à deriva. Os inteiros não têm esse problema porque não há nenhum erro de arredondamento na aritmética. Se você deve usar ponto flutuante com este algoritmo, o programa na Tabela 15-2 mostra como usar um acumulador de precisão dupla para eliminar esta deriva. Filtro de média móvel é 0 Filtro FIR de comprimento N com todas as torneiras definidas igual a (1N) .160 É conhecida por sua péssima separação de freqüência, mas excelente resposta no tempo - nesse sentido, ela fora - Bessels um filtro Bessel.160 Você pode implementá-lo com SigmaStudios bloco FIR Como descrito aqui: Quanto mais tempo o filtro, mais suavização - mas o algoritmo de filtro FIR padrão usa muitas instruções para filtros enormes, porque ele tem que multiplicar coeficientes para cada tap.160 Isso é um desperdício quando todos os coeficientes são os mesmos .160 Como o capítulo 15 do livro de Steven W. Smiths aponta, você pode fazer um filtro de média móvel com uma técnica 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 comparação: 160160160160 Os coeficientes são puxados para o bloco de ganho único na entrada.160 A amostra presente adiciona à saída à medida que entra no atraso, a amostra atrasada subtrai da saída à medida que sai.160 O adicionador com o Feedback acumula essas adições e subtrações para formar a saída - isso faz algo que é trivial em C, mas é de outra forma uma dor na GUI.160 Embora uma técnica recursiva é usada, o filtro permanece um verdadeiro filtro FIR - o comprimento de seu impulso Resposta é definida apenas pelo seu atraso. 160160160160 Minha entrada de teste é uma onda quadrada com ruído adicionado.160 Os resultados filtrados aparecem como o traço superior em ambas as fotos - Primeiro o filtro de média móvel: O filtro Bessel: 160160160160 O filtro de média móvel permite mais ruído, mas melhor preserva a Forma de onda quadrada - não rode os cantos e as inclinações para cima e para baixo são simétricas (sua fase linear) .160 Ouvir as duas formas de onda com fones de ouvido mostra um resultado similar - mais ruído com o filtro de média móvel, mas a característica Som de uma onda quadrada vem through. Moore amp Consultoria Moore Serviços de Valores Mobiliários e Análise Técnica Filtros Digitais - Médias Movimentais exponenciais (1) Filtros digitais recursivos Uma maneira de estruturar filtros digitais em uma base mais eficiente é usar alguns dos resultados e aplicá-lo Para a entrada. Isso torna o filtro recursivo à medida que a saída re ocorre na entrada, fazendo com que o filtro pareça infinito em comprimento. Devido a isso, esses filtros também têm 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 estágio e tem uma porcentagem (pequena) da saída anterior. A equação para este filtro digital simples de IIR é: Schematically o desenho deste filtro IIR muito simples olha como aquele abaixo O gráfico abaixo mostra o que acontece. Série 1, a entrada de passo fino, produz as seguintes saídas transientes típicas. Com um valor de 9 para k, então k 0,09, então a Série 2 (a linha grossa) é a primeira resposta transitória típica. Se a percentagem (k) for reduzida para 5 (k 0,05), então a Série 3 (a linha fina sob Série 1) é o resultado esperado. Com k caiu mais para 1 (k 0,01), então temos a série 4 (a linha pontilhada bem sob as outras duas saídas) é a resposta. Todas essas saídas seguem respostas de tempo exponenciais. Assim, com um pequeno feedback nós mudamos o filtro não recursivo bastante complexo em um filtro recursivo simples com muito a mesma resposta de freqüência, mas uma resposta de tempo diferente A forma de onda de saída do filtro IIR continua em eternidade (ao infinito) para convergir no estável Valor, e é por isso que esses filtros obter o nome Infinite Impulse Response (IIR) filtros. Com o Technical Trading, o denominador comum é períodos (geralmente dias), por isso é necessário relacionar o fator recursivo (k) em um fator Período. Felizmente há uma dada relação direta e é através da fórmula como segue: Onde escolhemos k 0,09, esta fórmula converte para 21.2222 Períodos, e para k 0.05, esta fórmula converte a 39.0 Períodos e para k 0.01, esta fórmula converte a 199.0 Períodos. Voltando para trás, queremos realmente descobrir o fator k do Período e transpondo a fórmula torna-se: So para 11,0 Períodos então k 0,16666666, para 21,0 Períodos então k 0,090909 e para k 40,0 Períodos então k 0,0487804 Tudo isso parece muito simples , Mas o relacionamento precisa ser amarrado. Voltando ao gráfico, é óbvio que a resposta ao tempo é um decaimento exponencial. Na Terra da Física, todas as ações naturais seguem uma taxa exponencial de carga e decaimento. Preste atenção a um resplendor da cisterna: todo o varoosh no começo e termina acima de um gotejamento (antes que o plugue caia dentro para reencher o tanque) Quando os faróis do carro extinguem tornam-se escuros e escuros de uma maneira exponencial. É um fenômeno natural em toda parte Quando a chuva começa e pára de cair, a densidade da chuva ao longo do tempo é uma função exponencial, e segue as mesmas regras exponenciais de decaimento Voltar em Eletrônica Terra declínios exponenciais são muito comuns e os tempos de carga e descarga são medidos em uma abordagem normalizada Chamado Constantes de Tempo (T). Uma constante de tempo descarrega para cerca de 37, dois para cerca de 14, três para cerca de 5 quatro para cerca de 1,8 e cinco para cerca de 0,6 - o que é basicamente nada Quando componentes eletrônicos carregam eles seguem o inverso da taxa de descarga, ou seja: 63, 86, 95 , 98.2, 99.4, etc. Voltando à equação simples do Filtro Digital IIR onde está respondendo a uma função Heaviside Step, a curva de carga tem a seguinte equação: y (t) x (0). (1-exp - tT) Onde T tempo constante (ou Período) valor. O gráfico dessa equação se alinha exatamente com o filtro recursivo simples descrito acima, portanto, aplicando a função Heavisides Step (fazendo a variável que varia de tempo a 1 em vez de 0) e então substituindo os Períodos como fator de tempo t (39) no Diretamente acima da equação, então y (39) (1-exp-39T) 0,8646647 assim 0,1353352 exp -39T e ln (0,1353352) -2 assim exp -2 exp -39T então -2 -39T e transposição, T 19,5 Então o que fez Tudo o que a matemática da High School significa significa basicamente que o número especificado de períodos em um filtro recursivo simples é equivalente a duas (2) constantes de tempo. Em outras palavras, quando especificamos um filtro recursivo (digamos) de 100 dias, no 100º dia, a saída da resposta do filtro (a partir de uma entrada de passo) será igual à de duas constantes de tempo (86 da quantidade máxima). Agora temos a matemática para prever com precisão a saída do filtro de qualquer entrada conhecida sem adivinhação Obrigado, Oliver Heaviside e os matemáticos mais cedo brilhante Agora, podemos usar sua matemática fundamental para calcular a resposta a uma rampa, eo erro também O gráfico 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 saídas são claramente vistas. A partir da entrada de passo, a saída SMA20 sobe como uma rampa até atinge o valor máximo, assim como um amplificador de taxa limitada slew O EMA20 sobe rapidamente, em seguida, cai exponencialmente para convergir assintoticamente na saída estável. As duas saídas atravessam na marca 80, e esta é uma referência a ser usada quando se compara uma miríade de outras respostas. O gráfico do lado direito abaixo mostra uma resposta do filtro IIR a uma rampa de unidade (uma posição vertical por passo horizontal). (Isto poderia ser visto como dizer 1 centavo por dia.) Desta vez k 0,15 para os Períodos 12,3333, ea Constante de Tempo (T) é, portanto, 6,1666667 Períodos. A Rampa de Unidade é a linha reta pontilhada fina inclinação positiva e sob que é a resposta de saída de linha de espessura para a rampa, que também decolou e torna-se assintoticamente paralela à rampa. A distância vertical entre estes dois é o erro. Então agora sabemos que este filtro IIR simples tem uma resposta exponencial de primeira ordem, que tem um erro zero para um valor de entrada estável e um erro constante conhecido para uma entrada de rampa. A fórmula para o erro é Erro Rk 1, onde R é a taxa de inclinação da entrada. Substituindo k 0,15 nesta equação dá um erro infinito de 5,666666 e é exatamente o que o gráfico mostra. Um filtro recursivo (IIR) na prática A seção acima acaba de descrever o funcionamento interno do filtro recursivo mais simples, (filtro IIR), que apenas acontece de ser o funcionamento idêntico de uma média móvel exponencial (EMA) e praticamente nada é alterado separadamente De algum nome Por exemplo, um EMA de 20 dias é realmente um filtro IIR com k 0.095238 e que não deve ser surpresa. Agora também sabemos que a Constante de Tempo para um filtro EMA de 20 dias é, portanto, de 10 dias e que o fator de erro de rampa é de 9,5 (assumindo uma taxa de rampa de um centavo por dia). O gráfico acima (tirado do MarketTools Chart) mostra a diferença de resposta entre um SMA20 (Verde) e um EMA20 (Azul). À medida que o preço Close começa a subir, o EMA inicialmente segue mais próximo e oscila enquanto o SMA20 desliza mais lentamente (rounder) e forma uma linha praticamente reta. Isso não deve ser surpresa, pois sabemos que a SMA é muito menos reativa a mudanças recentes do que uma EMA. Você pode ver claramente o erro que eles têm para uma rampa de preços e isso pode ser usado para uma vantagem ao fazer análise técnica Este gráfico também mostra as médias móveis rastreamento dos preços, mas com um preço muito semelhante compensação (erro) causada pela virtualmente Taxa de variação constante do preço durante um período limitado (neste caso). O problema com os preços é que existe um sistema de feedback que regula as variações de preços e este feedback é humano gerenciado que funciona como este: Por alguma razão, alguém vê que eles gostariam de comprar um estoque específico, mas o preço é marginalmente maior do que Preço de negociação anterior. Quando eles compram o estoque o novo preço é agora maior. Outros vêem esse preço como demasiado elevado, correto ou ainda barato. Com este pensamento em mente, outros comerciantes usam os preços anteriores como uma referência e tendem a corrigir esse preço de volta para o preço de referência que cada um deles tem. Isso faz com que o preço flutuar de uma forma oscilatória que tende a estabilizar com o tempo. Tudo não é perdido, pois isso é importante para ser entendido que a tecnologia de média móvel é um sistema de ordem 1, por agora ele pode ser usado no conhecimento de que se os preços estão em geral abaixo da média móvel, então os preços estão realmente caindo Com o tempo, e se os preços estão acima da média móvel, então os preços estão em geral aumentando com o tempo. Portanto, faz muito sentido para conhecer esta regra muito básica, pois significa que as ações só para ser envolvido em são aqueles com os preços acima da linha de média móvel. Mas que constante de tempo deve ser usado para a média móvel e porque Praticamente nenhum pacote de análise técnica vem em qualquer lugar perto desta profundidade, e todos eles tratar SMA e EMA com uma falta real de compreensão. O problema é quase auto-explicativo em que praticamente todos os dados são baseados em EOD e por causa disso, atravessar as médias móveis pode resolver a maioria dos sinais de compra-venda Em outras palavras, o avanço da análise técnica parou como um ônibus batendo um penhasco quando as médias móveis foram Resolvido com os dados EOD. Uma vez que firmemente estabelecido o fato de que um SMA e um EMA são ambos os sistemas de ordem 1, e que ambos estes efetivamente minimizar o ruído de variações do comércio, nomeadamente os valores próximos Com base em dados EOD não é surpresa que estas médias têm um uso como uma indicação comprar ou não comprar para títulos que têm qualquer forma de tendência. Seu uso é uma aplicação simples em que o erro entre o preço de fechamento real ea média móvel quando positivo indicou que a segurança deve ser prendido e o inverso. Este indicador é o mais primitivo de todos os indicadores técnicos, e é anos luz além de usar qualquer forma de indicação gerada financeiramente para mostrar se um preço de segurança está subindo ou caindo em uma tendência. O indicador realmente brilha quando a segurança está em uma tendência, mas quando o preço paira ou flattens para fora tem um problema de indecisão. O gráfico abaixo indica essa situação, e é exemplificado por incluir uma função de comutação para mostrar o que pode acontecer. A função de comutação mostra os gráficos de média móvel de preços. No caso da esquerda, é um EMA12, e como o preço próximo flutua, o switch torna-se muito indeciso quando a tendência de preços se estabiliza ou muda de direção. Uma maneira de contornar o problema é usar uma média móvel mais lenta como a EMA21, como mostrado no lado direito. O número de pontos de indecisão é reduzido, o que significa que o número de negócios inúteis seria significativamente reduzido, mas olhe mais perto e considerável lucro corridas são perdidas porque a média móvel é muito tarde na mudança. Em segundo plano há um positivo em que o 12 e 21 EOD médias móveis são mais suaves do que o EOD fechar e que por si só pode ser usado com vantagem. Duas médias móveis Ao comparar duas médias móveis (que em si já são suavizadas por seus próprios atributos), uma indicação mais limpa pode ser obtida e pode oferecer algumas vantagens. Os gráficos abaixo mostram alguns exemplos sobre a mesma segurança para comparação direta. O gráfico acima à esquerda tem a mesma função de comutação baseada em duas médias móveis EMA12 e EMA26 e ver que a indecisão é praticamente nula. Este é um passo positivo, mas um olhar mais atento sobre os pontos de mudança real mostra que é muito conservador e, em muitos casos, ganhos consideráveis ​​são perdidos antes da decisão é tomada para retirar. Se não fosse para este então este poderia ser um indicador ideal do holdell baseado puramente em preços próximos dos números de EOD. O gráfico acima à direita (tirado do OmniTrader) mostra uma exibição de seis meses de um estoque e existem duas médias móveis exponenciais (EMAs) também no gráfico. Neste caso particular, a média móvel que abraça os preços das ações é um EMA8 eo outro que converge lentamente no preço da ação é um EMA35. Este é um bom exemplo, uma vez que a EMA mais rápida tem o intervalo dos valores EOD do preço da ação que se cruzam em várias ocasiões. O mais lento EMA atinge mal as gamas de preço EOD. OmniTrader tem uma característica muito agradável em que cada indicador de teste pode ser definido para auto-otimizar-se para cada segurança ao longo de um histórico especificado (por exemplo, 250 dias de negociação). Isso dá aos indicadores uma boa chance de fornecer uma taxa de hit muito melhor do que você normalmente obteria, simplesmente definindo os parâmetros indicadores você mesmo. Neste caso, eles começaram em EMA12 e EMA40 e decidiu EMA8 e EMA35 para um resultado ideal. O problema é o da incerteza, pois ambas as médias móveis convergem umas nas outras e não têm um crossover limpo. Esta não é uma questão importante, pois sabemos que tanto a SMA como a EMA são sistemas de 1ª ordem e por isso convergem assintóticamente em uma entrada constante, então se um preço permanecer constante, então as duas médias móveis convergirão para essa constante Valor, mas com taxas diferentes. O problema real é o do ruído (na verdade a flutuação de preços sobre um valor constante) e isso pode fazer com que a média móvel mais rápida para whipsaw sobre o mais estável mais lento (mais) média móvel. Existem várias soluções para este problema, e cada um tem seus méritos. Múltiplas Médias Móveis Estendendo-se sobre o tema das médias móveis de um para dois para muitos é uma progressão lógica ea abordagem de Multiple Moving Averages é um conceito bastante simples de visualizar. Daryl Guppy inventou-lo e consiste em dez médias móveis em dois grupos que são geometricamente espaçados. O primeiro grupo é de curto prazo EMA3, EMA5, EMA7, EMA10 e EMA15, enquanto as médias móveis de longo prazo são EMA30, EMA35, EMA40, EMA50 e EMA60. Para obter um visual sobre como ele olha, os dois gráficos abaixo mostram as imagens gerais. No gráfico à esquerda abaixo, as cinco médias móveis de longo prazo seguem linhas geralmente paralelas à medida que o preço das ações se eleva, os preços então se recuam e as linhas de média móvel se expandem umas das outras e depois convergem e se expandem à medida que a nova tendência E as médias móveis voltam a formar linhas paralelas. Olhando mais de perto no gráfico da direita do mesmo estoque com o conjunto mais curto de médias móveis, torna-se óbvio que quando as médias móveis exponenciais convergem ou divergem, então algo está prestes a acontecer A razão que essas médias móveis formam linhas paralelas efetivamente enquanto Uma tendência em acontecer é que o erro do preço real à média móvel é dependente do fator do gabarito no EMA. Em comparação direta, o SMA baseado nas mesmas constantes de tempo é demonstrado abaixo: Os gráficos acima mostram o mesmo arco-íris de curvas, mas todos com SMA em vez de EMA. É por causa da resposta de entrada não linear à etapa que a EMA tem que faz com que as curvas convergem umas nas outras, onde o conjunto de curvas SMA nestes dois gráficos inferiores claramente ultrapassa um ao outro. Guppy Múltiplas Médias Móveis Daryl Guppy desenvolveu um arco-íris de múltiplas médias móveis, chamado Guppy Moving Averages (GMA) que, quando colocado em um gráfico de preços, convergem à medida que a tendência começa a acontecer, e convergem novamente à medida que a tendência diminuiu, e Todo o resto do tempo eles são divergentes Como é fácil que com base em tráfego EOD, Daryls EMA constantes são, 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 aritmético simples de EMAs que eram nominalmente 2,4 períodos separados e ajustados para o inteiro mais próximo para o período, 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 são baseadas em outra progressão aritmética com 55 desaparecidos Provavelmente porque ficou muito apertado lá, e isso me diz que essa seqüência deve ter sido uma progressão geométrica em qualquer caso. Com cinco intervalos entre 30 e 60, o multiplicador é de cerca de 1,1487, pelo que a sequência torna-se 30,00, 34,46, 39,59, 45,47, 52,23, 60,00 e trazendo isto para os Inteiros mais próximos dá: 30, 34, 40, 45, 52, Dar um mesmo conjunto de longo prazo EMAs de uma progressão geométrica obter as constantes de longo prazo. Então, por que eu estou viciado em progressões geométricas, e por que eles ensinam essas coisas na escola? Bem, é assim, relacionamentos de vida são realmente relacionados geométricamente tudo é uma proporção de outras coisas, até mesmo adições às famílias são geometricamente relacionadas não aritmeticamente relacionadas com a larga escala. Eu sei que os professores não me mostraram isso quando na escola e eu tive alguns professores fantásticos ensanguentados. De longe os melhores professores eram aqueles que tinham habilidades industriais e de negócios através da experiência não-escolar, e eram a inveja daqueles que não. Enfim Para ver a imagem não há nada como um exemplo visual Os dois gráficos acima dar exemplos de Guppy Moving Averages (GMMA), e estes são Exponential Moving Averages, não Simple Moving Averages. Interessante, como SMA ter uma resposta mais arredondada, porque não overreact aos valores mais recentes como EMAs fazer. Há duas famílias destes e o lado esquerdo mostra a faixa de longo prazo longe dos preços e convergindo em mudanças. O lado direito mostra as médias móveis de curto prazo mais próximo dos preços (próximos). Indo para outra tangente, estabelecendo uma progressão geométrica baseada na raiz 2 como por uma lente de fotografia, uma sequência típica é 5, 7, 10, 14, 20, 28, 40, 56, 80, 113, 200 etc. Mão é baseada em EMA ea da direita é baseada em SMA. Como o SMA tem uma resposta transitória linear, o traço geral é um pouco mais arredondado do que o EMA que tem uma resposta de decaimento cônico, daí a pulverização de médias móveis exponenciais, em comparação com o número de cruzamentos com as médias móveis simples. Esta é uma ferramenta muito popular e arco-íris de Guppys dar um visual de alto impacto visual, e se é isso que você está procurando, então é isso não só é interessante assistir as diferentes médias móveis divergem e convergir, mas indo que um passo além Calcular e mostrar que divergência e convergência é a próxima etapa evolutiva lógica. Enquanto esses arco-íris de médias móveis têm um impacto visual usando dados EOD, quando se trata de dados de comércio é uma história inteiramente diferente, como os incrementos são muito menores por causa dos intervalos de tempo curtos, e isso dá origem a realmente analisar a seqüência de crossovers , Uma vez que este escolhe a diferença entre um comércio e um investimento, mas mais tarde Uma alternativa para recorrer ao comércio (ao vivo) dados é usar um filtro melhor - ou cascata (colocar um após 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 é a próxima etapa de aventuraIm implementar um 80-72-64-48 multi passagem filtro de média móvel para um sistema embutido em C e em ponto fixo. A implementação é um buffer circular onde im manter uma soma corrente e calcular yn yn-1 xn-xn-M onde M é o comprimento de um filtro. Isso é feito para cada subfiltro com a saída de um serviço como entrada para outro. Im escalando meus coeficientes por 2 o que me dá coeficientes de comprimento 2 ou 2 dependendo do comprimento do filtro. Em seguida, o resultado é reduzido novamente por 2 para obter a saída correta. Agora, tudo parece bom em escalas de tempo curto, mas durante longos tempos eu obter uma deriva. A razão para a implementação recursiva é salvar cálculos em um processador incorporado. Eu incluí a imagem de alguns dos internals de meu filtro, isto é quando uma resposta da etapa é aplicada e nós podemos ver as funções da transferência dos filtros que tomam a forma, quadrado, triângulo, aproximando então um gaussian assim que o filtro está trabalhando como esperado. Existe alguma maneira de corrigir isso, e onde é a fonte mais provável disso. É este drift devido a um pouco se perder no deslocamento ou outra coisa. A deriva não está presente para as entradas de CC, mas para sinais de CA ele lentamente drifts. SOLUÇÃO: O problema estava no acumulador como sugeriu Robert nos comentários. A questão era que um elemento do cálculo tinha ido através de um deslocamento para cima e para baixo extra em comparação com o resto, o que criou um deslocamento redondo que se acumulou. Perguntou 27 de abril às 21:12 é o seu acumulador yn sendo arredondado ou quantized de qualquer maneira você deve se certificar de que o xn-M que é subtraído é exatamente o mesmo valor que xn que foi adicionado M amostras atrás. Então você realmente quer fazer uma soma móvel. Em vez de uma média móvel e escala a saída de sua soma móvel (com 1M) para obter a média. Isso é bastante factível e ainda melhor feito em ponto fixo em vez de ponto flutuante. Ndash robert bristow-johnson 27 de abril às 22:52 quotScaling os coeficientes Eu suponho que você divide por M após cada etapa e que é o coeficiente que você escala que é provavelmente a causa do deslocamento. Melhor então dividir por prod Mi no final de todos os filtros. Você precisa manter o controle das amplitudes internas embora como você acabará por transbordar os acumuladores. No entanto, isso é facilmente resolvido através de aritmética módulo (dos quais dois complemento é um caso especial). Ndash Oscar Apr 28 15 at 7:00 Oscar, este é um filtro de ponto fixo. Significado i só fazer aritmética inteira. Para uma média móvel de comprimento gt 1 com ganho 1, as constantes de filtro serão uma fracção que não é representável em números inteiros. Assim, os coeficientes são escalados para torná-los inteiros pela esquerda deslocando-os x muitos bits. Devido a isso a saída final tem que ser deslocada também para a direita por tantos bits. I não pode manter uma soma correndo através de todos os 4 filtros sem restaurar a saída entre, o sinal de entrada é de 16 bits e com o coeficiente de dimensionamento e comprimentos Um único filtro usa todo o meu espaço acumulador de 32 bits ndash user70614 Apr 28 15 at 8:20

No comments:

Post a Comment