Thursday, 14 December 2017

Moving average matlab example


29 Setembro, 2017 Média móvel por convolução O que é média móvel e para que é bom Como a média móvel é feita usando a convolução Média móvel é uma operação simples usada geralmente para suprimir o ruído de um sinal: ajustamos o valor de cada ponto para a Média dos valores em sua vizinhança. Por uma fórmula: Aqui x é a entrada ey é o sinal de saída, enquanto o tamanho da janela é w, suposto ser ímpar. A fórmula acima descreve uma operação simétrica: as amostras são tomadas de ambos os lados do ponto real. Abaixo está um exemplo da vida real. O ponto em que a janela é colocada realmente é vermelho. Valores fora de x são supostos ser zeros: Para brincar e ver os efeitos da média móvel, dê uma olhada nesta demonstração interativa. Como fazê-lo por convolução Como você pode ter reconhecido, o cálculo da média móvel simples é semelhante à convolução: em ambos os casos, uma janela é deslizada ao longo do sinal e os elementos na janela são resumidos. Então, dar-lhe uma tentativa de fazer a mesma coisa usando convolução. Use os seguintes parâmetros: A saída desejada é: Como primeira aproximação, vamos tentar o que obtemos ao converter o sinal x pelo k kernel seguinte: A saída é exatamente três vezes maior do que o esperado. Também pode ser visto que os valores de saída são o resumo dos três elementos na janela. É porque durante a convolução a janela é deslizada ao longo, todos os elementos nele são multiplicados por um e, em seguida, resumido: yk 1 cdot x 1 cdot x 1 cdot x Para obter os valores desejados de y. A saída deve ser dividida por 3: Por uma fórmula incluindo a divisão: Mas não seria ótimo para fazer a divisão durante convolução Aqui vem a idéia, reorganizando a equação: Então vamos usar o k kernel seguinte: Desta forma, vamos Obter a saída desejada: Em geral: se queremos fazer a média móvel por convolução tendo um tamanho de janela de w. Vamos usar o seguinte k kernel: Uma função simples fazendo a média móvel é: Um exemplo de uso é: Download movAv. m (ver também movAv2 - uma versão atualizada permitindo a ponderação) Descrição Matlab inclui funções chamadas movavg e tsmovavg (time-series moving Média) na Caixa de Ferramentas Financeira, o movAv foi projetado para replicar a funcionalidade básica destes. O código aqui fornece um bom exemplo de gerenciamento de índices dentro de loops, o que pode ser confuso para começar. Ive deliberadamente mantido o código curto e simples para manter este processo claro. O movAv executa uma média móvel simples que pode ser usada para recuperar dados ruidosos em algumas situações. Funciona tomando uma média da entrada (y) sobre uma janela de tempo deslizante, cujo tamanho é especificado por n. Quanto maior for n, maior a quantidade de suavização do efeito de n é relativa ao comprimento do vetor de entrada y. E efetivamente (bem, tipo de) cria um filtro de freqüência lowpass - veja a seção de exemplos e considerações. Como a quantidade de suavização fornecida por cada valor de n é relativa ao comprimento do vetor de entrada, sempre vale a pena testar diferentes valores para ver o que é apropriado. Lembre-se também de que n pontos são perdidos em cada média se n é 100, os primeiros 99 pontos do vetor de entrada não contêm dados suficientes para uma média de 100pt. Isto pode ser evitado um pouco empilhando médias, por exemplo, o código eo gráfico abaixo comparam um número de diferentes médias de janela de comprimento. Observe como liso 1010pt é comparado a uma única 20pt média. Em ambos os casos, 20 pontos de dados são perdidos no total. Criar xaxis x1: 0.01: 5 Gerar ruído noiseReps 4 ruído repmat (randn (1, ceil (numel (x) noiseReps)), noiseReps, 1) reestruturação de ruído (ruído, 1, X) 10noise (1: length (x)) Médias de Perfrom: y2 movAv (y, 10) 10 pt y3 movAv (y2, 10) 1010 pt y4 movAv (y, 20) 20 pt y5 movAv (y, 40) 40 pt (X, y, y2, y3, y4, y5, y6) legenda (dados brutos, média móvel 10pt, 1010pt, 20pt, 40pt, 100pt) xlabel (x) ylabel Y) título (Comparação de médias móveis) movAv. m função de execução do programa movAv (y, n) A primeira linha define o nome das funções, entradas e saídas. A entrada x deve ser um vetor de dados para realizar a média em, n deve ser o número de pontos a executar a média sobre a saída conterá os dados médios retornados pela função. Prealocar a saída outputNaN (1, numel (y)) Encontrar o ponto médio de n midPoint round (n2) O trabalho principal da função é feito no loop for, mas antes de iniciar duas coisas são preparadas. Em primeiro lugar a saída é pré-alocada como NaNs, isso serviu dois propósitos. Em primeiro lugar, a pré-alocação é geralmente uma boa prática, pois reduz a memória que o Matlab tem de fazer, em segundo lugar, torna muito fácil colocar os dados médios em uma saída do mesmo tamanho do vetor de entrada. Isto significa que o mesmo xaxis pode ser usado mais tarde para ambos, o que é conveniente para plotar, alternativamente, os NaNs podem ser removidos mais tarde em uma linha de código (output output (A variável midPoint será usada para alinhar os dados no vetor de saída. N 10, 10 pontos serão perdidos porque, para os primeiros 9 pontos do vetor de entrada, não há dados suficientes para tomar uma média de 10. Como a saída será menor do que a entrada, ele precisa ser alinhado corretamente. Ser usado para que uma quantidade igual de dados seja perdida no início e no fim e a entrada seja mantida alinhada com a saída pelos buffers NaN criados quando a saída de pré-alocação for. Over (a: b) ban Calcular a saída média (amidPoint) mean (y (a: b)) end No loop for, uma média é tomada em cada segmento consecutivo da entrada. Definido como 1 até o comprimento da entrada (y), menos os dados que serão perdidos (n).Se a entrada é de 100 pontos lo Ng e n é 10, o ciclo irá decorrer de (a) 1 a 90. Isto significa a proporciona o primeiro índice do segmento a ser calculado a média. O segundo índice (b) é simplesmente an-1. Assim, na primeira iteração, a1. N10. Assim b 11-1 10. A primeira média é tomada sobre y (a: b). Ou x (1:10). A média desse segmento, que é um valor único, é armazenada na saída no índice amidPoint. Ou 156. Na segunda iteração, a2. B 210-1 11. Assim a média é tomada sobre x (2:11) e armazenada na saída (7). Na última iteração do laço para uma entrada de comprimento 100, a91. B 9010-1 100 assim que a média é tomada sobre x (91: 100) e armazenada na saída (95). Isto deixa a saída com um total de n (10) valores de NaN no índice (1: 5) e (96: 100). Exemplos e considerações As médias móveis são úteis em algumas situações, mas nem sempre são a melhor escolha. Aqui estão dois exemplos onde eles não são necessariamente ótimos. Calibração do microfone Este conjunto de dados representa os níveis de cada freqüência produzida por um alto-falante e gravada por um microfone com uma resposta linear conhecida. A saída do alto-falante varia com a freqüência, mas podemos corrigir essa variação com os dados de calibração - a saída pode ser ajustada em nível para considerar as flutuações na calibração. Observe que os dados brutos são barulhentos - isso significa que uma pequena mudança de freqüência parece exigir uma grande alteração errática no nível a ser considerado. É este realista Ou é este um produto do ambiente de gravação É razoável, neste caso, para aplicar uma média móvel que suaviza a curva de nível de freqüência para fornecer uma curva de calibração que é ligeiramente menos errático. Mas por que isso não é o ideal neste exemplo? Mais dados seriam melhores - múltiplas calibrações executadas em média destruiriam o ruído no sistema (enquanto o seu aleatório) e fornecessem uma curva com menos detalhes sutis perdidos. A média móvel pode somente aproximar isto, e pode remover alguns mergulhos da freqüência mais elevada e os picos da curva que realmente existem. Seno ondas Usando uma média móvel em ondas senoidal destaca dois pontos: A questão geral de escolher um número razoável de pontos para realizar a média mais. Seu simples, mas há métodos mais eficazes de análise de sinal do que a média dos sinais oscilantes no domínio do tempo. Neste gráfico, a onda sinusoidal original é plotada em azul. O ruído é adicionado e plotado como a curva laranja. Uma média móvel é realizada em números diferentes de pontos para ver se a onda original pode ser recuperada. 5 e 10 pontos fornecem resultados razoáveis, mas não removam o ruído inteiramente, onde como um número maior de pontos começa a perder detalhe de amplitude como a média estende-se sobre fases diferentes (lembre-se que a onda oscila em torno de zero e média (-1 1) 0) . Uma abordagem alternativa seria construir um filtro passa-baixa que possa ser aplicado ao sinal no domínio da frequência. Eu não vou entrar em detalhes, pois vai além do escopo deste artigo, mas como o ruído é consideravelmente maior freqüência do que a freqüência das ondas fundamental, seria bastante fácil, neste caso, para construir um filtro passa-baixa que irá remover a alta freqüência Ruído. Médias de mobilidade: quais são eles Entre os mais populares indicadores técnicos, médias móveis são usados ​​para medir a direção da tendência atual. Cada tipo de média móvel (comumente escrito neste tutorial como MA) é um resultado matemático que é calculado pela média de um número de pontos de dados passados. Uma vez determinada, a média resultante é então plotada em um gráfico, a fim de permitir que os comerciantes olhar para os dados suavizados, em vez de se concentrar nas flutuações de preços no dia-a-dia que são inerentes a todos os mercados financeiros. A forma mais simples de uma média móvel, apropriadamente conhecida como média móvel simples (SMA), é calculada tomando-se a média aritmética de um dado conjunto de valores. Por exemplo, para calcular uma média móvel básica de 10 dias, você adicionaria os preços de fechamento dos últimos 10 dias e dividiria o resultado por 10. Na Figura 1, a soma dos preços dos últimos 10 dias (110) é Dividido pelo número de dias (10) para chegar à média de 10 dias. Se um comerciante deseja ver uma média de 50 dias, em vez disso, o mesmo tipo de cálculo seria feito, mas incluiria os preços nos últimos 50 dias. A média resultante abaixo (11) leva em conta os últimos 10 pontos de dados, a fim de dar aos comerciantes uma idéia de como um activo é fixado o preço em relação aos últimos 10 dias. Talvez você está se perguntando por que os comerciantes técnicos chamam essa ferramenta de uma média móvel e não apenas uma média regular. A resposta é que, à medida que novos valores se tornam disponíveis, os pontos de dados mais antigos devem ser eliminados do conjunto e novos pontos de dados devem entrar para substituí-los. Assim, o conjunto de dados está em constante movimento para contabilizar novos dados à medida que fica disponível. Este método de cálculo garante que apenas as informações atuais estão sendo contabilizadas. Na Figura 2, uma vez que o novo valor de 5 é adicionado ao conjunto, a caixa vermelha (representando os últimos 10 pontos de dados) move-se para a direita eo último valor de 15 é eliminado do cálculo. Como o valor relativamente pequeno de 5 substitui o valor alto de 15, você esperaria ver a média da diminuição do conjunto de dados, o que faz, nesse caso de 11 para 10. O que as médias móveis parecem uma vez MA foram calculados, eles são plotados em um gráfico e, em seguida, conectado para criar uma linha média móvel. Estas linhas de curvas são comuns nos gráficos de comerciantes técnicos, mas como eles são usados ​​podem variar drasticamente (mais sobre isso mais tarde). Como você pode ver na Figura 3, é possível adicionar mais de uma média móvel a qualquer gráfico ajustando o número de períodos de tempo usados ​​no cálculo. Essas linhas curvas podem parecer distrativas ou confusas no início, mas você vai crescer acostumado com eles como o tempo passa. A linha vermelha é simplesmente o preço médio nos últimos 50 dias, enquanto a linha azul é o preço médio nos últimos 100 dias. Agora que você entende o que é uma média móvel e o que parece, bem introduzir um tipo diferente de média móvel e analisar como ele difere da mencionada média móvel simples. A média móvel simples é extremamente popular entre os comerciantes, mas como todos os indicadores técnicos, ele tem seus críticos. Muitos indivíduos argumentam que a utilidade do SMA é limitada porque cada ponto na série de dados é ponderado o mesmo, independentemente de onde ele ocorre na seqüência. Os críticos argumentam que os dados mais recentes são mais significativos do que os dados mais antigos e devem ter uma maior influência no resultado final. Em resposta a essa crítica, os comerciantes começaram a dar mais peso aos dados recentes, o que desde então levou à invenção de vários tipos de novas médias, a mais popular das quais é a média móvel exponencial (EMA). Média móvel exponencial A média móvel exponencial é um tipo de média móvel que dá mais peso aos preços recentes, na tentativa de torná-lo mais responsivo (média móvel ponderada, média móvel ponderada e qual é a diferença entre um SMA e um EMA) Novas informações. Aprender a equação um pouco complicada para o cálculo de um EMA pode ser desnecessário para muitos comerciantes, uma vez que quase todos os pacotes gráficos fazer os cálculos para você. No entanto, para você geeks matemática lá fora, aqui está a equação EMA: Ao usar a fórmula para calcular o primeiro ponto da EMA, você pode notar que não há valor disponível para usar como o EMA anterior. Este pequeno problema pode ser resolvido iniciando o cálculo com uma média móvel simples e continuando com a fórmula acima a partir daí. Fornecemos uma planilha de exemplo que inclui exemplos reais de como calcular uma média móvel simples e uma média móvel exponencial. A diferença entre a EMA ea SMA Agora que você tem uma melhor compreensão de como a SMA ea EMA são calculadas, vamos dar uma olhada em como essas médias são diferentes. Ao olhar para o cálculo da EMA, você vai notar que mais ênfase é colocada sobre os pontos de dados recentes, tornando-se um tipo de média ponderada. Na Figura 5, o número de períodos utilizados em cada média é idêntico (15), mas a EMA responde mais rapidamente aos preços em mudança. Observe como a EMA tem um valor maior quando o preço está subindo, e cai mais rápido do que o SMA quando o preço está em declínio. Esta responsividade é a principal razão pela qual muitos comerciantes preferem usar o EMA sobre o SMA. O que significam os diferentes dias As médias móveis são um indicador totalmente personalizável, o que significa que o usuário pode escolher livremente o período de tempo que desejar ao criar a média. Os períodos de tempo mais comuns utilizados nas médias móveis são 15, 20, 30, 50, 100 e 200 dias. Quanto menor o intervalo de tempo usado para criar a média, mais sensível será às mudanças de preços. Quanto mais tempo o intervalo de tempo, menos sensível ou mais suavizado, a média será. Não há um frame de tempo certo para usar ao configurar suas médias móveis. A melhor maneira de descobrir qual funciona melhor para você é experimentar com uma série de diferentes períodos de tempo até encontrar um que se adapta à sua estratégia. Médias móveis: Como usá-los

No comments:

Post a Comment