Octave Moving Average Function
Weighted Moving Average. Em resposta a este post por Luca Delucchi. Um método on-line para fazer wma ou seja, onde você pode adicionar um único valor de uma só vez com uma janela expinential que pesa mais recentes eventos mais fortes do que os menos recentes funciona como this. xmean t 1 Exp -1 tau xmean txt tau. this dá-lhe um wma de xt Tau é algo como o comprimento dos eventos de memória mais para trás que tau não será lembrado muito bem. Am 10 08 2007 um 09 19 schrieb Luca Delucchi. Hi, I Pode fazer uma função na Média Móvel Ponderada onde o valor é assumido no modo automático esta minha idéia y y1, y2, y3, y4, y5 função wma y y1 2 y2 y3 4 y2 2 y3 y4 4 etc. etc função final eu não poderia repetir A fórmula y1 2 y2 y3 4 porque se o comprimento do vetor é diferente i deve mudar a função, mas tem apenas uma fórmula que usam a fórmula para todos os valores de vetor Eu espero que eu dei uma explicação clara Luca Help-octave mailing list hidden email. Não é uma coisa de oitava, mas uma coisa de processamento de sinal Uma resposta de entrada finita FIR Ter é determinada pelo vetor dos coeficientes, portanto, se o filtro tem comprimento 4, a saída seria algo como ytb 1 xtb 2 x t-1 b 3 x t-2 b 4 x t3.So quando b ones 1 , 4 4, é apenas a média dos últimos quatro elementos. Na oitava, você pode usar o filtro de função para fazer exatamente isso, se x é o seu sinal, você pode simplesmente fazer y filtro b, 1, xP S Isso é quase O mesmo que a sugestão de Sren para usar a convolução usando a função conv A única diferença que eu acredito é que o filtro vai dar a mesma saída como conv, mas truncado para o comprimento de x. On 8 10 07, Luca Delucchi oculto e-mail escreveu 2007 8 10 , Schirmacher, Rolf e-mail escondido Filtro com um filtro FIR Coeficientes seria b 1 1 1 1 4. O que é isso Desculpe, mas eu sou um novato de oitava. ----- Mensagem Original ----- De Luca Delucchi mailto e-mail escondido Enviado sexta-feira, 10 de agosto de 2007 9 20 AM Para oitava Sujeito Média Móvel Ponderada Oi, Posso fazer uma função na Média Móvel Ponderada onde o valor é levado em modo automático esta minha idéia Y1, y2, y3, y4, y5 função wma y y1 2 y2 y3 4 y2 2 y3 y4 4 etc etc função final Eu não poderia repetir a fórmula y1 2 y2 y3 4 porque se o comprimento do vetor é diferente i deve mudar o Função, mas tem apenas uma fórmula que usam a fórmula para todos os valores de vetor Eu espero que eu dei uma explicação clara Luca Help-octave mailing list hidden email. Em resposta a este post por Luca Delucchi. Hi, eu posso fazer uma função em Weighted Movendo Média onde o valor são tomar em modo automático esta minha idéia. Y1, y2, y3, y4, y5 função wma y y1 2 y2 y3 4 y2 2 y3 y4 4 etc etc final function. I não poderia repetir a fórmula y1 2 y2 y3 4 porque se o comprimento do vetor é diferente i deve mudar A função, mas tem apenas uma fórmula que usam a fórmula para todos os valores de vector. Você tem que pensar sobre seus dados de uma maneira diferente, se você quiser usar a oitava Matlab eficientemente Os dados são representados como vetores ou matrizes, e você deve fazer Todas as operações sobre os dados inteiros --- não pense em elementos y1, y2, etc, mas sim lidar com todo o vetor y Você terá que misturar elementos vetoriais de diferentes posições, então você precisa construir versões deslocadas do vetor For Exemplo, y 2 end é o vetor cujo primeiro elemento é o segundo elemento de y. Quando você faz isso desta forma, ele força você a reconhecer vários problemas que são varridos sob o tapete caso contrário, por exemplo, qual é o significado de sua média ponderada Para y1, que não tem um ponto de dados anterior. Uma abordagem pode ser a duplica Te o primeiro e último ponto. temp y 1 yy final temperatura média 1 end-2 2 temp 2 end-1 temp 3 end 4.ou desistir e admitir que você só pode calcular a média em um subconjunto de pontos. average y 1 End-2 2 y 2 end-1 y 3 end 4.There é uma função de oitava chamada filtro que pode aplicar arbitrária filtro linear é bastante complicado porque permite feedback linear que você aren t interessado em que você d usar uma forma específica de Um vetor de realimentação b 1 0 0 0 0 0. filtro médio 1 2 1 4,1, y. Finalmente, Octave tem alguns filtros construídos no meu favorito é o Savitzky-Golay 2-momento preservando filter.31 Signal Processing. This capítulo descreve As funções de processamento de sinal e de transformada de Fourier rápida disponíveis nas transformações de Fourier Rápida de Octave são calculadas com as bibliotecas FFTW ou FFTPACK dependendo de como Octave é construída a transformada discreta de Fourier de A usando um algoritmo FFT de Transformada Rápida de Fourier. - singleton dimensão da matriz Assim, se x é uma matriz, fft xc Omputes a FFT para cada coluna de x. If chamado com dois argumentos, n é esperado para ser um número inteiro que especifica o número de elementos de x para usar, ou uma matriz vazia para especificar que seu valor deve ser ignorado Se n é maior do que o Dimensão ao longo da qual a FFT é calculada, então x é redimensionado e preenchido com zeros Caso contrário, se n é menor que a dimensão ao longo da qual a FFT é calculada, então x é truncado. Se chamado com três argumentos, dim é um número inteiro que especifica a dimensão Da matriz ao longo da qual a FFT é executada, transformam a transformada de Fourier discreta inversa de A usando um algoritmo FFT de Transformada de Fourier Rápida. A FFT inversa é calculada ao longo da primeira dimensão não unitária da matriz Assim, se x é uma matriz, fft x calcula a FFT inversa para cada coluna de x. If chamado com dois argumentos, n é esperado para ser um número inteiro que especifica o número de elementos de x para usar, ou uma matriz vazia para especificar que seu valor deve ser ignorado Se n é maior que a dimensão Alon G que a FFT inversa é calculada, então x é redimensionado e preenchido com zeros Caso contrário, se n é menor do que a dimensão ao longo da qual a FFT inversa é calculada, então x é truncado. Se chamado com três argumentos, dim é um inteiro especificando a Dimensão da matriz ao longo da qual a FFT inversa é executadaputa a transformada de Fourier discreta bidimensional de A usando um algoritmo FFT de Transformada de Fourier Rápida. Os argumentos opcionais m e n podem ser usados especifique o número de linhas e colunas de A para usar Se Do que o tamanho de AA é redimensionado e preenchido com zeros. Se A é uma matriz multi-dimensional, cada sub-matriz bidimensional de A é tratada separadamentepute a transformada de Fourier discreta bidimensional inversa de A usando um Fast Fourier Transform FFT algoritmo. Os argumentos opcionais m e n podem ser usados especificar o número de linhas e colunas de A para usar Se qualquer um destes é maior do que o tamanho de AA é redimensionado e preenchido com zeros. If A é um multi-dimensi Cada sub-matriz bidimensional de A é tratada separadamente pela transformada de Fourier discreta N-dimensional de A usando um algoritmo FFT de Transformada de Fourier Rápida. O tamanho do argumento vetorial opcional pode ser usado especifica as dimensões da matriz a ser usada Se Um elemento de tamanho é menor do que a dimensão correspondente de A, então a dimensão de A é truncada antes de executar a FFT. Caso contrário, se um elemento de tamanho é maior do que a dimensão correspondente, então A é redimensionado e preenchido com zerospor a inversa N-dimensional Transformada de Fourier discreta de A usando um algoritmo FFT de Transformada Rápida de Fourier. O tamanho do argumento vetorial opcional pode ser usado especifique as dimensões da matriz a ser usada Se um elemento de tamanho é menor que a dimensão correspondente de A então a dimensão de A é truncada Antes de executar a FFT inversa Caso contrário, se um elemento de tamanho é maior do que a dimensão correspondente, então A é redimensionado e preenchido com zeros. Octave usa o FFTW lib Raries para executar cálculos FFT Quando Octave inicia e inicializa as bibliotecas FFTW, eles lêem um arquivo de sistema largo em um sistema Unix, é tipicamente etc sabedoria fftw que contém informações úteis para acelerar os cálculos FFT Esta informação é chamada a sabedoria O sistema - Permitindo que a sabedoria seja compartilhada entre todas as aplicações usando as bibliotecas FFTW. Use a função fftw para gerar e salvar a sabedoria Usando os utilitários fornecidos junto com as bibliotecas FFTW em sistemas Unix, você pode até adicionar sabedoria gerada por Octave para o Arquivo de sabedoria de todo o sistema. Manage FFTW sabedoria data. Wisdom dados podem ser usados para acelerar significativamente o cálculo dos FFTs, mas implica um custo inicial em seu cálculo Quando as bibliotecas FFTW são inicializados, eles lêem um arquivo de sabedoria do sistema em geral, etc Fftw sabedoria, permitindo que a sabedoria para ser compartilhada entre outras aplicações do que Octave Alternativamente, a função fftw pode ser usado para importar sabedoria Por exemplo. A sabedoria usada por Octave para a sabedoria de cordas Esta seqüência pode então ser salva em um arquivo e restaurada usando os comandos save e load respectivamente Esta sabedoria existente pode ser reimportada da seguinte forma. Se a sabedoria é uma string vazia, então a sabedoria usada É desmarcada. Durante o cálculo de Fourier transforma mais sabedoria é gerada A moda em que esta sabedoria é gerada também é controlada pela função fftw Existem cinco modos diferentes em que a sabedoria pode ser tratado. Especifica que nenhuma medida em tempo de execução do A melhor forma de calcular um particular é realizada e uma heurística simples é usada para escolher um plano provavelmente sub-ótimo. A vantagem deste método é que há pouca ou nenhuma sobrecarga na geração do plano, o que é apropriado para uma transformada de Fourier Que será calculado uma vez. Neste caso, uma gama de algoritmos para realizar a transformação é considerada eo melhor é selecionado com base em seu tempo de execução. Similar a medida, mas um maior rang E de algoritmos é considerado. Como medida, mas todos os possíveis algoritmos que podem ser usados para tratar a transformar são considerados. Como a medição de tempo de execução do algoritmo pode ser caro, este é um compromisso onde a medida é usada para transformadas até o tamanho de 8192 e além disso que o método de estimativa é utilizado. O método padrão é a estimativa O método atual pode ser consultado com. ou definido usando. Note que sabedoria calculada será perdida ao reiniciar Octave No entanto, os dados de sabedoria pode ser recarregado se ele é salvo Para um arquivo como descrito acima Saved sabedoria arquivos não devem ser usados em diferentes plataformas, uma vez que não será eficiente eo ponto de cálculo da sabedoria é lost. The número de threads utilizadas para a computação dos planos e executar as transformações podem ser definidas com. Observe que o octave deve ser compilado com suporte FFTW multi-threaded para este recurso O número de processadores disponíveis para o processo atual é usado por default. Convolve dois vetores usando o FFT para computation. c ff Tconv xy retorna um vetor de comprimento igual ao comprimento x comprimento y - 1 Se x e y são os vetores de coeficientes de dois polinômios, o valor retornado é o vetor de coeficientes do polinômio do produto. O cálculo usa a FFT chamando a função fftfilt If O argumento opcional n é especificado, é usado um FFT de ponto N. Filtro x com o filtro FIR b usando a FFT. If x é uma matriz, filtra cada coluna da matriz. Depois do terceiro argumento opcional, n fftfilt usa a sobreposição - add método para filtrar x com b usando um N-ponto FFT O tamanho FFT deve ser uma potência igual a 2 e deve ser maior ou igual ao comprimento de b Se o n especificado não atende a esses critérios, é automaticamente ajustado Para o valor mais próximo que does. Apply um filtro digital 1-D para o x. filter de dados retorna a solução para a seguinte equação de diferença linear, time-invariant. where N comprimento a -1 e M comprimento b -1 O resultado é calculado Sobre a primeira dimensão não-singleton de x ou mais de dim se fornecida. A forma ivalente da equação é. Onde caa 1 e dba 1. Se o quarto argumento si é fornecido, é tomado como o estado inicial do sistema e o estado final é retornado como sf O vetor de estado é um vetor de coluna cujo comprimento é Igual ao comprimento do vetor de coeficiente mais longo menos um Se si não for fornecido, o vetor de estado inicial é ajustado para todos os zeros. Em termos da Transformação Z, y é o resultado de passar o sinal de tempo discreto x através de um sistema caracterizado Pela função de sistema racional seguinte. Aplicar o filtro de FIR 2-D b para x. Se a forma do argumento for especificada, retornar uma matriz da forma desejada Valores possíveis are. pad x com zeros em todos os lados antes de filtering. unpadded x default. Trim x após a filtragem para efeitos de borda não são included. Note isso é apenas uma variação na convolução, com os parâmetros invertidos e b girado 180 graus. Retornar a resposta de freqüência complexa h do filtro IIR racional cujo numerador e denominador coeficientes são b e a respeito A resposta é avaliada em n frequências angulares entre 0 e 2 pi. O valor de saída w é um vetor das freqüências. Se a é omitido, assume-se que o denominador é 1, isto corresponde a um filtro FIR simples. Se n é Omitido, um valor de 512 é assumido Para a computação mais rápida, n deve fatorar em um pequeno número de pequenos primes. Se o quarto argumento, todo é omitido, a resposta é avaliada em freqüências entre 0 e pi. Evaluar a resposta nas freqüências específicas em O vetor w Os valores para w são medidos em radianos. Freqüências de retorno em Hz em vez de radianos assumindo uma taxa de amostragem Fs Se você está avaliando a resposta em freqüências específicas w aquelas freqüências devem ser solicitadas em Hz, em vez de radianos. Plot a magnitude ea fase Resposta de h em vez de retorná-los. Plot a resposta de magnitude e fase de h. Se o opcional freqnorm argumento é verdadeiro, o vetor de freqüência w está em unidades de radianos normalizados Se freqnorm é falso, ou não dado, então w é Medido em Hertzpute a função sinc. Return sin pi x pi x. Unwrap radian fases, adicionando múltiplos de 2 pi como apropriado para remover saltos maiores do que tol. tol valores padrão para pi. Unwrap irá trabalhar ao longo da dimensão dim Se dim é não especificado ele defaults Para a primeira dimensão não-singleton. Ajustar um modelo de regressão ARCH para a série de tempo y usando o algoritmo de pontuação no original ARCH de Engle paper. in em que et é N 0, ht dado um vetor série de tempo y até o tempo t-1 E uma matriz de regressores ordinários x até t A ordem da regressão da variância residual é especificada por p. Se invocado como archfit ykp com um inteiro positivo k encaixe um processo de ARCH kp, isto é, faça o acima com a t-ésima linha De x dado por. Opcionalmente, pode-se especificar o número de iterações iter o fator de atualização gama e valores iniciais a0 e b0 para o algoritmo de pontuação. Simular uma seqüência ARCH de comprimento t com AR coeficientes b e coeficientes CH a. O resultado yt segue O modelo. Onde et dado y até o tempo t-1 É N0, ht com. Para um modelo de regressão linear. permitir um teste Lagrange Multiplier LM da hipótese nula de heteroscedascity condicional contra a alternativa de CH pI e o modelo is. given y até t-1 e x até tet É N 0, ht com. e o nulo é a 1 ap 0. Se o segundo argumento é um inteiro escalar, k executa o mesmo teste em um modelo de auto-regressão linear de ordem kie com. como a t-ésima linha de x. Under O nulo, LM tem aproximadamente uma distribuição chisquare com p graus de liberdade e pval é o p-valor 1 menos o CDF desta distribuição em LM do teste. Se nenhum argumento de saída é dado, o p-valor é exibido. Simulação do modelo ARMA. O modelo ARMA é definido por: em que k é o comprimento do vetor al é o comprimento do vetor b ee é ruído branco gaussiano com variância v A função retorna um vetor de comprimento t. O parâmetro opcional n Dá o número de manequim xi usado para inicialização, ie uma seqüência de comprimento tn é gerado e xn 1 tn é Retornado Se n é omitido, n 100 é usado. Dado um vetor de série temporal y retorna uma matriz com uns na primeira coluna e os primeiros k valores retardados de y nas outras colunas. Em outras palavras, para tk 1, yt -1 A matriz resultante pode ser usada como uma matriz regressora em autoregressões. Retornar os coeficientes de filtro de uma janela triangular de Bartlett de comprimento m. Para uma definição da janela de Bartlett veja, Por exemplo, AV Oppenheim RW Schafer, processamento de sinais de tempo discreto. Retornar os coeficientes de filtro de uma janela Blackman de comprimento m. Se o argumento opcional periódica é dada, a forma periódica da janela é retornada Isso é equivalente à janela de comprimento m 1 Com o último coeficiente removido O argumento opcional simétrico é equivalente a não especificar um segundo argumento. Para uma definição da janela de Blackman, veja, por exemplo, AV Oppenheim RW Schafer, Processamento de Sinal de Tempo Discreto. Se x for um vetor, detrend xp remove o Melhor ajuste de um polinômio de Der p a partir dos dados x. If x é uma matriz, detrend xp faz o mesmo para cada coluna em x. O segundo argumento p é opcional Se não for especificado, um valor de 1 é assumido Isso corresponde à remoção de uma tendência linear. A ordem do polinômio também pode ser dada como uma seqüência, caso em que p deve ser ou constante corresponde a p 0 ou linear corresponde a p 1.Return o estimador d para o parâmetro de diferenciação de uma série de tempo integrado. As freqüências de 2 Se pi, 2 pi b T são usados para a estimação Se b é omitido, o intervalo 2 pi T, 2 pi a T é usado Se ambos b e a são omitidos, então um 0 5 sqrt T e b 1 5 sqrt T é usado , Onde T é o tamanho da amostra Se x é uma matriz, o parâmetro de diferenciação de cada coluna é estimado. Os estimadores para todas as frequências nos intervalos descritos acima são retornados em dd. O valor de d é simplesmente a média de dd. Referência PJ Brockwell RA Davis séries de tempo Theory e métodos Springer 1987.Perform uma etapa do algoritmo de Durbin-Levinson. Tor c especifica as autocovariâncias gamma0,, gammat de lag 0 a t oldphi especifica os coeficientes baseados em ct -1 e oldv especifica o erro correspondente. Se oldphi e oldv forem omitidos, todas as etapas de 1 a t do algoritmo são executadas. Um deslocamento do vetor x para uso com as funções fft e ifft, para mover a freqüência 0 para o centro do vetor ou matriz. Se x é um vetor de N elementos correspondentes a N amostras de tempo espaçadas por dt então fftshift fft X corresponde a frequências. Se x é uma matriz, o mesmo é válido para linhas e colunas Se x é uma matriz, então o mesmo é válido ao longo de cada dimensão. O argumento opcional dim pode ser usado para limitar a dimensão ao longo da qual a permutação ocorre. A ação da função fftshift. Para comprimento uniforme x fftshift é seu próprio inverso, mas os comprimentos estranhos diferem ligeiramentepute as diferenças fracionárias 1-L dx onde L denota o operador-lag e d é maior que -1.Return os coeficientes de filtro de a Hamming janela de lengt H m. Se o argumento opcional periódico é dado, a forma periódica da janela é retornada Isto é equivalente à janela de comprimento m 1 com o último coeficiente removido O argumento opcional simétrico é equivalente a não especificar um segundo argumento. Para uma definição Da janela de Hamming ver, por exemplo, AV Oppenheim RW Schafer, processamento de sinal de tempo discreto. Retornar os coeficientes de filtro de uma janela Hanning de comprimento m. Se o argumento opcional periódica é dada, a forma periódica da janela é retornada Isso é equivalente a A janela de comprimento m 1 com o último coeficiente removido O argumento opcional simétrico é equivalente a não especificar um segundo argumento. Para uma definição da janela de Hanning veja, por exemplo, AV Oppenheim RW Schafer, Processamento de Sinal de Tempo Discreto. Amostra x através da estatística de escala redimensionada. Se x é uma matriz, o parâmetro é estimado para cada coluna. Retornar o pico de polinômio de interpolação de Hermite cúbico de pedaços dos pontos x e Y. If chamado com dois argumentos, retorna o polinômio pp que pode ser usado com ppval para avaliar o polinômio em pontos específicos. Quando chamado com um terceiro argumento de entrada, pchip avalia o polinômio pchip nos pontos xi A terceira forma de chamada é equivalente Para ppval pchip xy, xi. A variável x deve ser um vetor estritamente monotônico, quer aumentar ou diminuir de comprimento ny pode ser um vetor ou matriz Se y é um vetor, então ele deve ser o mesmo comprimento n como x Se y é um array Então o tamanho de y deve ter a forma s1 s2, sk n A matriz é remodelada internamente a uma matriz onde a dimensão inicial é dada por s1 s2 sk e cada linha dessa matriz é tratada separadamente Note que isso é exatamente oposta a interp1 Mas é feito para a compatibilidade MATLAB. Return o periodograma Power Densidade Espectral de x. As entradas possíveis são. data vector Se x é real-valor um espectro unilateral é estimado Se x é complexo valor, ou intervalo especifica twosided todo o espectro É est Imated. window weight data Se janela está vazia ou não especificada uma janela retangular padrão é usada Caso contrário, a janela é aplicada ao sinal x win antes de calcular o periodograma Os dados da janela devem ser um vetor do mesmo comprimento que x. número de bins de freqüência O padrão é 256 ou a próxima potência maior de 2 maior do que o comprimento de x máximo 256, 2 próximopow2 comprimento x Se nfft é maior que o comprimento da entrada então x será zero-acolchoado ao comprimento de nfft. sampling rate The O padrão é 1.Range de um espectro espectro de cálculos unilaterais de twosided cálculos de espectro from. The segunda saída opcional w são as freqüências angulares normalizadas Para um cálculo unilateral w está na faixa 0, pi se nfft é par e 0, pi se nfft É estranho Similarmente, para um cálculo de dois lados w está na faixa 0, 2 pi ou 0, 2 pi dependendo de nfft. Se for especificada uma frequência de amostragem, Fs então as frequências de saída f estarão na gama 0, Fs 2 Ou 0, Fs 2 para cálculos unilaterais Para cálculo de dois lados S o intervalo será 0, Fs. Quando chamado sem saídas o periodograma é imediatamente traçadas na figura atual window. Return um sinetone de freqüência freq com um comprimento de segundo segundos na taxa de amostragem taxa e com amplitude ampl. The argumentos freq e Ampl podem ser vetores de tamanho comum. Os padrões são rate 8000, sec 1 e ampl 64.Return um m-elemento vetor com i-ésimo elemento dado por sin 2 pi id -1 n. O valor padrão para d é 0 e O valor padrão para n é m. Return o estimador de densidade espectral dado um vetor de autocovariâncias c janela nome win e largura de banda, b. O nome da janela, eg triângulo ou retângulo é usado para procurar uma função chamada win lw. If win é omitido , A janela de triângulo é usada. Se b é omitido, 1 sqrt comprimento x é used. Return o estimador de densidade espectral dado um vetor de dados x janela nome win e largura de banda, b. O nome da janela, por exemplo triângulo ou retângulo é usado para procurar Uma função chamada win sw. If win é omitido, a janela de triângulo é used. If b é omi 1 comprimento sqrt x é usado. Return Spencer s média móvel de 15 pontos de cada coluna de xpute a transformada de Fourier de curto prazo do vetor x com coeficientes numcoef, aplicando uma janela de pontos de dados winsize e um incremento de pontos inc. Computando a transformada de Fourier, uma das seguintes janelas é aplicada. Os nomes de janela podem ser passados como seqüências de caracteres ou pelo número de wintype. Os padrões a seguir são usados para argumentos não especificados winsize 80, inc 24, numcoef 64 e wintype 1.y stft X retorna os valores absolutos dos coeficientes de Fourier de acordo com as frequências positivas numcoef. Yc stft x retorna toda a matriz STFT y e um vetor de 3 elementos c contendo o tamanho da janela, o incremento eo tipo de janela, que é necessário para a função de síntese um sinal de sua transformada de Fourier de curto período y e um elemento de 3 elementos Vector c especificando o tamanho da janela, o incremento e o tipo de janela. Os valores y e c podem ser obtidos por. Modelo AR p com estimativas de Yule-Walker dado um vetor c de autocovariâncias gamma0,, gammap. Retorna os coeficientes AR, a E a variância de ruído branco, v. vectorized moving media. y filtro 1 10 uns 1, 10, 1, x. This pressupõe que os valores em tempo negativo x 0, x -1, etc são todos zero Assim, por exemplo, O primeiro valor de y seria x 1 10.On Fri, 7 de maio de 2010 às 3 33 da tarde, Tim Rueth escondido e-mail escreveu que eu olhei tanto conv e filtro, mas não consigo descobrir como fazer uma média móvel com eles Talvez Eu não estou entendendo as funções da entrada vars corretamente. Deixe-me dizer que tenho uma matriz, um rand 1,100 Você pode me dizer como eu d usar conv e filtro para t Ake, digamos a média móvel de 10 dias da mesma, com uma ponderação de 0 5. ----- Mensagem Original ----- De Andy Buckle email mailto escondido Enviado quinta-feira, 06 de maio de 2010 12 06 AM Para email escondido Cc oculto e-mail Assunto Re vectorizada movendo conv média também é um arquivo m, mas ele só tem alguns ifs em seguida, ele chama filtro para fazer o trabalho que é um arquivo de outubro Andy On Thu, 06 de maio de 2010 às 6 28 AM, Tim Rueth escondido e-mail escrito Alguém sabe como ter um n-dia ponderada média móvel de um vetor sem usar um para-loop Eu olhei para o código M para movavg e ele usa um para-loop, então eu estou supondo que provavelmente isn Ta forma, mas eu pensei que eu iria verificar Obrigado - Ajuda Ajuda-octave mailing list e-mail escondido - fivela andy. Thanks para mostrar como usar o filtro para fazer uma média móvel simples eu implementado o seu código, e concorda com movavg x, 10,10,0, que calcula uma média móvel simples de 10 dias Há apenas uma diferença nos primeiros 9 números devido a valores assumidos de tempo negativo movavg calcula uma corrida-i Como você deve se lembrar, eu estou tentando usar o filtro para evitar movavg s for-loop. Now, o que eu estou tentando fazer é uma média móvel ponderada, idêntico ao parâmetro alfa de movavg Quando alfa 0, é um movimento simples Média e concorda com o filtro Se eu mudar alfa para 1, eu suponho para obter um MA linear Aqui está o código em movavg m que faz o peso é o número de dias a média, igual a 10 no caso acima. 1 alfa de chumbo Ajustar os pesos para igual a 1 chumbo chumbo lead. So, para um 10-dia linearmente ponderada média móvel 10, alfa 1 os 9 dias anteriores e dia atual deve ser ponderada da seguinte forma 1 55, 2 55, 3 55 10 55, com o maior peso 10 55 aplicado ao dia atual Então, eu tentei um caso de teste simples com apenas um MA de 2 dias em um vetor de 6 elementos. madays 2 alfa 1 len 6 a rand 1 len. Calcular MA usando movavg ma movavg a, madays, madays, alfa. Calcular MA usando filtro varredura 1 madays alfa normsweep varredura soma varredura f filtro normsweep, 1, aT ele movavg e filtro resultados são semelhantes, mas não iguais Eu estou supondo que eu não tenho os argumentos para o filtro correto, mas não consigo descobrir o que Eu fiz errado Particularmente, eu não tenho certeza que o segundo argumento do filtro é suposto fazer Help. I m não sei o que você quer dizer com a ponderação de 0 5, mas para fazer uma média de 10 dias simples, d be. y filtro 1 10 1, 10, 1, x. Isso pressupõe que os valores em tempo negativo x 0, x -1, etc são todos zero Assim, por exemplo, o primeiro valor de y seria x 1 10.On Fri, May 7 de dezembro de 2010 às 3 33 da tarde, Tim Rueth e-mail escondido escreveu Eu olhei tanto conv e filtro, mas não consigo descobrir como fazer uma média móvel com eles Talvez eu não estou entendendo as funções da entrada vars corretamente. Vamos dizer Eu tenho uma matriz, um rand 1,100 Você pode me dizer como eu d usar conv e filtro para tomar, digamos a média móvel de 10 dias, com uma ponderação de 0 5. ----- Mensagem Original ---- - De e-mail escondido e-mail escondido E-mail escondido E-mail escondido E-mail escondido E-mail ocultado O e-mail escondido é um arquivo m, mas só tem alguns ifs em seguida, ele chama filtro para obter o trabalho Feito que é um arquivo de oct. Andy On Thu, 06 de maio de 2010 às 6 28 da manhã, Tim Rueth ocultou e-mail escrito Alguém sabe como ter um dia n ponderada média móvel de um vetor sem usar um for-loop eu olhei para o M código para movavg e usa um para-laço, então eu estou supondo que provavelmente não há maneira, mas eu pensei que eu d verifique Obrigado - Ajuda octave ocultando mailing list e-mail escondido - andy fivela. Seu código de filtro abaixo funciona apenas Multa quando comparado com o que eu tinha feito, exceto para um número de dias iniciais, devido a quais valores são assumidos em tempo negativo que eu estava usando o código a seguir ndays é o número de dias a ser usado quando se calcula a média móvel exponencial de Dados de dados é um vetor de coluna dados repmat dados 1, ndays, 1 dados repetir dados 1 ndays vezes em t Início dos dados para valores negativos de tempo alfa 2 ndias 1 n comprimento dados avg zeros n, 1 avg 1 dados 1. A instrução acima é tudo que você precisa para inventar memória passada para valores negativos Você deve fazer o mesmo para a função de filtro, mas Eu não poderia dizer como fazê-lo offhand. for i 2 n ao avg i-1 avg i ao alfa dados i - ao endfor trim off run-in período para valores de tempo negativo longma longma lmadays 1 end. I don t entender o acima O que é longma. Para valores pequenos de ndays, o número de dias iniciais onde há uma discrepância com a implementação do filtro é mínimo, mas para valores maiores de ndays, o número de dias iniciais de discrepância cresce obviamente, devido à natureza de um MA exponencial com uma memória de cauda longa Nota, eu adiciono valores de tempo negativos semelhantes para a frente do vetor ao usar filtro, bem Eu não tenho certeza qual é a convenção quando se trata de calcular médias móveis exponenciais para pontos em dados onde ndays Volta para o tempo negativo Obrigado de novo .-- Francesco Potter ricercatore Voz 39 050 315 3058 op 2111 ISTI - Área della ricerca CNR Fax 39 050 315 2040 através de G Moruzzi 1, I-56124 Pisa E-mail escondido entrada 20, 1 º andar, sala C71 Web Help-octave Mailing list oculto e-mail. Eu não posso verificar isso atualmente, mas se bem me lembro, o argumento 4 para filtrar é condições iniciais Então, algo como se você quiser que sua condição inicial para ser o primeiro valor de dados, acho que o comando seria. b alpha a 1, filtro alfa-1 s b, a, x, x 1.It só precisa ser um elemento neste caso, porque a única condição inicial que você precisa é s0.On Thu, 13 de maio de 2010 at 2 21 AM, Francesco Potort e-mail escondido escreveu. seu código de filtro abaixo funciona muito bem quando comparado ao que eu tinha feito, exceto por um número de dias iniciais, devido a quais valores são assumidos em tempo negativo que eu estava usando o código seguinte ndays é O número de dias a serem usados quando se calcula a média móvel exponencial dos dados de dados é um dado de vetor de coluna Dados repmat 1, ndays, 1 dados repetir dados 1 ndays vezes no início dos dados para valores negativos de tempo alfa 2 ndays 1 n comprimento dados avg zeros n, 1 avg 1 dados 1. A instrução acima é tudo que você precisa para inventar memória passada Para valores negativos Você deve fazer o mesmo para a função de filtro, mas eu não poderia dizer como fazê-lo offhand. for i 2 n ao avg i-1 avg i ao alfa dados i - ao endfor trim off run-in período negativo Para valores pequenos de ndays, o número de dias iniciais em que há uma discrepância com a implementação do filtro é mínimo, mas para valores maiores de ndays, o número of initial days of discrepancy grows obviously, due to the nature of an exponential MA having a long-tail memory Note, I add similar negative time values to the front of the vector when using filter as well I m just not sure what is the convention when it comes to calculating exponential moving averages for points in data where ndays reaches back into negative time Thanks again.-- Francesco Potort ricercatore Voice 39 050 315 3058 op 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2040 via G Moruzzi 1, I-56124 Pisa Email hidden email entrance 20, 1st floor, room C71 Web. In reply to this post by Francesco Potort. The last instruction with longma should have read avg avg n 1 end which effectively trims off the computed values from negative time But, as you say, it looks like I didn t need to do this because the history is completely captured in avg 1 data 1 , so no need to compute a run-in time Thanks Francesco. Sherman had found that I can set the initial condition by specifying a 4th parameter in filter equal to the first data point I tried this, and got very similar but not quite exact results when compared to the for-loop below with no negative time values But this small difference dissipated within ndays and isn t a big deal Thanks Sherman. In summary, to calculate the exponential moving average of data for ndays , the following code. alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1 for i 2 n ao avg i-1 avg i ao alpha data i - ao endfor. is close, but not quite equal to. alpha 2 ndays 1 avg filter alpha, 1 alpha-1 , data, data 1.for roughly the first ndays of avg.-----Original Message----- From Francesco Potort mailto hidden email Sent Wednesday, May 12, 2010 11 22 PM To hidden email Cc Octave-ML James Sherman Jr Subject Re vectorized moving average Your filter code below works just fine when compared to what I had been doing, except for a number of initial days, due to what values are assumed in negative time I had been using the following code ndays is the number of days to be used when computing the exponential moving average of data data is a column vector data repmat data 1 , ndays, 1 data repeat data 1 ndays times at the beginning of data for negative time values alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1 The above instruc tion is all you need to invent past memory for negative values You should do the same for the filter function, but I could not say how to do it offhand for i 2 n ao avg i-1 avg i ao alpha data i - ao endfor trim off run-in period for negative time values longma longma lmadays 1 end I don t understand the above instruction What is longma For small values of ndays, the number of initial days where there s a discrepancy with your filter implementation is minimal, but for larger values of ndays, the number of initial days of discrepancy grows obviously, due to the nature of an exponential MA having a long-tail memory Note, I add similar negative time values to the front of the vector when using filter as well I m just not sure what is the convention when it comes to calculating exponential moving averages for points in data where ndays reaches back into negative time Thanks again -- Francesco Potort ricercatore Voice 39 050 315 3058 op 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2 040 via G Moruzzi 1, I-56124 Pisa Email hidden email entrance 20, 1st floor, room C71 Web. So, this bugged me, so I looked a bit at the filter function, and I think I found where the mistake was in my initial suggestion The initial condition vector has to do with the internal states of the filter not the negative time outputs of the filter at least not directly , so to get what I think is exactly what your code with the for loop, the filter line should be. avg filter alpha, 1 alpha-1 , data, data 1 1-alpha. It is rather unintuitive why the 1-alpha term needs to be there, and I don t know if there s much interest in it, but it shouldn t be that hard probably I just need to crack open my signals and systems book to write a function to calculate the those initial conditions that the filter function expects just giving the outputs and inputs from negative time. On Thu, May 13, 2010 at 8 38 PM, Tim Rueth hidden email wrote The last instruction with longma should have read avg avg n 1 end which effectively trims off the computed values from negative time But, as you say, it looks like I didn t need to do this because the history is completely captured in avg 1 data 1 , so no need to compute a run-in time Thanks Francesco. Sherman had found that I can set the initial condition by specifying a 4th parameter in filter equal to the first data point I tried this, and got very similar but not quite exact results when compared to the for-loop below with no negative time values But this small difference dissipated within ndays and isn t a big deal Thanks Sherman. In summary, to calculate the exponential moving average of data for ndays , the following code. alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1.for i 2 n ao avg i-1 avg i ao alpha data i - ao. is close, but not quite equal to. alpha 2 ndays 1 avg filter alpha, 1 alpha-1 , data, data 1.for roughly the first ndays of avg.-----Original Message----- From Francesco Potort mailto hidden email Sent Wednesday, May 12, 2010 11 22 PM To hidden email. Cc Octave-ML James Sherman Jr Subject Re vectorized moving average. Your filter code below works just fine when compared to what I had been doing, except for a number of initial days, due to what values are assumed in negative time I had been using the following code ndays is the number of days to be used when computing the exponential moving average of data data is a column vector data repmat data 1 , ndays, 1 data repeat data 1 ndays times at the beginning of data for negative time values alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1 The above instruction is all you need to invent past memory for negative values You should do the same for the filter function, but I could not say how to do it offhand for i 2 n ao avg i-1 avg i ao alpha data i - ao endfor trim off run-in period for negative time values longma longma lmadays 1 end I don t understand the above instruction What is longma For small values of ndays, the number of initial days wh ere there s a discrepancy with your filter implementation is minimal, but for larger values of ndays, the number of initial days of discrepancy grows obviously, due to the nature of an exponential MA having a long-tail memory Note, I add similar negative time values to the front of the vector when using filter as well I m just not sure what is the convention when it comes to calculating exponential moving averages for points in data where ndays reaches back into negative time Thanks again -- Francesco Potort ricercatore Voice 39 050 315 3058 op 2111 ISTI - Area della ricerca CNR Fax 39 050 315 2040 via G Moruzzi 1, I-56124 Pisa Email hidden email entrance 20, 1st floor, room C71 Web. So, this bugged me, so I looked a bit at the filter function, and I think I found where the mistake was in my initial suggestion The initial condition vector has to do with the internal states of the filter not the negative time outputs of the filter at least not directly , so to get what I think is exactly what your code with the for loop, the filter line should be. avg filter alpha, 1 alpha-1 , data, data 1 1-alpha. It is rather unintuitive why the 1-alpha term needs to be there, and I don t know if there s much interest in it, but it shouldn t be that hard probably I just need to crack open my signals and systems book to write a function to calculate the those initial conditions that the filter function expects just giving the outputs and inputs from negative time. On Thu, May 13, 2010 at 8 38 PM, Tim Rueth hidden email wrote The last instruction with longma should have read avg avg n 1 end which effectively trims off the computed values from negative time But, as you say, it looks like I didn t need to do this because the history is completely captured in avg 1 data 1 , so no need to compute a run-in time Thanks Francesco. Sherman had found that I can set the initial condition by specifying a 4th parameter in filter equal to the first data point I tried this, and got very similar but no t quite exact results when compared to the for-loop below with no negative time values But this small difference dissipated within ndays and isn t a big deal Thanks Sherman. In summary, to calculate the exponential moving average of data for ndays , the following code. alpha 2 ndays 1 n length data avg zeros n,1 avg 1 data 1.for i 2 n ao avg i-1 avg i ao alpha data i - ao. is close, but not quite equal to. alpha 2 ndays 1 avg filter alpha, 1 alpha-1 , data, data 1.for roughly the first ndays of avg.
Comments
Post a Comment