De Resposta Ideal para Filtro Prático
Hamming apresentou um método de design em quatro passos para filtros FIR usando série de Fourier.
Passo 1: Especificar a Resposta Ideal
Defina H_ideal(f): a resposta em frequência exata que você deseja. Para um filtro passa-baixa: H = 1 para f < f_c, H = 0 para f > f_c. Esta é uma função degrau no domínio da frequência.
Passo 2: Calcular Coeficientes de Fourier
Expanda H_ideal(f) como uma série de Fourier na variável de frequência. Os coeficientes c_k são os valores da resposta ao impulso ideal do filtro:
c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df
Para um filtro passa-baixa com frequência de corte f_c: c_k = sin(2πf_c·k) / (πk) para k ≠ 0, c_0 = 2f_c.
Esta resposta ao impulso é infinita — a função sinc se estende infinitamente no tempo. Um filtro prático precisa de um número finito de coeficientes.
Passo 3: Truncar para 2N+1 Termos
Mantenha apenas coeficientes c_k para |k| ≤ N. Esta janela retangular de 2N+1 termos é o truncamento mais simples. Produz o fenômeno de Gibbs: ≈9% de overshoot próximo ao corte.
Passo 4: Aplicar uma Janela
Multiplique os coeficientes truncados por uma função de janela w_k para reduzir o overshoot de Gibbs:
c̃_k = c_k · w_k
Os coeficientes com janela c̃_k definem o filtro prático.
Calculando Coeficientes de Fourier
A fórmula do coeficiente de Fourier c_k = sin(2πf_c·k) / (πk) para um filtro passa-baixa com frequência de corte f_c fornece a resposta ao impulso.
Para um filtro passa-banda com frequência de corte inferior f_l e frequência de corte superior f_u, o coeficiente de Fourier para a resposta ideal é: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).
Como Janelas Reduzem o Overshoot de Gibbs
Uma função de janela w_k reduz a sequência de coeficientes truncados de seu valor central até zero nas bordas. A redução remove as bordas afiadas introduzidas pelo truncamento retangular.
Por Que a Redução Funciona
O overshoot de Gibbs surge porque a transformada de Fourier da janela retangular (a função sinc) tem lóbulos laterais grandes. Esses lóbulos se somam próximo à descontinuidade para produzir o overshoot de ≈9%.
Uma janela suave tem uma transformada de Fourier com lóbulos laterais menores. Multiplicar os coeficientes pela janela convolucionra a resposta em frequência ideal com a transformada de Fourier da janela. Lóbulos menores → menos ondulação.
Janelas Comuns
Retangular (sem janela): lóbulos ≈ −13 dB, Gibbs ≈ 9%.
Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Lóbulos ≈ −31 dB.
Hamming: w_k = 0.54 + 0.46·cos(πk/N). Lóbulos ≈ −41 dB, primeiro lóbulo ≈ −43 dB. Gibbs < 0.2%.
Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Ajustável: α controla o nível de lóbulo lateral, permitindo que um design negocie altura de lóbulo lateral vs largura de banda de transição.
A Negociação da Janela
Toda janela impõe uma negociação: suprimir lóbulos laterais sempre alarga o lóbulo principal.
Um lóbulo principal mais largo significa uma banda de transição mais larga — o intervalo de frequências entre banda passante & banda de rejeição.
Hamming formalizou isso em termos dos parâmetros de design de Kaiser:
- δ: ondulação permitida (tolerância vertical do ideal — quanto a resposta pode desviar de 0 ou 1)
- ΔF: largura de transição (tolerância horizontal — quão estreita a transição de passagem para rejeição)
O método de Kaiser encontra N (número de coeficientes) & α (o parâmetro de forma da janela) apenas a partir de δ & ΔF. Sem adivinhar o tipo de janela.
De Especificações para Coeficientes
O método de Kaiser pega duas especificações — δ (tolerância de ondulação) & ΔF (largura de transição) — & produz N & os coeficientes da janela sem tentativa & erro.
A Sequência de Design
1. Calcule A = −20·log₁₀(δ) (atenuação em dB)
2. Calcule o parâmetro de forma α:
- Se A > 50: α = 0.1102·(A − 8.7)
- Se 21 ≤ A ≤ 50: α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)
- Se A < 21: α = 0 (janela retangular)
3. Calcule N = (A − 8) / (2.285 · 2πΔF)
4. Calcule os pesos da janela de Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)
5. Multiplique os coeficientes de Fourier ideais pelos pesos da janela
6. Avalie a função de transferência resultante & verifique a ondulação contra δ. Se a ondulação exceder δ (interferência de borda), repita com uma tolerância menor.
Hamming observou: Kaiser chegou ao expoente 0.4 tentando 0.5 (muito grande) & descobrindo que 0.4 se encaixava bem. O computador serviu como uma ferramenta experimental para pesquisa teórica.
Aplicando o Método de Kaiser
A função de Bessel I₀(x) aparece na fórmula da janela de Kaiser. Ela computa como uma série rapidamente convergente:
I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²
Para x pequeno a série converge em alguns termos por causa do m!² no denominador.