Filtro De Media E Baixa Passagem Em Movimento




Filtro De Média E Baixa Passagem Em MovimentoComo outros ja mencionaram, voce deve considerar um filtro IIR (resposta de impulso infinito) em vez do filtro FIR (resposta de impulso finito) que voce esta usando agora. Ha mais, mas a primeira vista os filtros FIR sao implementados como convolucoes explicitas e filtros IIR com equacoes. O filtro IIR especial que eu uso muito em microcontroladores e um filtro de passa-baixa de polo unico. Este e o equivalente digital de um simples filtro analogico R-C. Para a maioria das aplicacoes, elas terao melhores caracteristicas do que o filtro de caixa que voce esta usando. A maioria dos usos de um filtro de caixa que eu encontrei sao o resultado de alguem nao prestar atencao na classe de processamento de sinal digital, e nao como resultado de precisar de suas caracteristicas particulares. Se voce so quer atenuar as altas frequencias que voce sabe que sao ruido, um unico polo filtro passa-baixo e melhor. A melhor maneira de implementar um digitalmente em um microcontrolador e geralmente: FILT lt - FILT FF (NEW - FILT) FILT e um pedaco de estado persistente. Esta e a unica variavel persistente que voce precisa para calcular este filtro. NEW e o novo valor que o filtro esta sendo atualizado com esta iteracao. FF e a fraccao do filtro. Que ajusta o peso do filtro. Olhe para este algoritmo e veja que para FF 0 o filtro e infinitamente pesado desde que a saida nunca muda. Para FF 1, seu realmente nenhum filtro em tudo desde que a saida apenas segue a entrada. Os valores uteis estao no meio. Em sistemas pequenos voce escolhe FF para ser 1/2 N de modo que a multiplicacao por FF possa ser realizada como um deslocamento para a direita por N bits. Por exemplo, FF pode ser 1/16 e multiplicar por FF, portanto, um deslocamento para a direita de 4 bits. Caso contrario, este filtro precisa apenas de uma subtracao e uma adicao, embora os numeros geralmente precisam ser mais largos do que o valor de entrada (mais na precisao numerica em uma secao separada abaixo). Eu costumo tomar leituras A / D significativamente mais rapido do que eles sao necessarios e aplicar dois desses filtros em cascata. Este e o equivalente digital de dois filtros R-C em serie, e atenua por 12 dB / oitava acima da frequencia de rolloff. No entanto, para as leituras A / D e geralmente mais relevante olhar para o filtro no dominio do tempo, considerando sua resposta passo. Isso indica a rapidez com que seu sistema vera uma alteracao quando a coisa que voce esta medindo muda. Para facilitar a concepcao destes filtros (que significa apenas escolher FF e decidir quantos deles para cascatear), eu uso o meu programa FILTBITS. Voce especifica o numero de bits de deslocamento para cada FF na serie de filtros em cascata e calcula a resposta da etapa e outros valores. Na verdade eu costumo correr isso atraves do meu script wrapper PLOTFILT. Isso executa FILTBITS, que faz um arquivo CSV, e depois traca o arquivo CSV. Por exemplo, aqui esta o resultado de PLOTFILT 4 4: Os dois parametros para PLOTFILT significa que havera dois filtros em cascata do tipo descrito acima. Os valores de 4 indicam o numero de bits de mudanca para realizar a multiplicacao por FF. Os dois valores FF sao, portanto, 1/16 neste caso. O traco vermelho e a resposta da etapa da unidade, e e a coisa principal a olhar. Por exemplo, isto diz-lhe que se a entrada muda instantaneamente, a saida do filtro combinado estabelecera a 90 do novo valor em 60 iteracoes. Se voce se preocupa com 95 settling tempo, entao voce tem que esperar cerca de 73 iteracoes, e por 50 tempo de resolucao apenas 26 iteracoes. O traco verde mostra a saida de um unico pico de amplitude total. Isto da-lhe alguma ideia da supressao aleatoria do ruido. Parece que nenhuma amostra ira causar mais do que uma alteracao de 2,5 na saida. O traco azul e dar uma sensacao subjetiva do que este filtro faz com o ruido branco. Este nao e um teste rigoroso, uma vez que nao ha garantia o que exatamente o conteudo foi dos numeros aleatorios escolhidos como a entrada de ruido branco para esta execucao de PLOTFILT. Seu somente para dar-lhe uma sensacao aspera de quanto sera squashed e de como liso e. PLOTFILT, talvez FILTBITS, e muitas outras coisas uteis, especialmente para o desenvolvimento de firmware PIC esta disponivel no software PIC Development Tools release na minha pagina de downloads de Software. Adicionado sobre precisao numerica eu vejo dos comentarios e agora uma nova resposta que ha interesse em discutir o numero de bits necessarios para implementar este filtro. Observe que a multiplicacao por FF criara Log 2 (FF) novos bits abaixo do ponto binario. Em sistemas pequenos, FF e geralmente escolhido para ser 1/2 N para que este multiplicar e realmente realizado por um deslocamento a direita de N bits. FILT e geralmente um inteiro de ponto fixo. Observe que isso nao altera nenhuma das matematicas do ponto de vista dos processadores. Por exemplo, se voce estiver filtrando leituras A / D de 10 bits e N 4 (FF 1/16), entao voce precisara de 4 bits de fracao abaixo das leituras A / D inteiras de 10 bits. Um processadores mais, youd estar fazendo operacoes de 16 bits inteiro devido as leituras de 10 bit A / D. Neste caso, voce ainda pode fazer exatamente as mesmas operacoes de 16 bits inteiros, mas comece com as leituras A / D esquerda deslocada por 4 bits. O processador nao sabe a diferenca e nao precisa. Fazer a matematica em inteiros inteiros de 16 bits funciona se voce os considera 12,4 pontos fixos ou inteiros verdadeiros de 16 bits (16,0 ponto fixo). Em geral, voce precisa adicionar N bits cada polo de filtro se voce nao quiser adicionar ruido devido a representacao numerica. No exemplo acima, o segundo filtro de dois teria 1044 18 bits para nao perder informacoes. Na pratica em uma maquina de 8 bits que significa youd usar valores de 24 bits. Tecnicamente apenas o segundo polo de dois precisaria do valor mais amplo, mas para a simplicidade do firmware eu costumo usar a mesma representacao, e, portanto, o mesmo codigo, para todos os polos de um filtro. Normalmente eu escrevo uma sub-rotina ou macro para executar uma operacao de polo de filtro, em seguida, aplicar isso a cada polo. Se uma subrotina ou macro depende se os ciclos ou a memoria do programa sao mais importantes nesse projeto especifico. De qualquer maneira, eu uso algum estado zero para passar NOVO para a subrotina / macro, que atualiza FILT, mas tambem carrega isso para o mesmo estado zero NOVO foi dentro Isso torna mais facil para aplicar varios polos desde o FILT atualizado de um polo e O NOVO do proximo. Quando uma sub-rotina, e util ter um ponteiro apontar para FILT no caminho, que e atualizado para logo apos FILT na saida. Desta forma, a sub-rotina opera automaticamente em filtros consecutivos na memoria se for chamada varias vezes. Com uma macro voce nao precisa de um ponteiro desde que voce passa no endereco para operar em cada iteracao. Exemplos de codigo Aqui esta um exemplo de uma macro como descrito acima para um PIC 18: E aqui esta uma macro semelhante para um PIC 24 ou dsPIC 30 ou 33: Ambos estes exemplos sao implementados como macros usando o meu pre-processador de assembler PIC. Que e mais capaz do que qualquer um das instalacoes macro incorporadas. Clabacchio: Outra questao que eu deveria ter mencionado e a implementacao de firmware. Voce pode escrever uma sub-rotina de filtro passa-baixa de um unico polo uma vez, depois aplica-la varias vezes. Na verdade eu costumo escrever tal sub-rotina para ter um ponteiro na memoria para o estado do filtro, em seguida, te-lo avancar o ponteiro para que ele pode ser chamado em sucessao facilmente para realizar filtros multi-polo. Ndash Olin Lathrop Apr 20 12 at 15:03 1. muito obrigado por suas respostas - todas elas. Eu decidi usar este filtro IIR, mas este filtro nao e usado como um filtro LowPass padrao, uma vez que eu preciso para a media de valores de contador e compara-los para detectar alteracoes em um determinado intervalo. Uma vez que estes Valores van ser de dimensoes muito diferentes, dependendo de hardware que eu queria tomar uma media, a fim de ser capaz de reagir a estas alteracoes Hardware especificas automaticamente. Ndash sensslen May 21 12 at 12:06 Se voce pode viver com a restricao de um poder de dois numeros de itens para a media (ou seja, 2,4,8,16,32 etc), entao a divisao pode ser feita de forma facil e eficiente em um Micro de baixo desempenho sem divisao dedicada, pois pode ser feito como um deslocamento bit. Cada turno e um poder de dois, por exemplo: O OP pensou que ele tinha dois problemas, dividindo em um PIC16 e memoria para seu buffer de anel. Esta resposta mostra que a divisao nao e dificil. E verdade que ele nao trata o problema da memoria, mas o sistema SE permite respostas parciais, e os usuarios podem tirar algo de cada resposta por si mesmos, ou mesmo editar e combinar outras respostas. Uma vez que algumas das outras respostas exigem uma operacao de divisao, elas sao igualmente incompletas, uma vez que nao mostram como efetivamente conseguir isso em um PIC16. Ndash Martin Apr 20 12 at 13:01 Ha uma resposta para um verdadeiro filtro de media movel (aka boxcar filtro) com menos requisitos de memoria, se voce nao mente downsampling. E chamado um filtro integrador-pente em cascata (CIC). A ideia e que voce tem um integrador que voce toma as diferencas de um periodo de tempo, eo dispositivo de economia de memoria chave e que por downsampling, voce nao tem que armazenar cada valor do integrador. Ele pode ser implementado usando o seguinte pseudocodigo: Seu comprimento medio movel efetivo e decimationFactorstatesize, mas voce so precisa manter em torno de amostras statesize. Obviamente, voce pode obter um melhor desempenho se o seu statesize e decimationFactor sao poderes de 2, de modo que a divisao e os operadores restantes sao substituidos por turnos e mascara-ands. Postscript: Eu concordo com Olin que voce deve sempre considerar filtros IIR simples antes de um filtro de media movel. Se voce nao precisa de frequencia-nulos de um filtro de vagao, um filtro de passa-baixa de 1 polo ou de 2 polos provavelmente funcionara bem. Por outro lado, se voce estiver filtrando para fins de decimacao (tomando uma alta taxa de amostragem de entrada e de media para o seu uso por um processo de baixa taxa), em seguida, um CIC filtro pode ser exatamente o que voce esta procurando. (Especialmente se voce pode usar statesize1 e evitar o ringbuffer completamente com apenas um valor unico integrador anterior) Theres alguma analise em profundidade da matematica por tras usando o filtro IIR de primeira ordem que Olin Lathrop ja descreveu mais sobre a troca de pilha Digital Signal Processing (Inclui muitas imagens bonitas.) A equacao para este filtro IIR e: Isso pode ser implementado usando apenas inteiros e nenhuma divisao usando o codigo a seguir (pode precisar de alguma depuracao como eu estava digitando na memoria.) Este filtro aproxima uma media movel de Os ultimos K amostras, definindo o valor de alfa para 1 / K. Faca isso no codigo anterior, definindo BITS para LOG2 (K), ou seja, para K 16 set BITS para 4, para K 4 set BITS para 2, etc (eu verificar o codigo listado aqui logo que eu recebo uma alteracao e Editar esta resposta, se necessario.) Responder Jun 23 12 at 4:04 Heres um filtro passa-baixo de um unico polo (media movel, com frequencia de corte CutoffFrequency). Muito simples, muito rapido, funciona muito bem, e quase nenhuma sobrecarga de memoria. Nota: Todas as variaveis ??tem escopo alem da funcao de filtro, exceto o passado em newInput Nota: Este e um filtro de etapa unica. Varias etapas podem ser conectadas em cascata para aumentar a nitidez do filtro. Se voce usar mais de uma etapa, voce tera que ajustar DecayFactor (como se relaciona com a Cutoff-Frequency) para compensar. E, obviamente, tudo o que voce precisa e dessas duas linhas colocadas em qualquer lugar, eles nao precisam de sua propria funcao. Este filtro tem um tempo de aceleracao antes que a media movel represente a do sinal de entrada. Se voce precisar ignorar esse tempo de aceleracao, basta inicializar MovingAverage para o primeiro valor de newInput em vez de 0 e esperar que o primeiro newInput nao seja um outlier. (CutoffFrequency / SampleRate) tem um intervalo entre 0 e 0,5. DecayFactor e um valor entre 0 e 1, geralmente perto de 1. Flutuadores de precisao unica sao bons o suficiente para a maioria das coisas, eu so prefiro dobra. Se voce precisa ficar com numeros inteiros, voce pode converter DecayFactor e Amplitude Factor em inteiros fracionarios, em que o numerador e armazenado como o inteiro, eo denominador e uma potencia inteira de 2 (assim voce pode bit-shift para a direita como o Denominador em vez de ter que dividir durante o loop de filtro). Por exemplo, se voce usar DecayFactor 0,99, e voce quiser usar numeros inteiros, voce pode definir DecayFactor 0,99 65536 64881. E entao, sempre que voce multiplicar por DecayFactor em seu loop de filtro, basta deslocar o resultado 16. Para obter mais informacoes sobre isso, um excelente livro thats Online, capitulo 19 sobre filtros recursivos: www. dspguide / ch19.htm PS Para o paradigma da media movel, uma abordagem diferente para definir DecayFactor e AmplitudeFactor que podem ser mais relevantes para suas necessidades, vamos dizer que voce quer o anterior, cerca de 6 itens media juntos, faze-lo discretamente, youd adicionar 6 itens e dividir por 6, entao Voce pode definir o AmplitudeFactor para 1/6 e DecayFactor para (1.0 - AmplitudeFactor). Respondeu May 14 12 at 22:55 Todo mundo tem comentado completamente sobre a utilidade de IIR vs FIR, e na divisao de poder-de-dois. Id gostaria de dar alguns detalhes de implementacao. O abaixo funciona bem em pequenos microcontroladores sem FPU. Nao ha multiplicacao, e se voce manter N um poder de dois, toda a divisao e de ciclo unico bit-shifting. Tampao de toque FIR basico: mantem um buffer de execucao dos ultimos N valores e uma Soma em execucao de todos os valores no buffer. Cada vez que uma nova amostra entra, subtraia o valor mais antigo no buffer de SUM, substitua-o pela nova amostra, adicione a nova amostra a SUM e a saida SUM / N. Tampao de anel IIR modificado: mantenha uma SUM corrente dos ultimos N valores. Cada vez que uma nova amostra chega, SUM - SUM / N, adicione a nova amostra e a saida SUM / N. Se I39m lendo voce direito, voce esta descrevendo um filtro IIR de primeira ordem, o valor que voce esta subtraindo isn39t o valor mais antigo que esta caindo, mas e, em vez disso, a media dos valores anteriores. Os filtros IIR de primeira ordem podem certamente ser uteis, mas nao tenho certeza do que voce quer dizer quando sugere que a saida e a mesma para todos os sinais periodicos. A uma taxa de amostragem de 10KHz, a alimentacao de uma onda quadrada de 100Hz em um filtro de caixa de 20 estagios produzira um sinal que sobe uniformemente para 20 amostras, senta alto para 30, cai uniformemente para 20 amostras e senta baixo para 30. Uma primeira ordem IIR. Ndash supercat Aug 28 13 as 15:31 vai produzir uma onda que comeca bruscamente a subir e gradualmente nivela perto (mas nao no) maximo de entrada, entao comeca bruscamente a cair e nivela gradualmente perto (mas nao) o minimo de entrada. Comportamento muito diferente. Uma questao e que uma media movel simples pode ou nao ser util. Com um filtro IIR, voce pode obter um bom filtro com relativamente poucos calcs. O FIR que voce descreve so pode lhe dar um retangulo no tempo - um sinc em freq - e voce nao pode gerenciar os lobos laterais. Pode valer a pena jogar algumas multiplicacoes inteiras para torna-la uma simpatica e simetrica sintonia FIR se voce pode poupar os carrapatos do relogio. Ndash Scott Seidman Aug 29 13 as 13:50 ScottSeidman: Nao ha necessidade de multiplicar se um simplesmente tem cada estagio do FIR ou saida a media da entrada para esse estagio e seu valor armazenado anterior, e depois armazenar a entrada (se tiver O intervalo numerico, pode-se usar a soma em vez da media). Se isso e melhor do que um filtro de caixa depende da aplicacao (a resposta de passo de um filtro de caixa com um atraso total de 1ms, por exemplo, tera um pico d2 / dt desagradavel quando a mudanca de entrada e novamente 1ms mais tarde, mas tera O minimo possivel d / dt para um filtro com um atraso total de 1 ms). Como disse mikeselectricstuff, se voce realmente precisa reduzir suas necessidades de memoria, e voce nao se importa sua resposta ao impulso e uma exponencial (em vez de um pulso retangular), eu iria para um filtro de media movel exponencial . Eu uso-os extensivamente. Com esse tipo de filtro, voce nao precisa de nenhum buffer. Voce nao tem que armazenar N amostras passadas. Apenas um. Assim, seus requisitos de memoria sao cortados por um fator de N. Alem disso, voce nao precisa de qualquer divisao para isso. Somente multiplicacoes. Se voce tiver acesso a aritmetica de ponto flutuante, use multiplicacoes de ponto flutuante. Caso contrario, faca multiplicacoes inteiras e desloque para a direita. No entanto, estamos em 2012, e eu recomendo que voce use compiladores (e MCUs) que permitem que voce trabalhe com numeros de ponto flutuante. Alem de ser mais memoria eficiente e mais rapido (voce nao tem que atualizar itens em qualquer buffer circular), eu diria que e tambem mais natural. Porque uma resposta de impulso exponencial corresponde melhor a maneira como a natureza se comporta, na maioria dos casos. Um problema com o filtro IIR como quase tocado por olin e supercat mas aparentemente desconsiderado por outros e que o arredondamento para baixo introduz alguma imprecisao (e potencialmente vies / truncamento). Assumindo que N e uma potencia de dois, e apenas aritmetica inteira e usada, o deslocamento direto sistematicamente elimina os LSBs da nova amostra. Isso significa que quanto tempo a serie poderia ser, a media nunca vai levar esses em conta. Por exemplo, suponha uma serie lentamente decrescente (8,8,8,8,7,7,7,7,6,6) e suponha que a media e realmente 8 no inicio. A amostra do punho 7 trara a media para 7, independentemente da intensidade do filtro. Apenas para uma amostra. Mesma historia para 6, etc. Agora pense no oposto. A serie sobe. A media ficara em 7 para sempre, ate que a amostra seja grande o suficiente para fazer a mudanca. Claro, voce pode corrigir o vies adicionando 1 / 2N / 2, mas isso nao vai realmente resolver o problema de precisao. Nesse caso a serie decrescente permanecera para sempre em 8 ate que a amostra seja 8-1 / 2 (N / 2). Para N4, por exemplo, qualquer amostra acima de zero mantera a media inalterada. Acredito que uma solucao para isso implicaria manter um acumulador dos LSBs perdidos. Mas eu nao fui longe o suficiente para ter o codigo pronto, e nao tenho certeza que nao iria prejudicar o poder IIR em alguns outros casos de serie (por exemplo, se 7,9,7,9 seria media para 8 entao). Olin, sua cascata de dois estagios tambem precisaria de alguma explicacao. Voce quer dizer segurando dois valores medios com o resultado do primeiro alimentado para o segundo em cada iteracao. O que e o beneficio deste Filtro de media movel kate escreveu: gt Oi, gt gt Estou procurando algum codigo para um filtro passa-baixo que posso aplicar a gt um sinal antes de realizar a analise espectral. Gt gt Eu apoligise para minha ignorancia, mas esta e maneira fora de meu campo assim Im gt que nao faz realmente nenhum sentido dele. No dominio analogico, as pessoas usam a filtragem de baixa passagem por pelo menos algumas razoes que vem a mente (i) fazer o sinal parecer melhor (pt) Ii) evitar o aliasing durante a conversao Analog-to-Digital, o que resulta em sinais de ruido de alta frequencia sendo alias para baixas frequencias, o que pode corromper os sinais de menor frequencia de interesse e aumentar o piso de ruido. Nao parece que nenhuma destas consideracoes se aplique a sua situacao (i) voce nao esta olhando o sinal diretamente (voce esta indo fazer a analise espectral) (ii) seu sinal ja esta digitalizado. Especificamente, quando voce faz analise espectral, o material de alta frequencia vai aparecer no final de alta frequencia e voce pode optar por ignora-lo. Para qualquer tecnica linear (isto inclui FFT e a funcao Matlab filter ()), o conteudo de alta frequencia nao interferira com a analise espectral do conteudo de baixa frequencia. A menos que voce queira dizimar seus dados antes de filtrar. Existe uma razao especial que voce quer se livrar do conteudo de alta frequencia antes de analise espectral kate escreveu: gt Oi, gt gt Estou procurando algum codigo para um filtro passa-baixa que eu posso aplicar a gt um sinal antes de transportar Analise espectral. Gt gt Eu apoligise para minha ignorancia, mas esta e maneira fora de meu campo assim Im gt que nao faz realmente nenhum sentido dele. No dominio analogico, as pessoas usam a filtragem de baixa passagem por pelo menos algumas razoes que vem a mente (i) fazer o sinal parecer melhor (pt) Ii) evitar o aliasing durante a conversao Analog-to-Digital, o que resulta em sinais de ruido de alta frequencia sendo alias para baixas frequencias, o que pode corromper os sinais de menor frequencia de interesse e aumentar o piso de ruido. Nao parece que nenhuma destas consideracoes se aplique a sua situacao (i) voce nao esta olhando o sinal diretamente (voce esta indo fazer a analise espectral) (ii) seu sinal ja esta digitalizado. Especificamente, quando voce faz analise espectral, o material de alta frequencia vai aparecer no final de alta frequencia e voce pode optar por ignora-lo. Para qualquer tecnica linear (isto inclui FFT e a funcao Matlab filter ()), o conteudo de alta frequencia nao interferira com a analise espectral do conteudo de baixa frequencia. A menos que voce queira dizimar seus dados antes de filtrar. Existe uma razao especial que voce quer se livrar do conteudo de alta frequencia antes da analise espectral Para ser honesto, eu nao sei por que estou tentando se livrar das altas frequencias. Im basicamente seguindo as instrucoes em um ISO. Como voce pode ter adivinhado, programacao de computador e processamento de sinal nao e realmente a minha area, entao a linguagem utilizada e estranho para mim O que estou fazendo e a seguinte - Im um engenheiro civil e estou tentando analisar um perfil de superficie da estrada. O perfil e basicamente o equivilent de um sinal que varia com a distancia (mas desde que a velocidade e constante, isto e o mesmo que variando com o tempo). A formulacao exata do ISO e filtros de pre-processamento deve ser usado, por exemplo, butterworth. No entanto, eu pensei que a media movel poderia ser um lugar mais facil para comecar Eu presumo que a razao Im tentando erradicar as altas frequencias e porque eles seriam insignificantes em termos de danos na superficie da estrada. Eu aprecio muito o seu tempo, Katherine Rajeev escreveu: gt gt gt kate escreveu: gtgt Oi, gtgt gtgt Estou procurando algum codigo para um filtro passa-baixo que eu posso gt aplicar gtgt um sinal antes de realizar a analise espectral. Eu apoligise para minha ignorancia, mas esta e maneira fora de meu campo assim gt Im gtgt que nao faz realmente nenhum sentido dele. Gtgt gt gt gtgt gtgt No dominio analogico, as pessoas usam filtragem passa-baixa para pelo menos um gt par de razoes que vem a mente (i) fazer o sinal (Ii) evitar alias durante a conversao Analog-to-Digital, que gt resulta em sinais de ruido de alta frequencia aliased para baixas frequencias gt, que pode corromper os sinais de frequencia mais baixa de gt interesse gt e aumentar o piso de ruido. Gt gt Nao parece que qualquer destas consideracoes se aplicam a gt sua situacao gt (i) voce nao esta olhando para o sinal diretamente (youre gt vai gt para fazer analise espectral) (ii) o seu sinal ja esta digitalizado. Gt gt Especificamente, quando voce faz analise espectral, a alta frequencia gt stuff gt aparecera no final de alta frequencia e voce pode optar por ignorar gt-lo. Gt Para qualquer tecnica linear (isto inclui FFT e a funcao gt do filtro Matlab), o conteudo de alta frequencia nao interferira com a analise espectral gt do conteudo de baixa frequencia. A menos que voce deseja gt decimate seus dados antes de filtrar. Gt gt Ha uma razao especial que voce quer se livrar do gt alta frequencia gt conteudo antes de analise espectral gt gt HTH gt - rajeev - gt gt Katherine escreveu: gt Para ser honesto, eu nao sei por que estou tentando se livrar do Altas frequencias gt. Im basicamente seguindo as instrucoes em um ISO. Gt Como voce pode ter adivinhado, programacao de computadores e processamento de sinal gt nao e realmente a minha area assim que a linguagem utilizada e estranho para mim gt gt O que estou fazendo e a seguinte - Im um engenheiro civil e estou tentando gt analisar um perfil de superficie da estrada. O perfil e basicamente o gt equivilent de um sinal que varia com a distancia (mas desde que a velocidade gt e constante, isto e o mesmo que variando com o tempo). O exato gt redaccao do ISO e pre-processamento de filtros devem ser utilizados para Algumas perguntas vem a mente. uma. O que o ISO lhe pede que faca apos os filtros de pre-processamento b. Como e realizada a analise espectral c. O ISO especifica a frequencia de corte para o filtro. Ie livrar-se de frequencias acima de X gt example butterworth. No entanto, eu pensei que a media movel gt poderia ser um lugar mais facil para comecar eu tendem a concordar, a media movel seria mais facil. Ele tambem tem uma propriedade que todos os componentes de frequencia sao atrasados ??exatamente pela mesma quantidade, o que significa que a forma de onda e preservada atraves do filtro (claro que alguns compnents de frequencia serao atenuados, mas eles nao serao deslocados por, digamos, 90 graus , Em relacao a outras frequencias). O filtro de Butterworth (e em varios graus todos os filtros analogicos) nao tem essa propriedade, que e conhecida como linear-fase ou fase-linear. Butterworth refere-se a uma classe de filtros analogicos com uma fase particular e resposta de frequencia, que passa a ser facil de implementar com componentes eletronicos como resistencias, capacitores e indutores. (Minha suposicao razoavel e que) as pessoas desenvolveram equivalentes digitais para estes e outros filtros analogicos porque estavam familiarizados com suas propriedades. No entanto, um monte de gente hoje perguntar, se voce esta indo para operar em um sinal digitalizado, por que se preocupar com um analogo-look-alike filtro. Gt Presumo que a razao pela qual estou tentando erradicar as altas frequencias e gt porque seria insignificante em termos de danos na superficie da estrada. Gt gt Eu aprecio muito o seu tempo, gt Katherine Mais uma vez, estou muito grato a voce por tomar o tempo que eu tentei responder a sua qs abaixo: gt Algumas perguntas vem a mente. Gt gt a. O que o ISO lhe pede que faca apos os filtros de pre-processamento Apos os filtros de pre-processamento pede que eu realize uma FFT que eu acho que e tambem uma resposta para a sua proxima pergunta. O grande problema de compreensao que estou tendo e que eu gerei o perfil da estrada, especificando que eu queria que as frequencias fossem um minimo de 0,01ciclos / metro e um maximo de 4ciclos / metro. Por que entao eu preciso para filtrar as altas frequencias gt gt b. Como e realizada a analise espectral gt gt c. O ISO especifica a frequencia de corte para o filtro. Ou seja, gt get gt livre de frequencias acima de X Nao especifica qualquer frequencia de corte. Gtgt exemplo butterworth. No entanto, eu pensei que a media movel gtgt poderia ser um lugar mais facil para comecar gt gt Eu tendem a concordar, a media movel seria mais facil. Ele tambem tem uma propriedade gt de que todos os componentes de frequencia sao retardados exatamente pela mesma quantidade gt, gt o que significa que a forma de onda e preservada atraves do filtro gt gt (claro que alguns compnents de frequencia serao atenuados, mas eles gt wt gt Ser deslocada por, digamos, 90 graus, em relacao a outras frequencias). Gt O filtro gt Butterworth (e em varios graus todos os filtros analogicos) gt nao gt tem essa propriedade, que e conhecida como linear-fase ou fase-linear. Gt gt Butterworth refere-se a uma classe de filtros analogicos com uma particular gt fase gt e resposta de frequencia, que passa a ser facil de implementar com gt eletronicos gt componentes como resistencias, capacitores e indutores. (Meu gt razoavel gt acho gt e que) as pessoas desenvolveram equivalentes digitais para estes e outros gt gt filtros analogicos porque eles estavam familiarizados com suas propriedades. No entanto, se voce estiver indo para operar em um sinal gt digitalizado, gt por que se preocupar com um analogo-look-alike filtro. Gt gtgt Eu presumo que a razao Im tentando erradicar as altas frequencias e gtgt porque seriam insignificantes em termos de danos na superficie da estrada. Gtgt gtgt Eu aprecio muito o seu tempo, gtgt Katherine gt gt lt. Gt gt gt HTH gt - rajeev - Obrigado. Katherine Parece que voce pode estar filtrando os dados ja da maneira como voce esta especificando a faixa de frequencia. Qual e sua taxa de amostragem E espacial ou temporal Se voce esta especificando 4 ciclos / metro para o sistema e muito improvavel que seria apenas a amostragem para obter essa taxa (Fs1 / 8 metros), sem algum tipo de filtro de media movel construido dentro. Qual e o requisito ISO (padrao ISO, de onde) Um efeito da filtragem e deslocar a energia para as frequencias mais baixas, em vez de apenas corta-lo como voce faria no dominio da frequencia. Se o objetivo final e calcular um IRI ou algum tipo de metrica de rugosidade de outra estrada que isso pode ser critico. Gt gt Apos o pre-processamento de filtros que pede que eu realizar uma FFT que gt eu acho que tambem e uma resposta para a sua proxima pergunta. O grande problema de compreensao gt que estou tendo e que eu gerei o perfil da estrada gt, especificando que eu queria que as frequencias fossem um gt minimo de 0,01ciclos / metro e um maximo de 4cycles / metro. Por que entao gt deve eu preciso para filtrar as altas frequencias gt Charlie, eu sou muito ignorante sobre a terminologia correta neste material e Im nao sei o que voce quer dizer com a taxa de amostragem. Vou te dizer o que estou fazendo. Primeiro eu estou gerando um perfil de estrada aleatoria que tem frequencias espaciais variando de 0,01 - 4 ciclos / m. A ISO 8608: 1995 tem classificacoes de estrada e, dependendo disso, da um valor PSD para cada uma das frequencias entre 0,01 e 4 thats voce deseja. Estes valores sao entao colocados numa equacao para a geracao de estradas que cria uma estrada com qualquer numero de pontos (no meu caso, 8000, ou 400 metros, isto e, cada 0,05 metros). Eu entao grafo todos os valores ISO para o PSD contra as frequencias espaciais que eu tinha acima. Eu estou tentando entao trabalhar para tras para ver se eu posso gerar esse mesmo grafico usando o mesmo perfil da estrada, e encontrando o FFT dele e entao o PSD. Eu nao sei o que voce quer dizer com frequencia de amostragem Tem medo, talvez seja la em cima no que eu descrevi Muito obrigado pelo seu tempo, estou completamente como um peixe fora da agua sobre este Charlie escreveu: gt gt gt Katherine, Gt gt Parece que voce pode estar filtrando os dados ja a maneira que voce esta gt especificando gt a faixa de frequencia. Qual e sua taxa de amostragem E espacial ou gt temporal gt Se voce esta especificando 4 ciclos / metro para o sistema e muito improvavel gt que gt seria apenas a amostragem para obter essa taxa (Fs1 / 8 metros) sem algum gt tipo de gt Filtro de media movel construido em gt gt O que e o requisito ISO (norma ISO, de onde) gt gt Um efeito da filtragem e deslocar a energia para as frequencias gt inferior em vez de apenas corta-lo como voce faria em gt o Gt. Se o objetivo final e calcular um IRI ou algum tipo gt de outra metrica de rugosidade de estrada que isso pode ser critico. Gt gt gt gtgt gtgt Apos o pre-processamento de filtros que pede que eu realizar uma FFT gt que gtgt acho que tambem e uma resposta para a sua proxima pergunta. O grande problema de compreensao que eu tenho e que eu gerei o perfil gtgt, especificando que eu queria que as frequencias fossem um minimo gtgt de 0,01ciclos / metro e um maximo de 4cycles / metro. Por que entao gtgt devo precisar filtrar as altas frequencias gtgt gt gt gt Obrigado pela informacao sobre ISO 8608: 1995 parece uma boa referencia para alguns dos meus trabalhos sobre o processamento de perfil de estrada. De volta ao seu projeto. Como eu o entendo voce esta fazendo: 1. Criar o perfil da estrada no dominio da frequencia espacial com indice em 0.01-4 ciclos / m 2. Gerar o perfil espacial de 1 usando algumas equacoes (400 medidores de comprimento, dx0.05 m, frequencia de amostragem Spatial1 / dx20 cycles/m) 3. Graph your road PSD from 1 against the ISO values from ISO 8608 4. Calculate the fft and the PSD from 2 and compare it to 3 to see if you are able to re-produce it. If this is correct and I understand the ISO standard. I dont believe you need to do any filtering at all. Your profile from 2 should be able to generate frequency data from 0.0025-10 cycles/m, but you should not see any content above 4 cycles/m. Hope this helps rather than confuses. You may want to look at The Little Book of Profiling at www. umtri. umich. edu/erd/roughness/index for more info. Katherine ltkatherine. cashellucd. iegt wrote in message news:ef02d7a.7webx. raydaftYaTP. gt Charlie, gt I am very ignorant on the correct terminology in this stuff and Im gt not sure what you mean by sample rate. Ill just tell you what im gt doing. gt gt gt First I am generating a random road profile which has spatial gt frequencies varying from 0.01 - 4 cycles/m. The ISO 8608:1995 have gt classifications of road and depending on this, it gives a PSD value gt for each of the frequencies between 0.01 and 4 thats you want. These gt values are then put into an equation for road generation which gt creates a road with any number of points (in my case 8000, or gt 400meters, i. e. every 0.05 meter). gt I then graph all of the ISO values for the PSD against the spatial gt frequencies that I had above. gt I am then trying to work backwards to see if I can generate that same gt graph by using the same road profile, and finding the FFT of it and gt then the PSD. gt i dont know what you mean by sampling frequency Im afraid, maybe it gt is up there in what i have described gt gt Thank you so much for your time, I am completely like a fish out of gt water on this one gt gt Katherine gt Thanks for that - really is useful just to see the correct terminology being used for the figures Charlie wrote: gt gt gt Katherine, gt gt Thanks for the info on ISO 8608:1995 it looks like good reference gt for some gt of my work on road profile processing. Back to your project. As I gt gt understand it you are doing: gt gt 1. Create road profile in spatial frequency domain with content in gt 0.01-4 gt cycles/m gt 2. Generate spatial profile from 1 using some equations (400 gt meters long, gt dx0.05 m, Spatial sampling frequency1/dx20 cycles/m) gt 3. Graph your road PSD from 1 against the ISO values from ISO gt 8608 gt 4. Calculate the fft and the PSD from 2 and compare it to 3 to gt see if gt you are able to re-produce it. gt gt If this is correct and I understand the ISO standard. I dont gt believe you gt need to do any filtering at all. Your profile from 2 should be gt able to gt generate frequency data from 0.0025-10 cycles/m, but you should not gt see any gt content above 4 cycles/m. gt gt Hope this helps rather than confuses. You may want to look at The gt Little gt Book of Profiling at ltwww. umtri. umich. edu/erd/roughness/index gt gt gt or more info. gt gt Charlie gt gt Katherine ltkatherine. cashellucd. iegt wrote in message gt news:ef02d7a.7webx. raydaftYaTP. gtgt Charlie, gtgt I am very ignorant on the correct terminology in this stuff and gt Im gtgt not sure what you mean by sample rate. Ill just tell you what im gtgt doing. gtgt gtgt gtgt First I am generating a random road profile which has spatial gtgt frequencies varying from 0.01 - 4 cycles/m. The ISO 8608:1995 gt have gtgt classifications of road and depending on this, it gives a PSD gt value gtgt for each of the frequencies between 0.01 and 4 thats you want. gt These gtgt values are then put into an equation for road generation which gtgt creates a road with any number of points (in my case 8000, or gtgt 400meters, i. e. every 0.05 meter). gtgt I then graph all of the ISO values for the PSD against the gt spatial gtgt frequencies that I had above. gtgt I am then trying to work backwards to see if I can generate that gt same gtgt graph by using the same road profile, and finding the FFT of it gt and gtgt then the PSD. gtgt i dont know what you mean by sampling frequency Im afraid, maybe gt it gtgt is up there in what i have described gtgt gtgt Thank you so much for your time, I am completely like a fish out gt of gtgt water on this one gtgt gtgt Katherine gtgt gt gt gt What is a watch list You can think of your watch list as threads that you have bookmarked. Voce pode adicionar tags, autores, threads e ate mesmo resultados de pesquisa a sua lista de observacao. Desta forma, voce pode facilmente acompanhar os topicos que voce esta interessado polegadas Para ver a sua lista de observacao, clique no link quotMas newsreaderquot. Para adicionar itens a sua lista de observacao, clique no link quotadd para assistir listquot na parte inferior de qualquer pagina. Como adicionar um item a minha lista de observacao Pesquisa Para adicionar criterios de pesquisa a sua lista de observacao, pesquise o termo desejado na caixa de pesquisa. Clique no botao quotAdicionar esta pesquisa ao meu link de listagem de visualizacoes na pagina de resultados de pesquisa. Voce tambem pode adicionar uma tag a sua lista de observacao procurando a tag com a diretiva quottag: tagnamequot onde tagname e o nome da tag que voce gostaria de assistir. Autor Para adicionar um autor a sua lista de observacao, va para a pagina de perfil dos autores e clique no botao quotAdicionar este autor ao meu link de lista de observacao no topo da pagina. Voce tambem pode adicionar um autor a sua lista de observacao, indo a um topico que o autor postou e clicando no quotAdicionar este autor ao meu link listquot do relogio. Voce sera notificado sempre que o autor fizer um post. Topico Para adicionar um topico a sua lista de observacao, va para a pagina de discussao e clique no link Adicionar este topico ao meu link de lista de atalhos na parte superior da pagina. Sobre Newsgroups, Newsreaders e MATLAB Central O que sao newsgroups Os newsgroups sao um forum mundial aberto a todos. Grupos de noticias sao usados ??para discutir uma enorme variedade de topicos, fazer anuncios e trocar arquivos. As discussoes sao encadeadas ou agrupadas de uma forma que lhe permite ler uma mensagem postada e todas as suas respostas em ordem cronologica. Isto torna mais facil seguir o fio da conversa e ver whatrsquos ja foi dito antes de postar sua propria resposta ou fazer uma nova postagem. O conteudo do grupo de noticias e distribuido por servidores hospedados por varias organizacoes na Internet. As mensagens sao trocadas e gerenciadas usando protocolos de padrao aberto. Nenhuma entidade unica ldquoownsrdquo os newsgroups. Existem milhares de newsgroups, cada um abordando um unico topico ou area de interesse. O MATLAB Central Newsreader publica e exibe mensagens no newsgroup comp. soft-sys. matlab. Como faco para ler ou publicar nos newsgroups Voce pode usar o leitor de noticias integrado no site da MATLAB Central para ler e publicar mensagens neste newsgroup. MATLAB Central e hospedado por MathWorks. As mensagens enviadas atraves do Central Newsreader do MATLAB sao vistas por todos os grupos de noticias, independentemente de como eles acessam os grupos de noticias. Ha varias vantagens em usar o MATLAB Central. Uma Conta A sua conta do MATLAB Central esta ligada a sua Conta MathWorks para facilitar o acesso. Use o endereco de e-mail da sua escolha O MATLAB Central Newsreader permite que voce defina um endereco de e-mail alternativo como seu endereco de postagem, evitando a confusao na sua caixa postal principal e reduzindo o spam. Controle de Spam A maioria de spam do newsgroup e filtrada para fora pelo newsreader central de MATLAB. Marcacao As mensagens podem ser marcadas com um rotulo relevante por qualquer usuario conectado. As tags podem ser usadas como palavras-chave para encontrar arquivos particulares de interesse ou como uma maneira de categorizar suas postagens marcadas. You may choose to allow others to view your tags, and you can view or search othersrsquo tags as well as those of the community at large. Tagging provides a way to see both the big trends and the smaller, more obscure ideas and applications. Listas de vigilancia A configuracao de listas de observacao permite que voce seja notificado das atualizacoes efetuadas nas postagens selecionadas por autor, segmento ou qualquer variavel de pesquisa. As notificacoes da sua lista de observacoes podem ser enviadas por email (resumo diario ou imediato), exibidas em Meu leitor de noticias ou enviadas via feed RSS. Outras maneiras de acessar os grupos de noticias Use um leitor de noticias atraves de sua escola, empregador ou provedor de servicos de internet Pagar pelo acesso de grupos de noticias de um provedor comercial Usar Grupos do Google Mathforum. org fornece um leitor de noticias com acesso ao grupo de noticias comp. soft sys. matlab Execute seu proprio servidor. For typical instructions, see: www. slyck/ngpage2 Select Your CountryUpdated 12th March 2013 What are RC Filtering and Exponential Averaging and how do they differ The answer to the second part of the question is that they are the same process If one comes from an electronics background then RC Filtering (or RC Smoothing) is the usual expression. On the other hand an approach based on time series statistics has the name Exponential Averaging, or to use the full name Exponential Weighted Moving Average. This is also variously known as EWMA or EMA. A key advantage of the method is the simplicity of the formula for computing the next output. It takes a fraction of the previous output and one minus this fraction times the current input. Algebraically at time k the smoothed output y k is given by As shown later this simple formula emphasises recent events, smooths out high frequency variations and reveals long term trends. Note there are two forms of the exponential averaging equation, the one above and a variant Both are correct. See the notes at end of the article for more details. In this discussion we will only use equation (1). The above formula is sometimes written in the more limited fashion. How is this formula derived and what is its interpretation A key point is how do we select . To look into this one simple way is to consider an RC low pass filter. Now an RC low pass filter is simply a series resistor R and a parallel capacitor C as illustrated below. The time series equation for this circuit is The product RC has units of time and is known as the time constant, T. for the circuit. Suppose we represent the above equation in its digital form for a time series which has data taken every h seconds. We have This is exactly the same form as the previous equation. Comparing the two relationships for a we have which reduces to the very simple relationship Hence the choice of N is guided by what time constant we chose. Now equation (1) may be recognised as a low pass filter and the time constant typifies the behaviour of the filter. To see the significance of the Time Constant we need to look at the frequency characteristic of this low pass RC filter. In its general form this is Expressing in modulus and phase form we have where the phase angle is . The frequency is called the nominal cut off frequency . Physically it may be shown that at this frequency the power in the signal has been reduced by one half and the amplitude is reduced by the factor . In dB terms this frequency is where the amplitude has been reduced by 3dB. Clearly as the time constant T increases so then the cut off frequency reduces and we apply more smoothing to the data, that is we eliminate the higher frequencies. It is important to note that the frequency response is expressed in radians/second. That is there is a factor of involved. For example choosing a time constant of 5 seconds gives an effective cut off frequency of . One popular use of RC smoothing is to simulate the action of a meter such as used in a Sound Level Meter. These are generally typified by their time constant such as 1 second for S types and 0.125 seconds for F types. For these 2 cases the effective cut off frequencies are 0.16Hz and 1.27Hz respectively. Actually it is not the time constant we usually wish to select but those periods we wish to include. Suppose we have a signal where we wish to include features with a P second period. Now a period P is a frequency . We could then choose a time constant T given by . However we know that we have lost about 30 of the output (-3dB) at . Thus choosing a time constant which exactly corresponds to the periodicities we wish to keep is not the best scheme. It is usually better to choose a slightly higher cut off frequency, say . The time constant is then which in practical terms is similar to . This reduces the loss to around 15 at this periodicity. Hence in practical terms to retain events with a periodicity of or greater then choose a time constant of . This will include the effects of periodicities of down to about . For example if we wish to include the effects of events happening with say an 8 second period ( 0.125Hz) then choose a time constant of 0.8 seconds. This gives a cut off frequency of approximately 0.2Hz so that our 8 second period is well in the main pass band of the filter. If we were sampling the data at 20 times/second (h 0.05) then the value of N is (0.8/0.05) 16 and . This gives some insight into how to set . Basically for a known sample rate it typifies the averaging period and selects which high frequency fluctuations will be ignored. By looking at the expansion of the algorithm we can see that it favours the most recent values, and also why it is referred to as exponential weighting. We have Substituting for y k-1 gives Repeating this process several times leads to Because is in the range then clearly the terms to the right become smaller and behave like a decaying exponential. That is the current output is biased towards the more recent events but the larger we choose T then the less bias. In summary we see that the simple formula emphasises recent events smoothes out high frequency (short period) events reveals long term trends Appendix 1 8211 Alternate forms of the equation Caution There are two forms of the exponential averaging equation that appear in the literature. Both are correct and equivalent. The first form as shown above is (A1) The alternate form is 8230(A2) Note the use of in the first equation and in the second equation. In both equations and are values between zero and unity. Earlier was defined as Now choosing to define Hence the alternate form of the exponential averaging equation is In physical terms it means that the choice of form one uses depends on how one wants to think of either taking as the feed back fraction equation (A1) or as the fraction of the input equation (A2). The first form is slightly less cumbersome in showing the RC filter relationship, and leads to a simpler understanding in filter terms. Chief Signal Processing Analyst at Prosig Dr Colin Mercer is Chief Signal Processing Analyst at Prosig and has responsibility for signal processing and its applications. He was formerly at the Institute of Sound and Vibration Research (ISVR) at Southampton University where he founded the Data Analysis Centre. He is a Chartered Engineer and a Fellow of the British Computer Society. I think you want to change the 8216p8217 to the symbol for pi. Marco, thank you for pointing that out. I think this is one of our older articles that has been transferred from an old word processing document. Obviously, the editor (me) failed to spot that the pi had not been transcribed correctly. It will be corrected shortly. it8217s a very good article explanation about the exponential averaging I believe there is an error in the formula for T. It should be T h(N-1), not T (N-1)/h. Mike, thanks for spotting that. I have just checked back to Dr Mercer8217s original technical note in our archive and it seems that there was error made when transferring the equations to the blog. We will correct the post. Thank you for letting us know Thank you thank you thank you. You could read 100 DSP texts without finding anything saying that an exponential averaging filter is the equivalent of an R-C filter. hmm, do you have the equation for an EMA filter correct is it not Yk aXk (1-a)Yk-1 rather than Yk aYk-1 (1-a)Xk Alan, Both forms of the equation appear in the literature, and both forms are correct as I will show below. The point you make is important one because using the alternate form means that the physical relationship with an RC filter is less apparent, moreover the interpretation of the meaning of a shown in the article is not appropriate for the alternate form. First let us show both forms are correct. The form of the equation that I have used is and the alternate form which does appear in many texts is Note in the above I have used latex 1/latex in the first equation and latex 2/latex in the second equation. The equality of both forms of the equation is shown mathematically below taking simple steps at a time. What is not the same is the value used for latex /latex in each equation. In both forms latex /latex is a value between zero and unity. First rewrite equation (1) replacing latex 1/latex by latex /latex. This gives latexyk y (1 - beta)xk/latex 8230(1A) Now define latexbeta (1 - 2)/latex and so we also have latex 2 (1 - beta)/latex. Substituting these into equation (1A) gives latexyk (1 - 2)y 2xk/latex 8230(1B) And finally re-arranging gives This equation is identical to the alternate form given in equation (2). Put more simply latex 2 (1 - 1)/latex. In physical terms it means that the choice of form one uses depends on how one wants to think of either taking latexalpha/latex as the feed back fraction equation (1) or as the fraction of the input equation (2). As mentioned above I have used the first form as it is slightly less cumbersome in showing the RC filter relationship, and leads to simpler understanding in filter terms. However omitting the above is, in my view, a deficiency in the article as other people could make an incorrect inference so a revised version will appear soon. I8217ve always wondered about this, thanks for describing it so clearly. I think another reason the first formulation is nice is alpha maps to 8216smoothness8217: a higher choice of alpha means a 8216more smooth8217 output. Michael Thanks for observation 8211 I will add to the article something on those lines as it is always better in my view to relate to physical aspects. Dr Mercer, Excellent article, thank you. I have a question regarding the time constant when used with an rms detector as in a sound level meter that you refer to in the article. If I use your equations to model an exponential filter with Time Constant 125ms and use an input step signal, I do indeed get an output that, after 125ms, is 63.2 of the final value. However, if I square the input signal and put this through the filter, then I see that I need to double the time constant in order for the signal to reach 63.2 of its final value in 125ms. Can you let me know if this is expected. Muito obrigado. Ian Ian, If you square a signal like a sine wave then basically you are doubling the frequency of its fundamental as well as introducing lots of other frequencies. Because the frequency has in effect been doubled then it is being 8216reduced8217 by a greater amount by the low pass filter. In consequence it takes longer to reach the same amplitude. The squaring operation is a non linear operation so I do not think it will always double precisely in all cases but it will tend to double if we have a dominant low frequency. Also note that the differential of a squared signal is twice the differential of the 8220un-squared8221 signal. I suspect you might be trying to get a form of mean square smoothing, which is perfectly fine and valid. It might be better to apply the filter and then square as you know the effective cutoff. But if all you have is the squared signal then using a factor of 2 to modify your filter alpha value will approximately get you back to the original cut off frequency, or putting it a bit simpler define your cutoff frequency at twice the original. Thanks for your response Dr Mercer. My question was really trying to get at what is actually done in an rms detector of a sound level meter. If the time constant is set for 8216fast8217 (125ms) I would have thought that intuitively you would expect a sinusoidal input signal to produce an output of 63.2 of its final value after 125ms, but since the signal is being squared before it gets to the 8216mean8217 detection, it will actually take twice as long as you explained. The principle objective of the article is to show the equivalence of RC filtering and exponential averaging. If we are discussing the integration time equivalent to a true rectangular integrator then you are correct that there is a factor of two involved. Basically if we have a true rectangular integrator that integrates for Ti seconds the the equivalent RC integator time to achieve the same result is 2RC seconds. Ti is different from the RC 8216time constant8217 T which is RC. Thus if we have a 8216Fast8217 time constant of 125 msec, that is RC 125 msec then that is equivalent to a true integration time of 250 msec Thank you for the article, it was very helpful. There are some recent papers in neuroscience that use a combination of EMA filters (short-windowed EMA 8211 long-windowed EMA) as a band-pass filter for real time signal analysis. I would like to apply them, but I am struggling with the window sizes different research groups have used and its correspondence with the cutoff frequency. Let8217s say I want to keep all the frequencies below 0.5Hz (aprox) and that I acquire 10 samples/ second. This means that fp 0.5Hz P 2s T P/100.2 h 1/fs0.1 Thefore, the window size I should be using should be N3. Is this reasoning correct Before answering your question I must comment on the use of two high pass filters to form a band pass filter. Presumably they operate as two separate streams, so one result is the content from say latexf /latex to half sample rate and the other is the content from say latexf /latex to half sample rate. If all that is being done is the difference in mean square levels as indicating the power in the band from latexf /latex to latexf /latex then it may be reasonable if the two cut off frequencies are sufficiently far apart but I expect that the people using this technique are trying to simulate a narrower band filter. In my view that would be unreliable for serious work, and would be a source of concern. Just for reference a band pass filter is a combination of a low frequency High Pass filter to remove the low frequencies and a high frequency Low pass filter to remove the high frequencies. There is of course a low pass form of an RC filter, and hence a corresponding EMA. Perhaps though my judgement is being overcritical without knowing all the facts So could you please send me some references to the studies you mentioned so I may critique as appropriate. Maybe they are using a low pass as well as a high pass filter. Now turning to your actual question about how to determine N for a given target cut-off frequency I think it is best to use the basic equation T(N-1)h. The discussion about periods was aimed at giving people a feel of what was going on. So please see the derivation below. We have the relationships latexT(N-1)h/latex and latexT1/2 /latex where latexfc/latex is the notional cut-off frequency and h is the time between samples, Clearly latexh 1/ /latex where latexfs/latex is the sample rate in samples/sec. Rearranging T(N-1)h into a suitable form to include the cut-off frequency, latexfc/latex and the sample rate, latexfs/latex, is shown below. So using latexfc 0.5Hz/latex and latexfs 10/latex samples/sec so that latex(fc/fs) 0.05/latex gives So the closest integer value is 4. Re-arranging the above we have So with N4 we have latexfc 0.5307 Hz/latex. Using N3 gives an latexfc/latex of 0.318 Hz. Note with N1 we have a complete copy with no filtering.