Para outra abordagem, você pode truncar a janela de média móvel exponencial e, em seguida, calcular seu sinal filtrado, fazendo uma convolução entre o seu sinal ea janela exponencial. A convolução pode ser calculada usando a biblioteca CUDA FFT livre (cuFFT) porque, como você deve saber, a convolução pode ser expressa como a multiplicação ponto-sábia dos dois sinais no domínio fourier (Este é o apropriadamente chamado Convolution Theorem, Que é executado com uma complexidade de O (n log (n))). Este tipo de abordagem irá minimizar o seu código CUDA kernel e correr muito, muito rapidamente, mesmo em uma GeForce 570 Particularmente, se você pode fazer todos os seus cálculos em única (float) de precisão. Eu gostaria de propor a manipular a equação de diferença acima como indicado abaixo e, em seguida, usando CUDA Thrust primitivas. DIFERENÇA EQUAÇÃO MANIPULAÇÃO - FORMA EXPLÍCITA DA DIFERENÇA EQUAÇÃO Por álgebra simples, você pode encontrar o seguinte: Em conformidade, a forma explícita é a seguinte: CUDA THRUST IMPLEMENTAÇÃO Você pode implementar a forma explícita acima pelas seguintes etapas: Inicializar uma entrada sequencia dinput Alfa, excepto para dinput0 1. Definir um vetor d1 overbetatothen igual a 1, 1beta, 1beta2, 1beta3. Multiply elementwise dinput by d1overbetatothen Executar um inclusivescan para obter a seqüência do yn betan Divida a seqüência acima por 1, 1beta, 1beta2, 1beta3. A abordagem acima pode ser recomendada para sistemas Linear Time-Varying (LTV). Para os sistemas Linear Time-Invariant (LTI), a abordagem FFT mencionada por Paul pode ser recomendada. Estou fornecendo um exemplo dessa abordagem usando CUDA Thrust e cuFFT na minha resposta para FIR filtro em CUDA. Moving Average Este exemplo ensina como calcular a média móvel de uma série temporal no Excel. Uma média móvel é usada para suavizar irregularidades (picos e vales) para reconhecer facilmente as tendências. 1. Primeiro, vamos dar uma olhada em nossa série de tempo. 2. No separador Dados, clique em Análise de dados. Nota: não é possível encontrar o botão Análise de dados Clique aqui para carregar o suplemento do Analysis ToolPak. 3. Selecione Média móvel e clique em OK. 4. Clique na caixa Input Range e selecione o intervalo B2: M2. 5. Clique na caixa Intervalo e escreva 6. 6. Clique na caixa Output Range e seleccione a célula B3. 8. Faça um gráfico destes valores. Explicação: porque definimos o intervalo como 6, a média móvel é a média dos 5 pontos de dados anteriores eo ponto de dados atual. Como resultado, os picos e vales são suavizados. O gráfico mostra uma tendência crescente. O Excel não consegue calcular a média móvel para os primeiros 5 pontos de dados porque não existem pontos de dados anteriores suficientes. 9. Repita os passos 2 a 8 para o intervalo 2 eo intervalo 4. Conclusão: Quanto maior o intervalo, mais os picos e vales são suavizados. Quanto menor for o intervalo, mais próximas serão as médias móveis dos pontos de dados reais. Filtro Móvel-Médio de Dados de Tráfego Este exemplo mostra como suavizar os dados de fluxo de trânsito usando um filtro de média móvel com uma janela deslizante de 4 horas. A seguinte equação de diferenças descreve um filtro que calcula a média da hora atual e das três horas anteriores de dados. Importe os dados de tráfego e atribua a primeira coluna de contagens de veículos ao vetor x. Crie os vetores de coeficiente de filtro. Calcule a média móvel de 4 horas dos dados e trace os dados originais e os dados filtrados. MATLAB e Simulink são marcas registradas da The MathWorks, Inc. Consulte mathworkstrademarks para obter uma lista de outras marcas comerciais de propriedade da The MathWorks, Inc. Outros produtos ou marcas são marcas comerciais ou marcas registradas de seus respectivos proprietários. Escolha o seu país
No comments:
Post a Comment