Calculando a média móvel Este VI calcula e exibe a média móvel, usando um número pré-selecionado. Primeiro, o VI inicializa dois registros de deslocamento. O registro de deslocamento superior é inicializado com um elemento e, continuamente, adiciona o valor anterior com o novo valor. Este registro de deslocamento mantém o total das últimas x medições. Depois de dividir os resultados da função de adicionar com o valor pré-selecionado, o VI calcula o valor médio móvel. O registro de deslocamento inferior contém uma matriz com a dimensão Média. Este registro de deslocamento mantém todos os valores da medida. A função de substituição substitui o novo valor após cada loop. Este VI é muito eficiente e rápido porque usa a função de elemento de substituição dentro do loop while e ele inicializa a matriz antes de entrar no loop. Este VI foi criado no LabVIEW 6.1. Favorito Amplo ShareMoving Médias - Médias móveis simples e exponentes - Introdução simples e exponencial As médias móveis suavizam os dados de preços para formar um indicador de tendência seguinte. Eles não prevêem a direção do preço, mas sim definem a direção atual com um atraso. As médias móveis são desactualizadas porque se baseiam em preços passados. Apesar deste atraso, as médias móveis ajudam a melhorar a ação do preço e a eliminar o ruído. Eles também formam os blocos de construção para muitos outros indicadores técnicos e sobreposições, como Bollinger Bands. MACD e o McClellan Oscillator. Os dois tipos mais populares de médias móveis são a média móvel simples (SMA) e a média móvel exponencial (EMA). Essas médias móveis podem ser usadas para identificar a direção da tendência ou definir níveis potenciais de suporte e resistência. Aqui é um gráfico com um SMA e um EMA nele: Cálculo da média móvel simples Uma média móvel simples é formada calculando o preço médio de uma garantia em um período específico de períodos. A maioria das médias móveis baseia-se nos preços de fechamento. Uma média móvel simples de 5 dias é a soma de cinco dias de preços de fechamento dividida por cinco. Como o próprio nome indica, uma média móvel é uma média que se move. Os dados antigos são descartados à medida que novos dados estão disponíveis. Isso faz com que a média se mova ao longo da escala de tempo. Abaixo está um exemplo de uma média móvel de 5 dias evoluindo ao longo de três dias. O primeiro dia da média móvel cobre os últimos cinco dias. O segundo dia da média móvel diminui o primeiro ponto de dados (11) e adiciona o novo ponto de dados (16). O terceiro dia da média móvel continua diminuindo o primeiro ponto de dados (12) e adicionando o novo ponto de dados (17). No exemplo acima, os preços aumentam gradualmente de 11 para 17 durante um total de sete dias. Observe que a média móvel também aumenta de 13 para 15 durante um período de cálculo de três dias. Observe também que cada valor médio móvel está abaixo do último preço. Por exemplo, a média móvel para o dia 1 é igual a 13 e o último preço é 15. Os preços nos quatro dias anteriores foram menores e isso faz com que a média móvel atinja. Cálculo médio exponencial da movimentação As médias móveis exponentes reduzem o atraso aplicando mais peso aos preços recentes. A ponderação aplicada ao preço mais recente depende do número de períodos na média móvel. Existem três etapas para calcular uma média móvel exponencial. Primeiro, calcule a média móvel simples. Uma média móvel exponencial (EMA) tem que começar em algum lugar, de modo que uma média móvel simples é usada como EMA do período anterior em o primeiro cálculo. Em segundo lugar, calcule o multiplicador de ponderação. Em terceiro lugar, calcule a média móvel exponencial. A fórmula abaixo é para uma EMA de 10 dias. Uma média móvel exponencial de 10 períodos aplica uma ponderação de 18,18 para o preço mais recente. Um EMA de 10 períodos também pode ser chamado de 18.18 EMA. Uma EMA de 20 períodos aplica uma pesagem de 9,52 ao preço mais recente (2 (201) .0952). Observe que a ponderação para o período de tempo mais curto é maior do que a ponderação para o período de tempo mais longo. Na verdade, a ponderação cai pela metade cada vez que o tempo médio móvel dobra. Se você quiser uma porcentagem específica para um EMA, você pode usar essa fórmula para convertê-la em períodos de tempo e, em seguida, insira esse valor como o parâmetro EMA039s: abaixo é um exemplo de planilha de uma média móvel simples de 10 dias e um 10- Média móvel exponencial do dia para a Intel. As médias móveis simples são diretas e requerem pouca explicação. A média de 10 dias simplesmente se move à medida que novos preços se tornam disponíveis e os preços antigos caem. A média móvel exponencial começa com o valor médio móvel simples (22.22) no primeiro cálculo. Após o primeiro cálculo, a fórmula normal assume o controle. Como um EMA começa com uma média móvel simples, seu valor verdadeiro não será realizado até 20 ou mais períodos mais tarde. Em outras palavras, o valor na planilha do Excel pode diferir do valor do gráfico devido ao curto período de visualização. Esta planilha apenas remonta a 30 períodos, o que significa que o efeito da média móvel simples teve 20 períodos para se dissipar. StockCharts remonta pelo menos 250 períodos (geralmente muito mais) para os seus cálculos, de modo que os efeitos da média móvel simples no primeiro cálculo foram totalmente dissipados. O Factor de Lag. Quanto maior a média móvel, mais o atraso. Uma média móvel exponencial de 10 dias irá reduzir os preços de forma bastante próxima e virar-se pouco depois que os preços se transformarem. As médias de curto movimento são como barcos de velocidade - ágeis e rápidos de mudar. Em contraste, uma média móvel de 100 dias contém muitos dados passados que o retardam. As médias móveis mais longas são como os petroleiros do oceano - letárgicos e lentos para mudar. É necessário um movimento de preços maior e mais longo para uma média móvel de 100 dias para mudar de curso. O gráfico acima mostra o ETF SampP 500 com um EMA de 10 dias seguindo os preços e uma moagem de SMA de 100 dias mais alta. Mesmo com o declínio de janeiro a fevereiro, o SMA de 100 dias manteve o curso e não recusou. O SMA de 50 dias se encaixa em algum lugar entre as médias móveis de 10 a 100 dias quando se trata do fator de atraso. Médias móveis simples e exponentes Mesmo que existam diferenças claras entre as médias móveis simples e as médias móveis exponenciais, uma não é necessariamente melhor do que a outra. As médias móveis exponentes têm menos atraso e, portanto, são mais sensíveis aos preços recentes - e as recentes mudanças nos preços. As médias móveis exponentes virarão antes das médias móveis simples. As médias móveis simples, por outro lado, representam uma verdadeira média de preços durante todo o período de tempo. Como tal, as médias móveis simples podem ser mais adequadas para identificar níveis de suporte ou resistência. A preferência média móvel depende dos objetivos, do estilo analítico e do horizonte temporal. Os cartistas devem experimentar com os dois tipos de médias móveis, bem como diferentes prazos para encontrar o melhor ajuste. O gráfico abaixo mostra a IBM com o SMA de 50 dias em vermelho e a EMA de 50 dias em verde. Ambos atingiram o pico no final de janeiro, mas o declínio no EMA foi mais acentuado do que o declínio no SMA. O EMA apareceu em meados de fevereiro, mas a SMA continuou abaixo até o final de março. Observe que o SMA apareceu mais de um mês após o EMA. Comprimentos e prazos O comprimento da média móvel depende dos objetivos analíticos. As médias de curto movimento (5-20 períodos) são mais adequadas para tendências e negociações de curto prazo. Chartists interessados em tendências de médio prazo optaram por médias móveis mais longas que poderiam prolongar 20-60 períodos. Os investidores de longo prazo preferirão as médias móveis com 100 ou mais períodos. Alguns comprimentos médios móveis são mais populares do que outros. A média móvel de 200 dias é talvez a mais popular. Por causa de seu comprimento, esta é claramente uma média móvel de longo prazo. Em seguida, a média móvel de 50 dias é bastante popular para a tendência de médio prazo. Muitos cartéescos usam as médias móveis de 50 dias e 200 dias em conjunto. A curto prazo, uma média móvel de 10 dias era bastante popular no passado porque era fácil de calcular. Simplesmente adicionou os números e moveu o ponto decimal. Identificação da tendência Os mesmos sinais podem ser gerados usando médias móveis simples ou exponenciais. Conforme mencionado acima, a preferência depende de cada indivíduo. Estes exemplos abaixo usarão médias móveis simples e exponenciais. O termo média móvel aplica-se a médias móveis simples e exponenciais. A direção da média móvel transmite informações importantes sobre os preços. Uma média móvel ascendente mostra que os preços geralmente aumentam. Uma média decrescente indica que os preços, em média, estão caindo. Uma média móvel crescente a longo prazo reflete uma tendência de alta de longo prazo. Uma média móvel decrescente a longo prazo reflete uma tendência de baixa de longo prazo. O gráfico acima mostra 3M (MMM) com uma média móvel exponencial de 150 dias. Este exemplo mostra o quão bem as médias móveis funcionam quando a tendência é forte. A EMA de 150 dias desistiu em novembro de 2007 e novamente em janeiro de 2008. Observe que demorou 15 para reverter a direção dessa média móvel. Esses indicadores de atraso identificam inversões de tendência à medida que ocorrem (na melhor das hipóteses) ou após ocorrerem (na pior das hipóteses). O MMM continuou abaixo em março de 2009 e passou de 40 a 50. Observe que o EMA de 150 dias não apareceu até depois desse aumento. Uma vez que fez, no entanto, MMM continuou mais alto nos próximos 12 meses. As médias móveis funcionam de forma brilhante em fortes tendências. Crossovers duplos Duas médias móveis podem ser usadas em conjunto para gerar sinais cruzados. Na Análise Técnica dos Mercados Financeiros. John Murphy chama isso de método de cruzamento duplo. Os cruzamentos duplos envolvem uma média móvel relativamente curta e uma média móvel relativamente longa. Tal como acontece com todas as médias móveis, o comprimento geral da média móvel define o prazo para o sistema. Um sistema que utilize um EMA de 5 dias e EMA de 35 dias seria considerado de curto prazo. Um sistema que usa SMA de 50 dias e SMA de 200 dias seria considerado de médio prazo, talvez até de longo prazo. Um cruzamento de alta ocorre quando a média móvel mais curta cruza acima da média móvel mais longa. Isso também é conhecido como uma cruz dourada. Um cruzamento de baixa ocorre quando a média móvel mais curta passa abaixo da média móvel mais longa. Isso é conhecido como uma cruz morta. Os fluxos médios móveis produzem sinais relativamente atrasados. Afinal, o sistema emprega dois indicadores de atraso. Quanto mais longos os períodos médios móveis, maior o atraso nos sinais. Esses sinais funcionam bem quando uma boa tendência se apodera. No entanto, um sistema de cruzamento médio móvel produzirá muitos whipsaws na ausência de uma forte tendência. Há também um método de cruzamento triplo que envolve três médias móveis. Novamente, um sinal é gerado quando a média móvel mais curta cruza as duas médias móveis mais longas. Um simples sistema de cruzamento triplo pode envolver médias móveis de 5 dias, 10 dias e 20 dias. O gráfico acima mostra Home Depot (HD) com EMA de 10 dias (linha pontilhada verde) e EMA de 50 dias (linha vermelha). A linha preta é o fechamento diário. O uso de um crossover médio móvel resultaria em três whipsaws antes de pegar um bom comércio. A EMA de 10 dias quebrou abaixo da EMA de 50 dias no final de outubro (1), mas isso não durou tanto quanto os 10 dias se movimentaram atrás em meados de novembro (2). Esta cruz durou mais tempo, mas o próximo cruzamento de baixa em janeiro (3) ocorreu perto dos níveis de preços finais de novembro, resultando em outro whipsaw. Esta cruz descendente não durou tanto quanto a EMA de 10 dias voltou atrás dos 50 dias alguns dias depois (4). Depois de três sinais negativos, o quarto sinal anunciou um forte movimento, já que o estoque avançou acima de 20. Há duas coisas para levar aqui. Primeiro, os cruzamentos são propensos a whipsaw. Um filtro de preço ou tempo pode ser aplicado para ajudar a evitar whipsaws. Os comerciantes podem exigir que o crossover durar 3 dias antes de atuar ou exigir que a EMA de 10 dias se mova acima da EMA de 50 dias por uma certa quantidade antes de agir. Em segundo lugar, o MACD pode ser usado para identificar e quantificar esses cruzamentos. MACD (10,50,1) mostrará uma linha que representa a diferença entre as duas médias móveis exponenciais. O MACD fica positivo durante uma cruz dourada e negativo durante uma cruz morta. O Percentage Price Oscillator (PPO) pode ser usado da mesma maneira para mostrar diferenças percentuais. Note-se que o MACD e o PPO são baseados em médias móveis exponenciais e não combinam com médias móveis simples. Este gráfico mostra Oracle (ORCL) com EMA de 50 dias, EMA de 200 dias e MACD (50.200,1). Havia quatro passagens médias móveis ao longo de um período de 2 12 anos. Os três primeiros resultaram em chicotes ou malfeitos. Uma tendência sustentada começou com o quarto crossover como a ORCL avançou até meados dos anos 20. Mais uma vez, os cruzamentos médios móveis funcionam bem quando a tendência é forte, mas produzem perdas na ausência de uma tendência. Crossovers de preços As médias móveis também podem ser usadas para gerar sinais com crossovers de preços simples. Um sinal de alta é gerado quando os preços se movem acima da média móvel. Um sinal de baixa é gerado quando os preços se movem abaixo da média móvel. Os cruzamentos de preços podem ser combinados para negociar dentro da tendência maior. A média móvel mais longa define o tom para a tendência maior e a média móvel mais curta é usada para gerar os sinais. Um seria procurar cruzes de preços otimistas somente quando os preços já estão acima da média móvel mais longa. Isso seria negociado em harmonia com a maior tendência. Por exemplo, se o preço estiver acima da média móvel de 200 dias, os chartists só se concentrarão em sinais quando o preço se mova acima da média móvel de 50 dias. Obviamente, um movimento abaixo da média móvel de 50 dias precederia esse sinal, mas esses cruzamentos mais baixos seriam ignorados porque a maior tendência é maior. Uma cruz grosseira simplesmente sugeriria uma retração dentro de uma maior tendência de alta. Uma cruzada acima da média móvel de 50 dias indicaria uma recuperação dos preços e a continuação da maior tendência de alta. O próximo gráfico mostra Emerson Electric (EMR) com EMA de 50 dias e EMA de 200 dias. O estoque moveu-se acima e manteve-se acima da média móvel de 200 dias em agosto. Havia mergulhos abaixo da EMA de 50 dias no início de novembro e novamente no início de fevereiro. Os preços rapidamente se movimentaram atrás do EMA de 50 dias para fornecer sinais de alta (setas verdes) em harmonia com a maior tendência de alta. MACD (1,50,1) é mostrado na janela do indicador para confirmar cruzamentos de preços acima ou abaixo do EMA de 50 dias. A EMA de 1 dia é igual ao preço de fechamento. MACD (1,50,1) é positivo quando o fechamento está acima da EMA de 50 dias e negativo quando o fechamento está abaixo da EMA de 50 dias. Suporte e resistência As médias móveis também podem atuar como suporte em uma tendência de alta e resistência em uma tendência de baixa. Uma tendência de alta de curto prazo pode encontrar suporte perto da média móvel simples de 20 dias, que também é usada em Bandas de Bollinger. Uma tendência de alta de longo prazo pode encontrar suporte perto da média móvel simples de 200 dias, que é a média móvel mais popular a longo prazo. De fato, a média móvel de 200 dias pode oferecer suporte ou resistência simplesmente porque é tão amplamente utilizada. É quase como uma profecia auto-realizável. O gráfico acima mostra o NY Composite com a média móvel simples de 200 dias de meados de 2004 até o final de 2008. Os 200 dias forneceram várias vezes durante o avanço. Uma vez que a tendência invertida com uma quebra de suporte de topo duplo, a média móvel de 200 dias atuou como resistência em torno de 9500. Não espere um suporte exato e níveis de resistência a partir de médias móveis, especialmente médias móveis mais longas. Os mercados são impulsionados pela emoção, o que os torna propensos a superar. Em vez de níveis exatos, as médias móveis podem ser usadas para identificar zonas de suporte ou de resistência. Conclusões As vantagens de usar médias móveis precisam ser ponderadas contra as desvantagens. As médias em movimento são indicadores de tendência, ou atraso, indicadores que sempre estarão um passo atrás. Isso não é necessariamente uma coisa ruim. Afinal, a tendência é sua amiga e é melhor negociar na direção da tendência. As médias móveis asseguram que um comerciante esteja em linha com a tendência atual. Embora a tendência seja sua amiga, os títulos gastam uma grande quantidade de tempo nas gamas de negociação, o que torna as médias móveis ineficazes. Uma vez em uma tendência, as médias móveis o manterão, mas também darão sinais tardios. Don039t espera vender no topo e comprar no fundo usando médias móveis. Tal como acontece com a maioria das ferramentas de análise técnica, as médias móveis não devem ser usadas por conta própria, mas em conjunto com outras ferramentas complementares. Os cartistas podem usar médias móveis para definir a tendência geral e, em seguida, usar RSI para definir níveis de sobrecompra ou sobrevenda. Adicionando médias móveis para gráficos de ações A média móvel está disponível como um recurso de sobreposição de preços no banco de trabalho SharpCharts. Usando o menu suspenso Overlays, os usuários podem escolher uma média móvel simples ou uma média móvel exponencial. O primeiro parâmetro é usado para definir o número de períodos de tempo. Um parâmetro opcional pode ser adicionado para especificar qual campo de preço deve ser usado nos cálculos - O para Open, H para High, L para Low e C para o Close. Uma vírgula é usada para separar os parâmetros. Outro parâmetro opcional pode ser adicionado para mudar as médias móveis para o lado esquerdo (passado) ou para a direita (futuro). Um número negativo (-10) deslocaria a média móvel para os 10 períodos esquerdos. Um número positivo (10) deslocaria a média móvel para os 10 períodos certos. Várias médias móveis podem ser sobrepostas ao gráfico de preços, simplesmente adicionando outra linha de sobreposição ao banco de trabalho. Os membros do StockCharts podem alterar as cores e o estilo para diferenciar entre médias móveis múltiplas. Depois de selecionar um indicador, abra Opções avançadas clicando no pequeno triângulo verde. Opções avançadas também podem ser usadas para adicionar uma sobreposição média móvel a outros indicadores técnicos como RSI, CCI e Volume. Clique aqui para obter um gráfico ao vivo com várias médias móveis diferentes. Usando Médias em Movimento com Análises de StockCharts Aqui estão algumas varreduras de amostra que os membros do StockCharts podem usar para escanear várias situações de média móvel: Cruzada média movimentada de Bullish: Esta varredura procura ações com uma média móvel crescente de 150 dias e uma cruz de alta dos 5 EMA EMA e EMA de 35 dias. A média móvel de 150 dias está aumentando, desde que esteja negociando acima do nível cinco dias atrás. Uma cruz de alta ocorre quando o EMA de 5 dias se move acima do EMA de 35 dias no volume acima da média. Croácia média baixa de Bearish: esta pesquisa procura ações com uma média móvel decrescente de 150 dias e uma cruz descendente da EMA de 5 dias e EMA de 35 dias. A média móvel de 150 dias está caindo enquanto estiver negociando abaixo do nível cinco dias atrás. Uma cruz descendente ocorre quando a EMA de 5 dias se move abaixo da EMA de 35 dias no volume acima da média. Estudo adicional O livro de John Murphy039 tem um capítulo dedicado às médias móveis e seus vários usos. Murphy cobre os prós e contras das médias móveis. Além disso, Murphy mostra como as médias móveis funcionam com bandas Bollinger e sistemas de negociação baseados em canais. Análise Técnica dos Mercados Financeiros John Murphyexponentia l resposta média móvel fpga Tenho um problema com o meu filtro, o filtro de média móvel ponderada exponencial (IIR 1.a ordem). Do livro: Compreendendo o processamento do sinal digital (Lyons Richard) Tenho a seguinte fórmula calculando a frequência 3dB (fc) do alfa. Alpha é o parâmetro para controlar o filtro. Equação diferencial do filtro: ynxnalpha (1 - alfa) yn-1 Relação entre fc e alfa: alfa cos (2fcfs) - 1 sqrtcos (2fcfs) - 4cos (2fcfs) 3 Se eu agora escolher uma frequência 3dB de 0,0794Hz (tempo Constante (TC) 2s) alfa 0,00169621. (Fs94Hz) Para uma primeira ordem de filtro IIR, o tempo de subida (ta) da resposta constante (de 10 a 90) é: ta2,2TC, o que resulta em ta 4,4s. Mas se eu simular a resposta passo a passo, meu tempo de subida é cerca de 3 vezes desse valor às 14s. Não posso explicar por que a resposta de passo do meu filtro difere tanto. Para o meu filtro de média móvel, o tempo de subida calculado e simulado é igual. Eu tenho o vi que é executado no FPGA anexado. Talvez alguém possa encontrar um erro. (Veja também o filtro alfa ou o filtro RC) A sua frequência de amostragem (fs) está correta Se o tempo de loop não corresponde, isso explicaria isso. Os seus tipos de dados se parecem bons (para obter alfa dentro de 1). Mas eu sugiro uma pequena alteração na implementação. Por enquanto, é um pouco propenso a rodar à deriva, porque (1-alfa) é repetidamente multiplicado pelo yn-1. Um método um pouco mais confiável é dizer yn yn-1 (alfa (xn-yn-1)). A diferença é sutil, mas me dá melhores resultados muitas vezes. E elimina um se multiplica. A propósito, o número do reinterpreto faz o mesmo que o seu convertido de FXP para o bool, em seguida, de volta. É um pouco menos confuso, no entanto. Estou um pouco perplexo com o loop temporizado que nunca percorre. Isso impõe o tempo dessa forma (eu assumi que não seria, então nunca usei, eu uso o Loop Timer em vez disso). CLD User desde rev 8.6. Mensagem 2 de 13 (941 Visualizações) Re: exponentia l resposta de mudança média em movimento fpga 10-01-2015 02:05 AM - editado 10-01-2015 02:17 AM Obrigado pela sua resposta. 1, provendo minha freqüência de amostragem com o temporizador de loop. Minha entrada é 425.532 carrapatos que é igual a 94 Hz. Este tiquetaque é confirmado por ticks EWMA. - Talvez alguém possa testar o código e me dizer 2, encontrei sua abordagem na seção de truques e tipps do livro de Lyons. Vou tentar, mas você poderia explicar a rodada à deriva um pouco, eu sou bastante novo nesta área. Existe um benefício adicional de eliminar um multiplicador, exceto os recursos. A resposta de freqüência, a resposta de impulso e a resposta de passo são iguais 3, Se eu apenas mudar de bits, eu sou amável com esse método Não tenho certeza se a função reinterprate usa menos recursos. Mas obrigado por notar isso. 4, o loop temporizado itera todos os 425.532 tiques uma vez. Assim, com uma frequência de 94Hz, um valor é calculado pelo código, pois o código dentro do loop temporizado só precisa de uma iteração. Ou eu sinto falta de sua pergunta. Eu não tenho certeza do que outras informações você precisa. Eu tento comparar a resposta passo a passo de uma média móvel com uma média móvel exponencial (EWMA). Na verdade, eu só quero confirmar a teoria. Como mencionei acima para obter uma constante de tempo de 2s a uma taxa de amostragem de 94Hz, o alfa deve ser 0,00169. O tempo de subida da resposta de passo de 10 a 90 do valor final difere da teoria. O tempo de subida deve ser 4,4 com constante de tempo 2s, mas eu recebo quase 14s se eu executar meu código no FPGA. Eu confirmei que, com o alfa 0,00169, meu código leva amostras de 1297 para obter de 0,1 a 0,9 (o valor final é 1, valor inicial 0). Como você pode ver no meu código, verifico a hora do loop com o indicador marca o ewma para confirmar a taxa de amostragem do SCTL. Alguém pode confirmar as 1297 amostras que são necessárias em alfa 0,00169 Porque eu penso, que eu preciso de muitas amostras para alcançar o valor de 0,9. Eu já implementei a versão EWMA sugerida a partir da primeira resposta. O mesmo problema aqui. Mensagem 5 de 13 (891 Visualizações) Re: exponentia l resposta de mudança média em movimento fpga 10-01-2015 08:13 AM - editado 10-01-2015 08:15 AM 1, provendo minha freqüência de amostragem com o temporizador de loop. Minha entrada é 425.532 carrapatos que é igual a 94 Hz. Este tiquetaque é confirmado por ticks EWMA. - Talvez alguém possa testar o código e me dizer 2, encontrei sua abordagem na seção de truques e tipps do livro de Lyons. Vou tentar, mas você poderia explicar a rodada à deriva um pouco, eu sou bastante novo nesta área. Existe um benefício adicional de eliminar um multiplicador, exceto os recursos. A resposta de freqüência, a resposta de impulso e a resposta de passo são iguais 3, Se eu apenas mudar de bits, eu sou amável com esse método Não tenho certeza se a função reinterprate usa menos recursos. Mas obrigado por notar isso. 4, o loop temporizado itera todos os 425.532 tiques uma vez. Assim, com uma frequência de 94Hz, um valor é calculado pelo código, pois o código dentro do loop temporizado só precisa de uma iteração. Ou eu sinto falta de sua pergunta, usei uma planilha para simular e obtenho quase exatamente a mesma resposta (1299 ciclos para passar de 0,1 a 0,9). As planilhas são uma ferramenta útil para testar cálculos. 1. Ok. Nunca usei o Single-Cycle-Timed-Loop (SCTL) com o T escrito para a parada. Isso forçaria as funções de matemática a serem de ciclo único, mas não tenho certeza se isso é alguma vantagem. Eu só queria ter certeza de que o tempo foi confirmado, e é. 2. A derivação de rodada provavelmente não aparecerá, a menos que sua entrada seja pequena (menos de 0,1). Eu vejo agora que você tem 40 bits (39 direito do decimal) para o feedback. Isso leva um pouco de FPGA para se multiplicar, mas não terá problemas de arredondamento. Outras partes apenas tinham 18 bits (17 à direita do decimal), portanto, alfa (0,00169 - .000007) vezes, uma entrada de 0,1 seria 0.000169 - 0.000007 ou erro 7). Mas isso se multiplica também é de 40 bits, então você não deve ver nenhum problema. Normalmente, a saída yn tem menos bits, e irá rodar no último bit. Mas porque está em um loop multiplicado por 1-alfa a cada vez, a rodada às vezes acumula cada loop até que ele seja grande o suficiente para afetar os resultados de adição. É difícil de explicar, mas a minha regra geral é que eu espero um erro igual ao menor bit dividido por alfa, usando o método original, ou cerca de metade que usine o método de um único múltiplo. As respostas serão quase idênticas, com exceção de uma pequena diferença. A maior vantagem é salvar o espaço FPGA (e tempo de compilação). E você pode reduzir seu número de bits um pouco para economizar ainda mais. 3. São basicamente idênticos. E ambos os métodos são gratuitos em FPGA. Os bits não foram alterados, então nenhuma lógica é necessária, eles são simplesmente rotulados. 4. Eu acho que você respondeu bem. Geralmente, neste ponto, eu ajustaria o alfa até que meus resultados correspondessem ao que eu queria e segui em frente. Odeio não entender uma incompatibilidade, mas geralmente não tenho tempo para mergulhar nela. Mas, por causa da ciência, consideramos que sua fórmula pode ser errada. Eu acho que você pode estar usando uma fórmula para uma decadência exponencial contínua (e-ttau), não para uma decaimento exponencial discreto ((1-alfa) i). É mais fácil ver isso como uma função de passo de 1 a 0. Nesse caso, yn (para ngt0) é yn (1-alfa) (n). Podemos encontrar n para yn 0.9, como nlog1-alpha (0.9) 62, e n para yn 0.1, como 1361, para uma diferença de 1299. CLD User desde rev 8.6. Obrigado pela sua resposta detalhada. Quanto ao problema com o tempo de subida, acho que encontrei o erro. Você pode estar certo de que a fórmula não está correta, ou o que provavelmente é mal interpretado por mim e configurado no contexto incorreto. Quando eu estava de bicicleta em casa do trabalho, lembrei-me de uma função útil de labview: alisando coeficientes de filtro. Aqui você só precisa configurar tauTC e fs e calcula o nominal e o denominador para a média móvel exponencial e a média móvel. Como o indicador é alfa, eu poderia comparar o resultado com a fórmula que usei e houve uma grande diferença. O Labview usa a seguinte fórmula: alpha1-exp (-1 (fsTC)). Com esta fórmula TC2s é igual a alpha0,0053. E com este alfa minha simulação funciona Risetime 4,4s citando você: Geralmente, neste momento, eu ajustaria alfa até que meus resultados correspondessem ao que eu queria e segui em frente. Eu adoraria fazer o mesmo, mas como esta é minha tese de mestrado, eu tenho que resolver essas coisas. Agora, de volta aos problemas de arredondamento. Eu entendo, que os pequenos valores são um problema maior. Como esse filtro é usado em um Bloqueio, os valores serão REALMENTE pequenos. Mas eu já testei isso em nosso dispositivo de medição e funciona, por isso também vou testar sua versão, mas se eu não tiver problemas, acho que eu mantenho isso em 40bits. A simulação da seguinte configuração causou um erro de 2.3. Usando 57 bits reduziu o erro para abaixo de 1. Eu acho que 40bits devem ser suficientes. E no que diz respeito aos recursos, não tenho preocupações. Embora usando um myrio no final eu ainda tenho um monte de fatias DSP para a multiplicação e 10 FlipFlops grátis. Então eu acho que este tópico está resolvido. Obrigado pela sua grande ajuda e pensamentos interessantes. Legal Estou feliz por estar funcionando, agora. Eu cresci na era sem fatias de DSP em FPGAs, e contagens de células menores, então ainda tendem a pensar nesses termos. Eu ainda prefiro passar 25 minutos de programação para reduzir meus tempos de compilação. Eu tive casos em que eu cortei o tempo de compilação de 90 minutos a 45 minutos, otimizando um pouco. Com um servidor poderoso para compilação, isso é menos importante. Uma dessas otimizações é reduzir as contagens de bits onde eu posso, especialmente para se multiplica. Por exemplo, o alfa é 160 e, para 0,0053, você também pode usar 12-4 (contagem de número inteiro negativo). Você também pode eliminar muitos bits superiores da sua entrada. 5 minutos para escolher a menor contagem de bits pode economizar facilmente 2-10 minutos para cada compilação. Minha segunda otimização é reduzir as multiplicações, mas com uma fatia DSP, isso não é tão importante. Não consigo encontrar boa documentação sobre as fatias do DSP (se você tiver algum, por favor, publique links), mas, como eu entendo, se você multiplicar números maiores (contagens de bits), ele precisa de fatias múltiplas e talvez seja hora de combinar os resultados. E mais um truque: escolha um alfa com um valor binário simples, como 1256 (você escolheu cerca de 1189) e mude o fs até obter o alisamento desejado. Em seguida, use uma constante para alfa. Multiplicar por uma constante 1256 é livre no FPGA (ele apenas desloca os bits). Por essa questão, fazer alfa constante pode otimizar as multiplicações um pouco. Dependendo da inteligência do otimizador, ele pode mudá-lo para um conjunto de adders em vez disso. As entradas do painel frontal são excelentes para que as coisas funcionem, mas as constantes otimizam muito melhor. Utilizador CLD desde a rev. 8.6. Se você tiver uma média de 16 vezes mais amostras (fs 16x o que era), você deve incluir mais 4 bits em seus comentários. Você já tem pleanty, de modo que talvez não seja importante a menos que você vá muito mais rápido. Caso contrário, aumentar fs provavelmente é bom. Se a entrada tiver ruído de baixa frequência, a amostragem não ajuda a eliminar isso. O ruído de alta freqüência, no entanto, reduz com o excesso de amostragem. Se, por exemplo, o ruído acima de 10Hz é -5dB (isto é, 10 a 0,5 vezes a amplitude do sinal que você gosta), e você amostra em 20Ss, você provavelmente pegará -5 dB em suas leituras iniciais. Se o seu -3dB (fc) também for 10Hz, então você acabará com um ruído de -8dB sobrado no seu sinal. Se, em vez disso, tomar 200Ss, grupos médios de 10, depois passar essas médias para o filtro, você não ajudará o ruído a 10Hz (você estava medindo 10Hz de ruído sem efeitos de amostragem), mas reduziria o ruído acima de 100Hz em cerca de um fator próximo (Mas não realmente) 10. Existem classes inteiras de um semestre que discutem o porquê, como, etc. A versão curta é esta: cada amostra é a soma do sinal que deseja e o ruído. Se você adicionar 10 amostras, você receberá 10x o sinal desejado e a soma de 10 ruídos. A natureza do ruído determina o que você obtém quando você adiciona as 10 amostras de ruído. O ruído gaussiano acrescenta uma maneira (algo como: se 83 de amostras estão abaixo de X, a soma tem 83 somas abaixo de 1.1X, ou algo assim). O ruído linear adiciona outra maneira. E os padrões de repetição adicionam outra maneira. Então, sem saber exatamente o que é o ruído, ninguém pode responder com certeza, exceto que a média de amostras múltiplas provavelmente ajuda, e quase nunca dói. Há também a questão do aliasing. If you have a sine interferance of 60Hz, at -3dB, and you sample at 10.001Ss (always assume the clocks wont match presicely), you will get something like 0.006Hz at -3dB added to your signal, and your filter wont remove it. But bumping your sample rate to 100.001Ss, will put the interference at about 40Hz, so your filter should eliminate it. Averaging 10 samples at a time is a type of filter (box). If you look at it in a frequency domain, you can see that some higher frequencies get shifted to lower frequencies in an odd way, and not all are reduced. If you average 4000 Ss, 100 at a time, youll get an average 40 times per second. With 60Hz interference, you will get about 13 as much noise, shifted to 20Hz, which wont filter as well as 60Hz would have. So, it would be better to use the EWMA filter at the higher sample rate . than to average blocks of inputs, then filter that. And averaging is (probably) better than just using a slower sample rate. If you have an input adapter with built-in electronic filters, thats even better, and there is no need to sample more than 2X the filters frequency. CLD User since rev 8.6.
No comments:
Post a Comment