Saturday 11 November 2017

1d Matlab De Filtro Médio Móvel


Criado em quarta-feira, 08 de outubro de 2008 20:04 Atualizado em quinta-feira, 14 de março de 2013 01:29 Escrito por Batuhan Osmanoglu Hits: 41002 Média móvel em Matlab Muitas vezes eu me encontro na necessidade de prover os dados que eu tenho para reduzir o ruído um pouco pouco. Eu escrevi algumas funções para fazer exatamente o que eu quero, mas os matlabs criados na função de filtro funcionam muito bem também. Aqui vou escrever sobre dados em média 1D e 2D. O filtro 1D 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 de 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 funciona o filtro, você pode digitar: Aqui está uma implementação rápida e suja de um filtro médio 16 por 16 em movimento. Primeiro precisamos definir o filtro. Como tudo o que queremos é contribuição igual de todos os vizinhos, podemos usar apenas a função. Nós dividimos tudo com 256 (1616), uma vez que não queremos alterar 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 o Azimuth é mapeado no eixo X. O filtro tinha 4 pixels de largura em Gama e 16 pixels de largura em Azimuth. A documentação e o filtro (b, a, x) filtram os dados de entrada x usando uma função de transferência racional definida pelos coeficientes de numerador e denominador b e a. Se a (1) não for igual a 1., o filtro normaliza os coeficientes de filtro por um (1). Portanto, um (1) deve ser diferente de zero. Se x é um vetor, o filtro retorna os dados filtrados como um vetor do mesmo tamanho que x. Se x for uma matriz, o filtro age ao longo da primeira dimensão e retorna os dados filtrados para cada coluna. Se x for uma matriz multidimensional, o filtro atua ao longo da primeira dimensão da matriz cujo tamanho não é igual a 1. o filtro (b, a, x, zi) usa as condições iniciais zi para os atrasos do filtro. O comprimento do zi deve ser igual ao máximo (comprimento (a), comprimento (b)) - 1. O filtro y (b, a, x, zi, dim) atua ao longo da dim. Por exemplo, se x for uma matriz, então o filtro (b, a, x, zi, 2) retorna os dados filtrados para cada linha. Y, o filtro zf () também retorna as condições finais zf dos atrasos do filtro, usando qualquer uma das sintaxes anteriores. Função de transferência racional A descrição de entrada-saída da operação de filtro em um vetor no domínio de transformação Z é uma função de transferência racional. Uma função de transferência racional é da forma, Y (z) b (1) b (2) z x2212 1. B (n b 1) z x2212 n b 1 a (2) z x2212 1. A (n a 1) z x2212 n a X (z). Que lida com os filtros FIR e IIR 1. n a é a ordem do filtro de feedback e n b é a ordem do filtro feedforward. Você também pode expressar a função de transferência racional como a seguinte equação de diferença, a (1) y (n) b (1) x (n) b (2) x (n x2212 1). B (n b 1) x (n x2212 n b) x2212 a (2) y (n x2212 1) x2212. X2212 a (n a 1) y (n x2212 n a). Além disso, você pode representar a função de transferência racional usando sua implementação transposta de forma direta II, como no diagrama a seguir. Devido à normalização, assumir um (1) 1. A operação do filtro na amostra m é dada pelas equações de diferença do domínio do tempo y (m) b (1) x (m) z 1 (m x2212 1) z 1 (m) b (2) x (m) z 2 ( m x2212 1) x2212 um (2) Y (m) x00A0x00A0 x22EE x00A0x00A0x00A0x00A0x00A0 x00A0x00A0x00A0x00A0x00A0 x22EE x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0x00A0 x22EE Zn x2212 2 (m) b (n x2212 1) x (m) x2212 Zn 1 (m x2212 1) x2212 um (n x2212 1 ) Y (m) zn x2212 1 (m) b (n) x (m) x2212 a (n) y (m). Se você possui o Signal Processing Toolboxx2122, você pode projetar um filtro, d. Usando designfilt. Então, você pode usar o filtro Y (d, X) para filtrar seus dados. Selecione sua documentação do país Este exemplo mostra o fluxo de trabalho recomendado para gerar código C de uma função MATLAB usando o comando codegen. Estas são as etapas: 1. Adicione a diretiva do codegen à função MATLAB para indicar que ela se destina a geração de código. Esta diretiva também permite que o analisador de código MATLAB identifique 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. Teste a função MEX no MATLAB para garantir que seja funcionalmente equivalente ao código MATLAB original e que não ocorrem erros de tempo de execução. 4. Gerar código C. 5. Inspecione o código C. Pré-requisitos Não há 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 apenas conterá os arquivos 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 mudar sua pasta de trabalho. Executar Comando: Criar uma Nova Pasta e Copiar Arquivos Relevantes Sobre a Função de Filtragem Média A função média de filtragem. m atua como um filtro de média no sinal de entrada, ele toma um vetor de valores de entrada e calcula uma média para cada valor no vetor. O vetor de saída é do mesmo tamanho e forma que o vetor de entrada. Escolha o seu país

No comments:

Post a Comment