Tuesday 15 August 2017

Mudança Média E Convolução


Estou escrevendo uma função de média móvel que usa a função convolve em numpy, o que deve ser equivalente a (média móvel ponderada). Quando meus pesos são todos iguais (como em uma média aritmática simples), ele funciona bem: no entanto, quando eu tento usar uma média ponderada em vez do (para o mesmo dado) 3.667.4.667,5.667,6.667. Eu espero, eu consigo Se eu remover a bandeira válida, eu nem vejo os valores corretos. Eu realmente gostaria de usar convolve para o WMA, bem como MA, pois faz o código de limpeza (mesmo código, pesos diferentes) e caso contrário eu acho que eu tenho que percorrer todos os dados e pegar fatias. Qualquer ideia sobre este comportamento. Usando o MATLAB, como posso encontrar a média móvel de 3 dias de uma coluna específica de uma matriz e acrescentar a média móvel a essa matriz, estou tentando calcular a média móvel de 3 dias de baixo para o topo da matriz . Eu forneci o meu código: Dada a seguinte matriz a e máscara: tentei implementar o comando conv, mas recebo um erro. Aqui está o comando conv que eu tentei usar na 2ª coluna da matriz a: A saída que eu desejo é dada na seguinte matriz: Se você tiver alguma sugestão, eu apreciaria muito. Obrigado Para a coluna 2 da matriz a, eu estou informando a média móvel de 3 dias da seguinte forma e colocando o resultado na coluna 4 da matriz a (I renomeou a matriz a como 39desiredOutput39 apenas para ilustração). A média de 3 dias de 17, 14 e 11 é de 14 a média de 3 dias de 14, 11, 8 é 11, a média de 3 dias de 11, 8, 5 é de 8 e a média de 3 dias de 8, 5, 2 é 5. Não há valor nas 2 linhas inferiores para a 4ª coluna porque a computação para a média móvel de 3 dias começa na parte inferior. A saída 39valid39 não será mostrada até pelo menos 17, 14 e 11. Espero que isso faça sentido ndash Aaron 12 de junho 13 às 1:28 Em geral, isso ajudaria se você mostrar o erro. Neste caso, você está fazendo duas coisas erradas: primeiro sua convolução precisa ser dividida por três (ou o comprimento da média móvel) Em segundo lugar, observe o tamanho de c. Você não pode simplesmente se encaixar em c. A maneira típica de obter uma média móvel seria usar o mesmo: mas isso não se parece com o que você deseja. Em vez disso, você é obrigado a usar algumas linhas: o Guia de cientistas e engenheiros para processamento de sinal digital por Steven W. Smith, Ph. D. Como o nome indica, o filtro de média móvel opera pela média de um número de pontos do sinal de entrada para produzir cada ponto no sinal de saída. Na forma da equação, esta é escrita: onde é o sinal de entrada, é o sinal de saída e M é o número de pontos na média. Por exemplo, em um filtro de média móvel de 5 pontos, o ponto 80 no sinal de saída é dado por: Como alternativa, o grupo de pontos do sinal de entrada pode ser escolhido simetricamente em torno do ponto de saída: Isso corresponde à alteração da soma na Eq . 15-1 de: j 0 a M -1, para: j - (M -1) 2 para (M -1) 2. Por exemplo, em um filtro de média móvel de 10 pontos, o índice, j. Pode correr de 0 a 11 (média de um lado) ou -5 a 5 (média simétrica). A média simétrica requer que M seja um número ímpar. A programação é ligeiramente mais fácil com os pontos em apenas um lado no entanto, isso produz uma mudança relativa entre os sinais de entrada e de saída. Você deve reconhecer que o filtro de média móvel é uma convolução usando um kernel de filtro muito simples. Por exemplo, um filtro de 5 pontos possui o kernel de filtro: 82300, 0, 15, 15, 15, 15, 15, 0, 08230. Ou seja, o filtro médio móvel é uma convolução do sinal de entrada com um impulso retangular com um Área de um. A Tabela 15-1 mostra um programa para implementar o filtro de média móvel.

No comments:

Post a Comment