Recursivo Moving Average Filter Matlab
Filtros FIR, filtros IIR e equação de diferença de coeficiente constante linear Filtros de média móvel causal (FIR) Nós discutimos sistemas em que cada amostra da saída é uma soma ponderada de (algumas das) amostras da entrada. Vamos tomar um sistema de soma ponderada causal, onde causal significa que uma dada amostra de saída depende apenas da amostra de entrada atual e outros insumos mais cedo na seqüência. Nem os sistemas lineares em geral, nem os sistemas finitos de resposta ao impulso em particular, precisam ser causais. No entanto, a causalidade é conveniente para um tipo de análise que iria explorar em breve. Se simbolizamos as entradas como valores de um vetor x. E as saídas como valores correspondentes de um vetor y. Então tal sistema pode ser escrito como onde os valores de b são quotweights aplicados às amostras de entrada atuais e anteriores para obter a amostra de saída atual. Podemos pensar na expressão como uma equação, com o sinal de igual signo igual a, ou como uma instrução processual, com o sinal de igual significação atribuição. Vamos escrever a expressão para cada amostra de saída como um loop MATLAB de instruções de atribuição, onde x é um vetor N-comprimento de amostras de entrada, e b é um vetor M-comprimento de pesos. A fim de lidar com o caso especial no início, vamos incorporar x em um vetor mais longo xhat cujas primeiras M-1 amostras são zero. Vamos escrever a soma ponderada para cada y (n) como um produto interno, e faremos algumas manipulações das entradas (como inverter b) para este fim. Esse tipo de sistema é muitas vezes chamado de filtro de média móvel, por razões óbvias. A partir de nossas discussões anteriores, deve ser óbvio que tal sistema é linear e invariante em mudança. Claro, seria muito mais rápido usar a convolução de função MATLAB conv () em vez do nosso mafilt (). Em vez de considerar as primeiras amostras M-1 da entrada como sendo zero, poderíamos considerá-las iguais às últimas amostras M-1. Isso é o mesmo que tratar a entrada como periódica. Bem, use cmafilt () como o nome da função, uma pequena modificação da função mafilt () anterior. Ao determinar a resposta de impulso de um sistema, geralmente não há diferença entre estes dois, uma vez que todas as amostras não iniciais da entrada são zero: Como um sistema desse tipo é linear e invariante em mudança, sabemos que seu efeito em qualquer Sinusoid será apenas a escala e deslocá-lo. Aqui é importante que usemos a versão circular A versão circularmente convoluta é deslocada e escalada um pouco, enquanto a versão com convolução ordinária é distorcida no início. Vamos ver o que a escala exata e deslocamento é usando um fft: Tanto a entrada ea saída têm amplitude apenas nas freqüências 1 e -1, que é como deveria ser, uma vez que a entrada era uma sinusoid eo sistema era linear. Os valores de saída são maiores numa razão de 10,62518 1,3281. Este é o ganho do sistema. E quanto à fase Nós só precisamos olhar onde a amplitude é diferente de zero: A entrada tem uma fase de pi2, como nós pedimos. A fase de saída é deslocada por um adicional 1.0594 (com sinal oposto para a freqüência negativa), ou cerca de 16 de um ciclo à direita, como podemos ver no gráfico. Agora vamos tentar um sinusoid com a mesma freqüência (1), mas em vez de amplitude 1 e fase pi2, vamos tentar amplitude 1,5 e fase 0. Sabemos que apenas a freqüência 1 e -1 terá amplitude não-zero, então vamos apenas olhar Para eles: Novamente a razão de amplitude (15.937712.0000) é 1.3281 - e quanto à fase é novamente deslocada por 1.0594 Se esses exemplos são típicos, podemos prever o efeito do nosso sistema (resposta de impulso .1 .2 .3 .4 .5) em qualquer sinusoide com freqüência 1 - a amplitude será aumentada em um fator de 1,3281 e a fase (freqüência positiva) será deslocada em 1,0594. Poderíamos calcular o efeito desse sistema em sinusoides de outras freqüências pelos mesmos métodos. Mas há uma maneira muito mais simples, e uma que estabelece o ponto geral. Uma vez que a convolução (circular) no domínio do tempo significa multiplicação no domínio da frequência, a partir daí segue-se que, em outras palavras, a DFT da resposta ao impulso é a proporção da DFT da saída para a DFT da entrada. Nesta relação os coeficientes de DFT são números complexos. Desde abs (c1c2) abs (c1) abs (c2) para todos os números complexos c1, c2, esta equação nos diz que o espectro de amplitude da resposta de impulso será sempre a relação entre o espectro de amplitude da saída para a da entrada . No caso do espectro de fase, ângulo (c1c2) ângulo (c1) - ângulo (c2) para todos c1, c2 (com a condição de que as fases que diferem por n2pi são consideradas iguais). Portanto, o espectro de fase da resposta ao impulso será sempre a diferença entre os espectros de fase da saída e da entrada (com quaisquer correções de 2pi são necessárias para manter o resultado entre - pi e pi). Podemos ver os efeitos da fase de forma mais clara se desenrolarmos a representação da fase, ou seja, se adicionarmos múltiplos múltiplos de 2pi conforme necessário para minimizar os saltos produzidos pela natureza periódica da função angle (). Embora a amplitude e a fase sejam normalmente utilizadas para apresentação gráfica e mesmo tabular, uma vez que são uma forma intuitiva de pensar os efeitos de um sistema sobre os vários componentes de frequência de sua entrada, os coeficientes de Fourier complexos são mais úteis algébricamente, A expressão simples da relação A abordagem geral que acabamos de ver funcionará com filtros arbitrários do tipo esboçado, em que cada amostra de saída é uma soma ponderada de algum conjunto de amostras de entrada. Como mencionado anteriormente, estes são muitas vezes chamados filtros de Resposta de Impulso Finito, porque a resposta ao impulso é de tamanho finito, ou às vezes Filtros de Média Móvel. Podemos determinar as características de resposta de freqüência de tal filtro a partir da FFT de sua resposta de impulso e também podemos projetar novos filtros com características desejadas por IFFT a partir de uma especificação da resposta de freqüência. Filtros Autoregressivos (IIR) Não haveria nenhum ponto em ter nomes para filtros FIR, a menos que houvesse algum outro tipo de distinção, de modo que aqueles que estudaram pragmática não ficarão surpresos ao saber que existe de fato outro tipo principal Do filtro tempo-invariante linear. Estes filtros são às vezes chamados recursivos porque o valor de saídas anteriores (assim como entradas anteriores) importa, embora os algoritmos sejam geralmente escritos usando construções iterativas. Eles também são chamados filtros Infinite Impulse Response (IIR), porque em geral sua resposta a um impulso continua para sempre. Eles também são chamados de filtros auto-regressivos, porque os coeficientes podem ser considerados como o resultado de fazer uma regressão linear para expressar valores de sinal como uma função de valores de sinal anteriores. A relação dos filtros FIR e IIR pode ser vista claramente numa equação de diferença de coeficiente constante linear, isto é, estabelecendo uma soma ponderada de saídas igual a uma soma ponderada de entradas. Isto é como a equação que damos anteriormente para o filtro FIR causal, exceto que, além da soma ponderada dos insumos, também temos uma soma ponderada de saídas. Se quisermos pensar nisso como um procedimento para gerar amostras de saída, precisamos reorganizar a equação para obter uma expressão para a amostra de saída atual y (n), Adotando a convenção de que a (1) 1 (por exemplo, escalando outros como E bs), podemos nos livrar do termo 1a (1): y (n) b (1) x (n) b (2) x (n-1). B (Nb1) x (n-nb) - a (2) y (n-1) -. - a (Na1) y (n-na) Se todos os a (n) diferentes de a (1) são zero, isso reduz a nosso velho amigo o filtro FIR causal. Este é o caso geral de um filtro (causal) LTI, e é implementado pelo filtro de função MATLAB. Vamos ver o caso em que os coeficientes B diferentes de b (1) são zero (em vez do caso FIR, onde o a (n) é zero): neste caso, a amostra de saída atual y (n) é calculada como uma Combinação ponderada da amostra de entrada atual x (n) e as amostras de saída anteriores y (n-1), y (n-2), etc. Para ter uma idéia do que acontece com esses filtros, vamos começar com o caso em que: Ou seja, a amostra de saída atual é a soma da amostra de entrada atual e metade da amostra de saída anterior. Bem, tome um impulso de entrada através de alguns passos de tempo, um de cada vez. Deve ficar claro neste ponto que podemos facilmente escrever uma expressão para o n-ésimo valor de amostra de saída: é apenas (se MATLAB contado a partir de 0, isso seria simplesmente .5n). Uma vez que o que estamos calculando é a resposta ao impulso do sistema, temos demonstrado por exemplo que a resposta ao impulso pode de fato ter infinitas amostras diferentes de zero. Para implementar este trivial filtro de primeira ordem no MATLAB, poderemos usar o filtro. A chamada será assim: eo resultado é: Este negócio é realmente ainda linear Podemos olhar para isto empiricamente: Para uma abordagem mais geral, considere o valor de uma amostra de saída y (n). Por substituição sucessiva poderíamos escrever isto como Isto é exatamente como nosso velho amigo a forma convolução-soma de um filtro FIR, com a resposta de impulso fornecida pela expressão .5k. E o comprimento da resposta ao impulso é infinito. Assim, os mesmos argumentos que usamos para mostrar que os filtros FIR eram lineares agora se aplicam aqui. Até agora isso pode parecer um monte de barulho por não muito. O que é toda esta linha de investigação bom para Bem responder esta questão em etapas, começando com um exemplo. Não é uma grande surpresa que possamos calcular uma amostra exponencial por multiplicação recursiva. Vamos olhar para um filtro recursivo que faz algo menos óbvio. Desta vez, torná-lo um filtro de segunda ordem, de modo que a chamada para filtro será da forma Vamos definir o segundo coeficiente de saída a2 para -2cos (2pi40) eo terceiro coeficiente de saída a3 para 1, e olhar para o impulso resposta. Não é muito útil como um filtro, na verdade, mas gera uma onda senoidal amostrada (de um impulso) com três multiplicações por amostra. Para entender como e por que faz isso, e como filtros recursivos podem ser projetados e analisados em O caso mais geral, precisamos dar um passo atrás e dar uma olhada em algumas outras propriedades de números complexos, no caminho para a compreensão z transform. Documentation Descrição yulewalk desenhos recursiva IIR digital filtros usando um ajuste de mínimos quadrados para uma determinada resposta de freqüência . B, um yulewalk (n, f, m) retorna vetores de linha, b e a. Contendo os coeficientes n1 do filtro de ordem n IIR cujas características de frequência-magnitude correspondem aproximadamente às dadas nos vectores f e m: f é um vector de pontos de frequência, especificado na gama entre 0 e 1, em que 1 corresponde a metade da frequência de amostragem (A frequência de Nyquist). O primeiro ponto de f deve ser 0 eo último ponto 1. Todos os pontos intermediários devem estar em ordem crescente. São permitidos pontos de frequência duplicados, correspondendo a passos na resposta de frequência. M é um vector contendo a resposta de magnitude desejada nos pontos especificados em f. F e m devem ter o mesmo comprimento. O gráfico (f, m) exibe a forma do filtro. Os coeficientes do filtro de saída são ordenados em potências descendentes de z. (Z) A (z) b (1) b (2) z x2212 1 x22EF b (n 1) z x2212 na (1) a (2) z x2212 1 x22EF a (n 1) z x2212 n Ao especificar o Resposta de freqüência, evite transições excessivamente acentuadas de passband para stopband. Você pode precisar experimentar com a inclinação da região de transição para obter o melhor design de filtro. Selecione sua saída de CountryDocumentation tsmovavg (tsobj, s, lag) retorna a média móvel simples para o objeto da série de tempo financeiro, tsobj. Lag indica o número de pontos de dados anteriores usados com o ponto de dados atual ao calcular a média móvel. A saída tsmovavg (vetor, s, lag, dim) retorna a média móvel simples para um vetor. Lag indica o número de pontos de dados anteriores usados com o ponto de dados atual ao calcular a média móvel. A saída tsmovavg (tsobj, e, timeperiod) retorna a média móvel ponderada exponencial para a série de tempo financeiro objeto, tsobj. A média móvel exponencial é uma média móvel ponderada, em que timeperiod especifica o período de tempo. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. Percentual Exponencial 2 (TIMEPER 1) ou 2 (WINDOWSIZE 1). Saída tsmovavg (vetor, e, timeperiod, dim) retorna a média móvel ponderada exponencial para um vetor. A média móvel exponencial é uma média móvel ponderada, em que timeperiod especifica o período de tempo. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. (2 (intervalo de tempo 1)). A saída tsmovavg (tsobj, t, numperiod) retorna a média móvel triangular para a série de tempo financeiro objeto, tsobj. A média móvel triangular alisa os dados. Tsmovavg calcula a primeira média móvel simples com largura de janela de ceil (numperiod 1) 2. Em seguida, calcula uma segunda média móvel simples na primeira média móvel com o mesmo tamanho de janela. A saída tsmovavg (vetor, t, numperiod, dim) retorna a média móvel triangular para um vetor. A média móvel triangular alisa os dados. Tsmovavg calcula a primeira média móvel simples com largura de janela de ceil (numperiod 1) 2. Em seguida, calcula uma segunda média móvel simples na primeira média móvel com o mesmo tamanho de janela. A saída tsmovavg (tsobj, w, weights) retorna a média móvel ponderada para o objeto da série temporal financeira, tsobj. Fornecendo pesos para cada elemento na janela em movimento. O comprimento do vetor de peso determina o tamanho da janela. Se fatores de peso maiores forem usados para preços mais recentes e fatores menores para preços anteriores, a tendência é mais responsiva a mudanças recentes. A saída tsmovavg (vetor, w, pesos, dim) retorna a média móvel ponderada para o vetor fornecendo pesos para cada elemento na janela em movimento. O comprimento do vetor de peso determina o tamanho da janela. Se fatores de peso maiores forem usados para preços mais recentes e fatores menores para preços anteriores, a tendência é mais responsiva a mudanças recentes. A saída tsmovavg (tsobj, m, numperiod) retorna a média móvel modificada para o objeto da série de tempo financeiro, tsobj. A média móvel modificada é semelhante à média móvel simples. Considere o argumento numperiod como a defasagem da média móvel simples. A primeira média móvel modificada é calculada como uma média móvel simples. Valores subseqüentes são calculados adicionando o novo preço e subtraindo a última média da soma resultante. A saída tsmovavg (vetor, m, numperiod, dim) retorna a média móvel modificada para o vetor. A média móvel modificada é semelhante à média móvel simples. Considere o argumento numperiod como a defasagem da média móvel simples. A primeira média móvel modificada é calculada como uma média móvel simples. Valores subseqüentes são calculados adicionando o novo preço e subtraindo a última média da soma resultante. Dim 8212 dimensão para operar ao longo de inteiro positivo com valor 1 ou 2 Dimensão para operar junto, especificado como um inteiro positivo com um valor de 1 ou 2. dim é um argumento de entrada opcional e se não for incluído como uma entrada, o padrão Valor 2 é assumido. O padrão de dim 2 indica uma matriz orientada a linhas, onde cada linha é uma variável e cada coluna é uma observação. Se dim 1. a entrada é assumida como sendo um vetor de coluna ou uma matriz orientada a coluna, onde cada coluna é uma variável e cada linha uma observação. E 8212 Indicador para vetor de caracteres de média móvel exponencial A média móvel exponencial é uma média móvel ponderada, em que o tempo é o período de tempo da média móvel exponencial. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. Porcentagem exponencial 2 (TIMEPER 1) ou 2 (WINDOWSIZE 1) período de tempo 8212 Comprimento do período de tempo inteiro não negativo Selecionar país
Comments
Post a Comment