Filtro passa-baixa digital
EXEMPLO DE ALGORITMO DE FILTRO PASSA-BAIXA DIGITAL
Acadêmico: Gabriel Justino M. Daniel
RA: 107058
CAMPO GRANDE
2010
O Filtro Não - Recursivo (também chamado de FIR – Finite Impulse Response) de primeira ordem se comporta de acordo com a equação abaixo.
y(n) = x(n) + x(n - 1)
A característica do filtro não – recursivo é depender apenas da entrada.
Exemplo de implementação do filtro não-recursivo em linguagem C:
// Função de um filtro passa-baixa não-recursivo
// y(n) = x(n) + x(n-1)
double filtro_PF (double *x, double *y, int n_amostras, double amostra1)
{
int n; //declara a variável n -> contagem do número de amostras y[0] = x[0] + amostra1; //calcula a saída da primeira amostra for (n=1; n < n_amostras ; n++) { //loop para o cálculo do resto das amostras y[n] = x[n] + x[n-1]; //equação do filtro } return x[M-1]; //retorna o último estado do filtro para que possa ser usado //como valor inicial amostra1 em outro bloco caso o filtro //seja de ordem maior que 1
}
Os Filtros Recursivos consideram saídas anteriores no cálculo da saída atual e utilizam coeficientes de recursão para saídas anteriores (coeficiente a) e para as amostras anteriores (coeficiente b) e se apresentam na forma:
y(n) = bx(n) + bx(n - 1) – ay(n - 1) para um filtro de primeira ordem.
Os coeficientes de um filtro recursivo passa-baixa de pólo simples para uma dada freqüência de corte podem ser encontrados pelas equações abaixo.
[pic]
[pic]
Exemplo de implementação do filtro recursivo em linguagem C:
// Função de um filtro passa-baixa recursivo
// y(n) = bx(n) + bx(n-1) – ay(n - 1)
double a = 0.15; //coeficientes double b = 0.85;