Skip to content

Filtro Passa Baixa

__init__(cut_off, order, fs=128000, type='butter')

Inicializa um filtro passa-baixa com base em uma frequência de corte \(f_{cut}\) e uma ordem \(N\).

Parameters:

Name Type Description Default
cut_off float

Frequência de corte \(f_{cut}\) do filtro.

required
order int

Ordem \(N\) do filtro.

required
fs (int, opcional)

Frequência de amostragem \(f_s\).

128000
type (str, opcional)

Tipo de filtro. Padrão é "butter".

'butter'

Raises:

Type Description
ValueError

Se o tipo de filtro for inválido.

Exemplo

pageplot

butterworth_filter(fNyquist=0.5)

Calcula os coeficientes do filtro Butterworth utilizando a biblioteca scipy.signal. A função de transferência contínua \(H(s)\) de um filtro Butterworth é dada pela expressão abaixo.

\[ H(s) = \frac{1}{1 + \left(\frac{s}{2 \pi f_{cut}}\right)^{2n}} \]
Sendo
  • \(s\): Variável complexa no domínio de Laplace.
  • \(2 \pi f_{cut}\): Frequência angular de corte do filtro.
  • \(n\): Ordem do filtro.

Parameters:

Name Type Description Default
fNyquist float

Fator de Nyquist. Padrão é 0.5 * fs.

0.5

Returns:

Name Type Description
tuple

Coeficientes \(b\) e \(a\) correspondentes à função de transferência do filtro Butterworth.

Exemplos

pageplot

calc_impulse_response(impulse_len=1024)

Para obter a resposta ao impulso no dominio do tempo, um impulso unitário é aplicado como entrada. Para um filtro Butterworth, o calculo é dado pela expressão abaixo.

\[ h(t) = \mathcal{L}^{-1}\left\{H(f)\right\} \]
Sendo
  • \(h(t)\): Resposta ao impulso do filtro.
  • \(H(f)\): Função de transferência do filtro.
  • \(\mathcal{L}^{-1}\): Transformada de Laplace inversa.

Parameters:

Name Type Description Default
impulse_len int

Comprimento do vetor de impulso.

1024

Returns:

Name Type Description
impulse_response tuple[ndarray, ndarray]

Resposta ao impulso e vetor de tempo.

Exemplo

pageplot

apply_filter(signal)

Aplica o filtro passa-baixa com resposta ao impulso \(h(t)\) ao sinal de entrada \(s(t)\), utilizando a função scipy.signal.filtfilt. O processo de filtragem é dado pela expressão abaixo.

\[ x(t) = s(t) \ast h(t) \]
Sendo
  • \(x(t)\): Sinal filtrado.
  • \(s(t)\): Sinal de entrada.
  • \(h(t)\): Resposta ao impulso do filtro.

Parameters:

Name Type Description Default
signal ndarray

Sinal de entrada \(s(t)\).

required

Returns:

Name Type Description
signal_filtered ndarray

Sinal filtrado \(x(t)\).