Wednesday 21 June 2017

Moving Average Gnuradio


Médias móveis: quais são eles, entre os indicadores técnicos mais populares, as médias móveis são usadas para avaliar a direção da tendência atual. Todo 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 determinado, a média resultante é então plotada em um gráfico para permitir que os comerciantes vejam dados suavizados em vez de se concentrar nas flutuações de preços do dia-a-dia 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 a média aritmética de um determinado 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 depois dividiria o resultado em 10. Na Figura 1, a soma dos preços nos ú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, 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 para dar aos comerciantes uma idéia de como um recurso tem um preço relativo aos últimos 10 dias. Talvez você esteja se perguntando por que os comerciantes técnicos chamam essa ferramenta de uma média móvel e não apenas um meio regular. A resposta é que, à medida que novos valores se tornam disponíveis, os pontos de dados mais antigos devem ser descartados do conjunto e novos pontos de dados devem vir para substituí-los. Assim, o conjunto de dados está constantemente em movimento para contabilizar os novos dados à medida que ele se torna 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) se move para a direita e o último valor de 15 é descartado do cálculo. Como o valor relativamente pequeno de 5 substitui o valor alto de 15, você esperaria ver a redução da média do conjunto de dados, o que faz, neste caso de 11 a 10. O que as médias móveis parecem Uma vez que os valores da MA foram calculados, eles são plotados em um gráfico e depois conectados para criar uma linha média móvel. Essas linhas curvas são comuns nos gráficos dos 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ê se acostumará a elas com o passar do tempo. 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, introduza um tipo diferente de média móvel e examine como isso difere da média móvel simples mencionada anteriormente. A média móvel simples é extremamente popular entre os comerciantes, mas, como todos os indicadores técnicos, 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 ocorre na sequê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 esta crítica, os comerciantes começaram a dar mais peso aos dados recentes, que desde então levaram à invenção de vários tipos de novas médias, sendo a mais popular a média móvel exponencial (EMA). (Para leitura adicional, veja Noções básicas de médias móveis ponderadas e qual a diferença entre uma SMA e uma 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 Para novas informações. Aprender a equação um tanto complicada para calcular um EMA pode ser desnecessário para muitos comerciantes, já que quase todos os pacotes de gráficos fazem os cálculos para você. No entanto, para você geeks de 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á nenhum valor disponível para usar como 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í. Nós fornecemos uma amostra de planilha que inclui exemplos da vida real de como calcular uma média móvel simples e uma média móvel exponencial. A Diferença entre o EMA e o SMA Agora que você tem uma melhor compreensão de como o SMA e o EMA são calculados, dê uma olhada em como essas médias diferem. Ao analisar o cálculo da EMA, você notará que é dada mais ênfase aos pontos de dados recentes, tornando-se um tipo de média ponderada. Na Figura 5, o número de períodos de tempo utilizados em cada média é idêntico (15), mas a EMA responde mais rapidamente aos preços em mudança. Observe como o EMA tem um valor maior quando o preço está subindo e cai mais rápido que o SMA quando o preço está em declínio. Essa capacidade de resposta é a principal razão pela qual muitos comerciantes preferem usar o EMA sobre o SMA. O que os dias diferentes significam As médias em movimento são um indicador totalmente personalizável, o que significa que o usuário pode escolher livremente o período de tempo que deseja ao criar a média. Os períodos de tempo mais comuns usados ​​em 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á para as mudanças de preços. Quanto maior o período de tempo, menos sensível ou mais suavizado, a média será. Não há um marco de tempo certo para usar ao configurar suas médias móveis. A melhor maneira de descobrir qual é o melhor para você é experimentar vários períodos de tempo diferentes até encontrar um que se encaixa na sua estratégia. Médias móveis: como usar o ThePostted in gnuradio Firas Abbas explica como usrpspectrumsense. py funciona: O seguinte link contém o código com alguma explicação e uma correção de erro (na equação self. maxcenterfreq): este programa pode ser usado como um código básico para implementar Analisador de espectro de banda larga. Como sabemos, o USRP não pode examinar mais de 8 MHz de espectro de RF devido às limitações de barramento USB. Assim, para escanear através de uma ampla faixa de espectro de RF (maior que 8 MHz), temos que ajustar a frente frontal do USRP RF em passos adequados para que possamos examinar muito espectro, embora não todos no mesmo instante. O ustrpspectrumsense mostra a maneira como ele pode ser feito. Ele passa pelo espectro e faz as medições de RF. Este aplicativo pode detectar uma grande largura de banda, mas não em tempo real, e pode fazer a varredura de freqüência na faixa de freqüência requerida. Para usar N pontos de análise complexa FFT X (W), temos que obter N amostras de tempo x (t) que são amostradas em Fs. Essas N amostras de tempo devem ser com janela de tempo usando uma função de janela conhecida para reduzir o vazamento espectral. Executando N pontos de análise complexa FFT. A saída do FFT complexo representará o conteúdo do espectro de freqüência da seguinte maneira: a) O primeiro valor da saída FFT (bin 0 X0) é a freqüência do centro da banda passante. B) A primeira metade da FFT (X1 a XN2-1 contém as frequências positivas de banda base, que corresponde ao espectro de banda passante da freqüência central para a freqüência máxima de banda passada (da freqüência central para Fs2). C) A segunda metade de A FFT (XN2 a XN-1) contém as frequências negativas de banda base, que correspondem à frequência de banda passante mais baixa até a frequência central da banda passante (de - Fs2 à frequência central). Deixe-nos assumir que temos 1024 amostras (I e Q) coletadas usando um sintonizador centrado em 20MHz. E vamos assumir que a freqüência de amostragem era de 8MHz. Fazendo 1024 pontos de FFT complexo significa: FFT A resolução de frequência é. 8MHz 1024 7812.5 KHz A saída da FFT X0 representa o espectro a 20MHz. A saída da FFT X1 a X511 representa as freqüências de 20.0078125 MHz para 23.9921875 MHz (cerca de 4MHz acima da freqüência central). A saída da FFT X512 para X1023 representa as frequências de 16.0078125 MHz para 19.9921875 MHz (cerca de 4MHz abaixo da frequência central). RF Frequency Sweeping 8212821282128212821282128212 1) Suponhamos que desejemos digitalizar faixa de espectro de RF de 10MHz a 52 MHz. 2) Lembremos que o USRP pode analisar 8MHz de freqüência ao mesmo tempo. 3) Então, teoricamente, temos que pisar nossa freqüência de centro de RF da seguinte forma: O primeiro passo é 14MHz (ele irá cobrir a faixa de freqüência de 10MHz a 18MHz), o segundo passo é 22MHz (ele irá cobrir faixa de freqüência de 18MHz a 26MHz), o terceiro passo é 30MHz (cobre a faixa de frequência de 26MHz a 34MHz), o quarto passo é 38MHz (ele irá cobrir faixa de freqüência de 34MHz a 42MHz), o quinto passo é 46MHz (ele irá cobrir faixa de freqüência de 42MHz a 50MHz) e, finalmente, o sexto passo É de 54MHz (irá cobrir faixa de frequência de 50MHz a 58MHz). Lembre-se de que queremos frequências de até 52MHz, então devemos descartar alguns pontos FFT da Sexta análise. 4) Paralytically temos que usar a sobreposição de FFT para reduzir a resposta de não linearidade do Conversor de Down Digital (a resposta de freqüência DDC não é Flat de - Fs2 a Fs2) e para preencher os orifícios de freqüência que estarão presentes nas bordas de análise FFT ( 10MHz, 18MHz, 26MHz, 34MHz, 42MHz, 50 MHz). Então, se optar por usar uma sobreposição de 25, isso significa que nosso tamanho de etapa será de 6MHz (8MHz (1-.25)), portanto, praticamente temos que pisar nossa freqüência de centro RF da seguinte maneira: O primeiro passo é 13MHz (será Faixa de freqüência de cobertura de 9MHz a 17MHz), o segundo passo é 19MHz (ele irá cobrir faixa de freqüência de 15MHz a 23MHz), o terceiro passo é 25MHz (ele irá cobrir faixa de freqüência de 21MHz a 29MHz), o quarto passo é 31MHz (ele irá cobrir a freqüência Faixa de 27MHz a 35MHz), o quinto passo é 37MHz (ele irá cobrir faixa de freqüência de 33MHz a 41MHz), o sexto passo é 43MHz (ele irá cobrir faixa de freqüência de 39MHz a 47MHz) e, finalmente, o sétimo passo é 49MHz (ele irá abranger Faixa de freqüência de 45MHz a 53MHz), alterando a freqüência do centro de RF 821282128212821282128212821282128212- 1) Para mudar a freqüência do centro RF do USRP, devemos enviar um comando de afinação ao USRP toda vez que concluímos a análise do pedaço de freqüência atual. 2) Antes da revisão gnuradio 10165, todos os tuning de placas-mãe RF da USRP foram feitos usando funções e classes do Python. Após essa revisão, é possível ajustar as placas-mãe do USRP com o código C. 3) Na usrpspectrumsense. py, o código escrito do DSP C pode invocar de forma transparente a função de sintonia USRP do código Python. Este controle de tunning é feito na função grbinstatisticsf sink. Problema de atraso de afinação: 8212821282128212821282128212 Quando encomendamos a placa-mãe RF da usrp para mudar sua freqüência central, temos que esperar até que as amostras ADC (à direita) cheguem ao nosso motor FFT e temos que garantir que ele pertence à freqüência do centro desejado. Isso representa um problema, pois há muitos atrasos ao longo do caminho de digitalização (tempo de ajuste do sintetizador de RF e tempo de enchimento FPGA FIFO do tempo de transmissão de tubagem, tempo de transferência USB8230etc). Para superar este problema, devemos usar tempo de atraso de sintonia suficiente para ter certeza de que as amostras que entram no nosso bloco FFT pertencem à freqüência central solicitada. Isso é feito simplesmente deixando cair as amostras recebidas recebidas ao longo de um tempo de atraso de afinação especificado. Usrpspectrumsense Implementação 82128212821282128212821282128212821282128212- O motor do usrpspectrumsense depende principalmente da função de dissipação de binstatistics. A função binstatistics combina a coleta de estatísticas com uma máquina de estado para controlar a sintonização de RF do USRP (varredura de freqüência). Ele determina os valores máximos (mantém o controle da potência máxima em cada arquivo FFT) de vetores (com comprimento vlen) durante um período de tempo determinado por dwelldelay (depois de convertê-lo em vários vetores FFT). Esta operação é realizada após o descarte de amostras ajustadas. Depois de processar N amostras de dwelldelay, binstatistics compõe uma mensagem e insere-a em uma fila de mensagens. Cada mensagem de binstatistics consiste em um vetor de valores máximos, prefixado pela freqüência central correspondente às amostras associadas, isto é, o valor de freqüência central das amostras de entrada entregues para binstatistics. Escolhendo tempos de atraso Tune e Dwell 82128212821282128212821282128212821282128212- 1) Temos que jogar com as opções de linha de comando 8211tune-delay e 8211dwell-delay-delay para determinar os valores de temporização apropriados. O mais importante é o tempo de atraso da sintonia. 2) A escolha do atraso da sintonização deve incluir tempo para o PLL da frente para se instalar, mais o tempo para as novas amostras se propagarem através da tubulação. O valor padrão é 1ms, o que provavelmente está na parada nas placas RFX. A placa TV RX é muito mais lenta. As fichas de dados do sintonizador dizem que pode demorar 100 ms para se instalar. 3) O parâmetro de temporização de atraso de sintonia passado para binstatistics é calculado em quadros FFT que depende da taxa USRP e do comprimento FFT como em: se esse valor calculado for inferior a 822018221, então devemos fazer pelo menos 822018221 quadros FFT. Por exemplo, se o: requiredtunedelayinsec 10e-3 e usrprate 8000000 (decimation 8) e o tamanho FFT é 1024, então: tunedelayed tobinstats 78 (FFT Frames) Isso significa que temos que ignorar 78 vetores recebidos (quadros FFT) antes de realmente usar as amostras adquiridas Em nossas estatísticas de espectro. 4) Além do tempo de afinação depende do hardware (velocidade do sintetizador de RF), deve-se lembrar que o tempo necessário para coletar 1024 amostras com taxa de decimação8 (mínima decimação do USRP) é de 128 usec, enquanto o tempo necessário para coletar 1024 amostras com taxa de decimação256 ( Diminuição máxima de USRP) é 4,096 ms. Isto significa que o atraso da sintonia no caso da taxa de decimação 256 deve ser maior do que o utilizado para a decimação 8. 5) Um valor de atraso do tune de trabalho (que dá resultados precisos) pode ser conhecido por experimentos (para taxa de decimação e comprimento FFT) . Interrupção do espectro de saída 8212821282128212821282128212821282128211 O mapeamento real dos níveis na porta de entrada da antena da placa-filha para os valores de análise de saída depende de muitos fatores, incluindo o ganho de RF da filha e o ganho específico da decimação no conversor de down digital. Você precisará calibrar o sistema se precisar de algo que mapeie para dBm. Atualmente, a saída do usrpspectrumsense é a magnitude ao quadrado da saída da FFT. Ou seja, para cada FFT bini, a saída é Yi reXireXi imXiimXi. Se você quiser poder, pegue a raiz quadrada da saída. Post navigationgnuradio. gr: Controle de nível de sinal (AGC) gnuradio. gr. Agc2cc (float attackrate 1e-1. Float decayrate 1e-2. Flutuante reference 1.0. Float gain 1.0. Float maxgain 0.0) rarr gragc2ccsptr alto desempenho Classe de controle de ganho automático Para Power o valor absoluto do número complexo é usado. Classe de controle de ganho automático de alto desempenho O poder é aproximado por valor absoluto alto desempenho Classe de controle de ganho automático Para poder, o valor absoluto do número complexo é usado. Classe de controle de Ganho Automático de alto desempenho O poder é aproximado pelo valor absoluto gnuradio. gr. Ctcsssquelchff (taxa int. Float freq. Float level 0.01. Int len ​​0. Int rampa 0. Bool gate False) rarr grctcsssquelchffsptr gate ou saída zero se ctcss tom não presente Detectar o pico de um sinal Se um pico é detectado, este bloco produz Um 1, ou ele produz 08217s. Gnuradio. gr. Feedforwardagccc (int nsamples. Float reference 1.0) rarr grfeedforwardagcccsptr AGC não causal que calcula o ganho exigido com base no valor absoluto absoluto sobre nsamples. Gnuradio. gr. Peakdetector2fb (float thresholdfactorrise 7. Int lookahead 1000. float alpha 0.001) rarr grpeakdetector2fbsptr Detectar o pico de um sinal Se um pico é detectado, este bloco produz um 1, ou ele sauda 08217s. Uma saída de depuração separada pode ser conectada, para visualizar o EWMA interno descrito abaixo. Thresholdfactorrise 8211 O fator limiar determina quando um pico está presente. Uma média de EWMA do sinal é calculada e quando o valor do sinal passa por um limite de redução de peso, chamamos o pico. Lookahead 8211 O valor look-ahead é usado quando o limite é encontrado para localizar o pico dentro desse intervalo. Alpha 8211 O valor de ganho de um filtro de média móvel de um único pólo Obter o valor alfa da média de execução. Obtenha o valor do fator look-ahead. Defina o alfa médio de corrida. Defina o fator look-ahead. Defina o valor do fator limiar para o tempo de subida. Grpeakdetector2fbsptr. Thresholdfactorrise (self) rarr float Obtenha o valor do fator limiar para o tempo de subida. Gnuradio. gr. Pwrsquelchcc (double db. Duplo alfa 0.0001. Int rampa 0. Bool gate False) rarr grpwrsquelchccsptr gate ou saída zero quando a potência de entrada abaixo do portão de limite ou saída zero quando a potência de entrada abaixo do limite Detecta o pico de um sinal e repita todas as amostras de período Se um O pico é detectado, este bloco produz uma repetida de cada período de amostras até a reinicialização por meio da detecção de outra 1 na entrada ou parada depois que as regenerações máximas ocorreram. Observe que se maxregen (-1) ULONGMAX, então a regeneração será executada para sempre. Repor a contagem de regeneração máxima, isso irá redefinir o regen atual. Repor o período de regeneração, isso irá redefinir o regen atual. Gnuradio. gr. Simplesquelchcc (double threshold, double alpha 0.0001) rarr grsimplesquelchccsptr bloco de squelch simples com base na potência e limiar de sinal médio em dB. Entrada de saída ou zero se silenciado. Entrada de saída ou zero se silenciado. Entrada de saída ou zero se silenciado. Entrada de saída ou zero se silenciado. Grmutesssptr. Mudo (auto) rarr bool grmutesssptr. Setmute (self. Bool mute) gnuradio. gr. Peakdetectorfb (float thresholdfactorrise 0.25. Flutuante thresholdfactorfall 0.40. Int lookahead 10. Float alpha 0.001) rarr grpeakdetectorfbsptr Detectar o pico de um sinal Se um pico é detectado, este bloco produz um 1, ou ele sauda 08217s. Thresholdfactorrise 8211 O factor de limiar determina quando um pico começou. Calcula-se uma média do sinal e, quando o valor do sinal ultrapassa o limite de uma redução de peso, começamos a procurar um pico. Loopfactorfall 8211 O factor de limiar determina quando um pico terminou. Uma média do sinal é calculada e, quando o valor do sinal passa abaixo do limitefactorfallaverage, deixamos de procurar um pico. Lookahead 8211 O valor look-ahead é usado quando o limite é encontrado para verificar se existe outro pico dentro deste intervalo de etapas. Se houver um valor maior, estabelecemos isso como o pico e olhamos para frente novamente. Isso é continuado até que o ponto mais alto seja encontrado com o alcance deste look-ahead. Alpha 8211 O valor de ganho de um filtro médio móvel Obter o valor alfa da média em execução. Obtenha o valor do fator look-ahead. Defina o alfa médio de corrida. Defina o fator look-ahead. Defina o valor do fator limiar para o tempo de queda. Defina o valor do fator limiar para o tempo de subida. Grpeakdetectorfbsptr. Thresholdfactorfall (self) rarr float Obtenha o valor do fator limiar para o tempo de queda. Grpeakdetectorfbsptr. Thresholdfactorrise (self) rarr float Obtenha o valor do fator limiar para o tempo de subida. Gnuradio. gr. Peakdetectorib (float thresholdfactorrise 0.25. Float thresholdfactorfall 0.40. Int lookahead 10. Float alpha 0.001) rarr grpeakdetectoribsptr Detectar o pico de um sinal Se um pico é detectado, este bloco emite um 1, ou ele sauda 08217s. Thresholdfactorrise 8211 O factor de limiar determina quando um pico começou. Calcula-se uma média do sinal e, quando o valor do sinal ultrapassa o limite de uma redução de peso, começamos a procurar um pico. Loopfactorfall 8211 O factor de limiar determina quando um pico terminou. Uma média do sinal é calculada e, quando o valor do sinal passa abaixo do limitefactorfallaverage, deixamos de procurar um pico. Lookahead 8211 O valor look-ahead é usado quando o limite é encontrado para verificar se existe outro pico dentro deste intervalo de etapas. Se houver um valor maior, estabelecemos isso como o pico e olhamos para frente novamente. Isso é continuado até que o ponto mais alto seja encontrado com o alcance deste look-ahead. Alpha 8211 O valor de ganho de um filtro médio móvel Obter o valor alfa da média em execução. Obtenha o valor do fator look-ahead. Defina o alfa médio de corrida. Defina o fator look-ahead. Defina o valor do fator limiar para o tempo de queda. Defina o valor do fator limiar para o tempo de subida. Grpeakdetectoribsptr. Thresholdfactorfall (self) rarr float Obtenha o valor do fator limiar para o tempo de queda. Grpeakdetectoribsptr. Thresholdfactorrise (self) rarr float Obtenha o valor do fator limiar para o tempo de subida. Gnuradio. gr. Detectar o pico de um sinal Se um pico é detectado, este bloco emite um 1, ou ele sauda 08217s. Detectar o pico de um sinal. Thresholdfactorrise 8211 O factor de limiar determina quando um pico começou. Calcula-se uma média do sinal e, quando o valor do sinal ultrapassa o limite de uma redução de peso, começamos a procurar um pico. Loopfactorfall 8211 O factor de limiar determina quando um pico terminou. Uma média do sinal é calculada e, quando o valor do sinal passa abaixo do limitefactorfallaverage, deixamos de procurar um pico. Lookahead 8211 O valor look-ahead é usado quando o limite é encontrado para verificar se existe outro pico dentro deste intervalo de etapas. Se houver um valor maior, estabelecemos isso como o pico e olhamos para frente novamente. Isso é continuado até que o ponto mais alto seja encontrado com o alcance deste look-ahead. Alpha 8211 O valor de ganho de um filtro médio móvel Obter o valor alfa da média em execução. Obtenha o valor do fator look-ahead. Defina o alfa médio de corrida. Defina o fator look-ahead. Defina o valor do fator limiar para o tempo de queda. Defina o valor do fator limiar para o tempo de subida. Grpeakdetectorsbsptr. Thresholdfactorfall (self) rarr float Obtenha o valor do fator limiar para o tempo de queda. Grpeakdetectorsbsptr. Thresholdfactorrise (self) rarr float Obtenha o valor do fator limiar para o tempo de subida. Gnuradio. gr. Sampleandholdbb () rarr grsampleandholdbbsptr exemplo e banco de espera Mostra o fluxo de dados (fluxo de entrada 0) e mantém o valor se o sinal de controle for 1 (fluxo de entrada 1). Gnuradio. gr. Sampleandholdff () rarr grsampleandholdffsptr exemplo e banco de retenção Amostras o fluxo de dados (fluxo de entrada 0) e mantém o valor se o sinal de controle for 1 (fluxo de entrada 1). Gnuradio. gr. Sampleandholdii () rarr grsampleandholdiisptr amostra e circuito de retenção Mostra o fluxo de dados (fluxo de entrada 0) e mantém o valor se o sinal de controle for 1 (fluxo de entrada 1). Gnuradio. gr. Sampleandholdss () rarr grsampleandholdsssptr exemplo e circuito de espera Mostra o fluxo de dados (fluxo de entrada 0) e mantém o valor se o sinal de controle for 1 (fluxo de entrada 1).

No comments:

Post a Comment