Saturday, 2 December 2017

Movendo o código de filtro médio matlab


Criado em quarta-feira, 08 de outubro de 2008 20:04 Atualizado em Quinta-feira, 14 de Março de 2017 01:29 Escrito por Batuhan Osmanoglu Hits: 38977 Moving Average Em Matlab Muitas vezes eu me encontro na necessidade de calcular a média dos dados que tenho para reduzir o ruído um pouco pouco. Eu escrevi funções de casal para fazer exatamente o que eu quero, mas matlabs construído em função de filtro funciona muito bem também. Aqui Ill escrever sobre 1D e 2D média dos dados. 1D filtro pode ser realizado usando a função de filtro. A função de filtro requer pelo menos três parâmetros de entrada: o coeficiente de numerador para o filtro (b), o coeficiente do denominador para o filtro (a) e os dados (X), é claro. Um filtro de média em execução pode ser definido simplesmente por: Para dados 2D, podemos usar a função Matlabs filter2. Para obter mais informações sobre como o filtro funciona, você pode digitar: Aqui está uma implementação rápida e suja de um filtro de média móvel 16 por 16. Primeiro precisamos definir o filtro. Uma vez que tudo o que queremos é a contribuição igual de todos os vizinhos, podemos apenas usar a função uns. Nós dividimos tudo com 256 (1616) desde que nós não queremos mudar o nível geral (amplitude) do sinal. Para aplicar o filtro podemos simplesmente dizer o seguinte Abaixo estão os resultados para a fase de um interferograma SAR. Neste caso, Range está no eixo Y e Azimuth é mapeado no eixo X. O filtro tinha 4 pixels de largura em Alcance e 16 pixels de largura em Azimute. Login SearchDocumentation Este exemplo mostra o fluxo de trabalho recomendado para gerar código C a partir de uma função MATLAB usando o comando codegen. Estas são as etapas: 1. Adicionar a diretiva codegen para a função MATLAB para indicar que ele é destinado para geração de código. Esta diretiva também permite que o analisador de código MATLAB para identificar avisos e erros específicos para MATLAB para geração de código. 2. Gerar uma função MEX para verificar se o código MATLAB é adequado para geração de código. Se ocorrerem erros, você deve corrigi-los antes de gerar o código C. 3. Testar a função MEX no MATLAB para garantir que é funcionalmente equivalente ao código MATLAB original e que não ocorrem erros de tempo de execução. 4. Gere código C. 5. Inspecione o código C. Pré-requisitos Não existem pré-requisitos para este exemplo. Criar uma nova pasta e copiar arquivos relevantes O código a seguir criará uma pasta na sua pasta de trabalho atual (pwd). A nova pasta conterá somente os arquivos que são relevantes para este exemplo. Se você não quiser afetar a pasta atual (ou se você não pode gerar arquivos nesta pasta), você deve alterar sua pasta de trabalho. Comando de Execução: Criar uma Nova Pasta e Copiar Arquivos Relevantes Sobre a função de averagingfilter A função averagingfilter. m atua como um filtro de média no sinal de entrada que toma um vetor de entrada de valores e calcula uma média para cada valor no vetor. O vetor de saída tem o mesmo tamanho e forma que o vetor de entrada. Select Your CountryDocumentation tsmovavg saída tsmovavg (tsobj, s, lag) retorna a média móvel simples para o objeto da série temporal financeira, tsobj. Lag indica o número de pontos de dados anteriores usados ​​com o ponto de dados atual ao calcular a média móvel. A saída tsmovavg (vetor, s, lag, dim) retorna a média móvel simples para um vetor. Lag indica o número de pontos de dados anteriores usados ​​com o ponto de dados atual ao calcular a média móvel. A saída tsmovavg (tsobj, e, timeperiod) retorna a média móvel ponderada exponencial para a série de tempo financeiro objeto, tsobj. A média móvel exponencial é uma média móvel ponderada, em que timeperiod especifica o período de tempo. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. Percentual Exponencial 2 / (TIMEPER 1) ou 2 / (WINDOWSIZE 1). Saída tsmovavg (vetor, e, timeperiod, dim) retorna a média móvel ponderada exponencial para um vetor. A média móvel exponencial é uma média móvel ponderada, em que timeperiod especifica o período de tempo. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. (2 / (intervalo de tempo 1)). A saída tsmovavg (tsobj, t, numperiod) retorna a média móvel triangular para a série de tempo financeiro objeto, tsobj. A média móvel triangular alisa os dados. Tsmovavg calcula a primeira média móvel simples com a largura da janela de ceil (numperíodo 1) / 2. Em seguida, calcula uma segunda média móvel simples na primeira média móvel com o mesmo tamanho de janela. Saída tsmovavg (vetor, t, numperiod, dim) retorna a média móvel triangular para um vetor. A média móvel triangular alisa os dados. Tsmovavg calcula a primeira média móvel simples com a largura da janela de ceil (numperíodo 1) / 2. Em seguida, calcula uma segunda média móvel simples na primeira média móvel com o mesmo tamanho de janela. A saída tsmovavg (tsobj, w, weights) retorna a média móvel ponderada para o objeto da série temporal financeira, tsobj. Fornecendo pesos para cada elemento na janela em movimento. O comprimento do vetor de peso determina o tamanho da janela. Se fatores de peso maiores forem usados ​​para preços mais recentes e fatores menores para preços anteriores, a tendência é mais responsiva a mudanças recentes. A saída tsmovavg (vetor, w, pesos, dim) retorna a média móvel ponderada para o vetor fornecendo pesos para cada elemento na janela em movimento. O comprimento do vetor de peso determina o tamanho da janela. Se fatores de peso maiores forem usados ​​para preços mais recentes e fatores menores para preços anteriores, a tendência é mais responsiva a mudanças recentes. A saída tsmovavg (tsobj, m, numperiod) retorna a média móvel modificada para o objeto da série de tempo financeiro, tsobj. A média móvel modificada é semelhante à média móvel simples. Considere o argumento numperiod como o atraso da média móvel simples. A primeira média móvel modificada é calculada como uma média móvel simples. Os valores subseqüentes são calculados adicionando o novo preço e subtraindo a última média da soma resultante. A saída tsmovavg (vetor, m, numperiod, dim) retorna a média móvel modificada para o vetor. A média móvel modificada é semelhante à média móvel simples. Considere o argumento numperiod como o atraso da média móvel simples. A primeira média móvel modificada é calculada como uma média móvel simples. Os valores subseqüentes são calculados adicionando o novo preço e subtraindo a última média da soma resultante. Dim 8212 dimensão para operar ao longo de inteiro positivo com valor 1 ou 2 Dimensão para operar ao longo, especificado como um inteiro positivo com um valor de 1 ou 2. dim é um argumento de entrada opcional, e se não for incluído como uma entrada, o padrão Valor 2 é assumido. O padrão de dim 2 indica uma matriz orientada a linha, em que cada linha é uma variável e cada coluna é uma observação. Se dim 1. a entrada é assumida como sendo um vetor de coluna ou uma matriz orientada a coluna, onde cada coluna é uma variável e cada linha uma observação. E 8212 Indicador para vetor de caracteres de média móvel exponencial A média móvel exponencial é uma média móvel ponderada, em que timeperiod é o período de tempo da média móvel exponencial. As médias móveis exponenciais reduzem o desfasamento aplicando mais peso aos preços recentes. Por exemplo, uma média móvel exponencial de 10 períodos pondera o preço mais recente em 18,18. Porcentagem Exponencial 2 / (TIMEPER 1) ou 2 / (WINDOWSIZE 1) período de tempo 8212 Comprimento do período de tempo inteiro não negativo Selecione seu paísMoving Average Filter (MA filter) Carregando. O filtro de média móvel é um simples filtro Low Pass FIR (Finite Impulse Response) comumente usado para suavizar uma matriz de dados / sinal amostrados. Ele toma M amostras de entrada de cada vez e pegue a média dessas M-amostras e produz um único ponto de saída. É uma estrutura de LPF (Low Pass Filter) muito simples que é útil para cientistas e engenheiros para filtrar o componente ruidoso indesejado dos dados pretendidos. À medida que o comprimento do filtro aumenta (o parâmetro M) a suavidade da saída aumenta, enquanto que as transições nítidas nos dados são feitas cada vez mais sem corte. Isto implica que este filtro tem excelente resposta no domínio do tempo mas uma resposta de frequência pobre. O filtro MA executa três funções importantes: 1) Toma M pontos de entrada, calcula a média desses pontos M e produz um único ponto de saída 2) Devido à computação / cálculos envolvidos. O filtro introduz uma quantidade definida de atraso 3) O filtro age como um Filtro de Passagem Baixa (com fraca resposta de domínio de freqüência e uma boa resposta de domínio de tempo). Código Matlab: O código matlab seguinte simula a resposta no domínio do tempo de um filtro M-point Moving Average e também traça a resposta de freqüência para vários comprimentos de filtro. Time Domain Response: No primeiro gráfico, temos a entrada que está entrando no filtro de média móvel. A entrada é barulhenta e nosso objetivo é reduzir o ruído. A figura a seguir é a resposta de saída de um filtro de média móvel de 3 pontos. Pode-se deduzir da figura que o filtro de média móvel de 3 pontos não fez muito na filtragem do ruído. Aumentamos os toques do filtro para 51 pontos e podemos ver que o ruído na saída reduziu muito, o que é mostrado na próxima figura. Nós aumentamos as derivações para 101 e 501 e podemos observar que mesmo que o ruído seja quase zero, as transições são drasticamente ditas (observe a inclinação em ambos os lados do sinal e compare-as com a transição ideal da parede de tijolo em Nossa entrada). Resposta de Freqüência: A partir da resposta de freqüência pode-se afirmar que o roll-off é muito lento ea atenuação de banda de parada não é boa. Dada esta atenuação de banda de parada, claramente, o filtro de média móvel não pode separar uma banda de freqüências de outra. Como sabemos que um bom desempenho no domínio do tempo resulta em mau desempenho no domínio da freqüência, e vice-versa. Em suma, a média móvel é um filtro de suavização excepcionalmente bom (a ação no domínio do tempo), mas um filtro de passa-baixa excepcionalmente ruim (a ação no domínio da freqüência) Links externos: Livros recomendados: Primary SidebarMoving-Average Filter of Traffic Dados Este exemplo mostra como suavizar os dados de fluxo de tráfego 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 mathworks / marcas comerciais 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. Selecione seu país

No comments:

Post a Comment