Od odpowiedzi idealnej do filtra praktycznego
Hamming zaprezentował czterostopniową metodę projektowania filtrów FIR przy użyciu szeregów Fouriera.
Krok 1: Określ odpowiedź idealną
Zdefiniuj H_ideal(f): dokładną odpowiedź częstotliwościową, którą chcesz. Dla filtru dolnoprzepustowego: H = 1 dla f < f_c, H = 0 dla f > f_c. Jest to funkcja skokowa w dziedzinie częstotliwości.
Krok 2: Oblicz współczynniki Fouriera
Rozwiń H_ideal(f) jako szereg Fouriera w zmiennej częstotliwości. Współczynniki c_k są wartościami idealnej odpowiedzi impulsowej filtra:
c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df
Dla filtru dolnoprzepustowego z częstotliwością odcięcia f_c: c_k = sin(2πf_c·k) / (πk) dla k ≠ 0, c_0 = 2f_c.
Ta odpowiedź impulsowa jest nieskończona — funkcja sinc rozciąga się w nieskończoność w czasie. Praktyczny filtr potrzebuje skończoną liczbę współczynników.
Krok 3: Obetnij do 2N+1 wyrazów
Zachowaj tylko współczynniki c_k dla |k| ≤ N. To prostokątne okno o 2N+1 wyrazach jest najprostszym obcięciem. Produkuje to zjawisko Gibbsa: ≈9% przekroczenia blisko częstotliwości odcięcia.
Krok 4: Zastosuj okno
Pomnóż obcięte współczynniki przez funkcję okna w_k aby zmniejszyć przekroczenie Gibbsa:
c̃_k = c_k · w_k
Współczynniki po zastosowaniu okna c̃_k definiują praktyczny filtr.
Obliczanie współczynników Fouriera
Wzór na współczynnik Fouriera c_k = sin(2πf_c·k) / (πk) dla filtru dolnoprzepustowego z częstotliwością odcięcia f_c daje odpowiedź impulsową.
Dla filtru pasmowoprzepustowego z dolnym odcięciem f_l i górnym odcięciem f_u współczynnik Fouriera dla odpowiedzi idealnej to: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).
Jak okna redukują przekroczenie Gibbsa
Funkcja okna w_k zmniejsza obciętą sekwencję współczynników od wartości centralnej do zera na brzegach. To zmniejszenie usuwa ostre krawędzie wprowadzone przez prostokątne obcięcie.
Dlaczego zmniejszanie działa
Przekroczenie Gibbsa powstaje, ponieważ transformata Fouriera okna prostokątnego (funkcja sinc) ma duże listki boczne. Te listki boczne dodają się razem blisko nieciągłości aby wytworzć ≈9% przekroczenia.
Gładkie okno ma transformatę Fouriera z mniejszymi liskami bocznymi. Pomnożenie współczynników przez okno splotuje idealną odpowiedź częstotliwościową z transformatą Fouriera okna. Mniejsze listki boczne → mniejsza oscylacja.
Typowe okna
Prostokątne (bez oknowania): listki boczne ≈ −13 dB, Gibbs ≈ 9%.
Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Listki boczne ≈ −31 dB.
Hamming: w_k = 0.54 + 0.46·cos(πk/N). Listki boczne ≈ −41 dB, pierwszy listek boczny ≈ −43 dB. Gibbs < 0.2%.
Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Regulowalne: α kontroluje poziom listka bocznego, umożliwiając projektowi kompromis między wysokością listka bocznego a szerokością pasma przejścia.
Kompromis okna
Każde okno narzuca kompromis: tłumienie lisków bocznych zawsze rozszerza listek główny.
Szerszy listek główny oznacza szersze pasmo przejścia — zakres częstotliwości między pasmem przepustowym a pasmem zatrzymanym.
Hamming sformalizował to w kategoriach parametrów projektowania Kaisera:
- δ: dopuszczalna oscylacja (tolerancja pionowa od ideału — jak bardzo odpowiedź może się odchylać od 0 lub 1)
- ΔF: szerokość przejścia (tolerancja pozioma — jak wąskie przejście od przepustowego do zatrzymanego)
Metoda Kaisera znajduje zarówno N (liczba współczynników) jak i α (parametr kształtu okna) tylko z δ i ΔF. Bez zgadywania typu okna.
Ze specyfikacji do współczynników
Metoda Kaisera bierze dwie specyfikacje — δ (tolerancja oscylacji) i ΔF (szerokość przejścia) — i produkuje zarówno N jak i współczynniki okna bez prób i błędów.
Sekwencja projektowania
1. Oblicz A = −20·log₁₀(δ) (tłumienie w dB)
2. Oblicz parametr kształtu α:
- Jeśli A > 50: α = 0.1102·(A − 8.7)
- Jeśli 21 ≤ A ≤ 50: α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)
- Jeśli A < 21: α = 0 (okno prostokątne)
3. Oblicz N = (A − 8) / (2.285 · 2πΔF)
4. Oblicz wagi okna Kaisera: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)
5. Pomnóż idealne współczynniki Fouriera przez wagi okna
6. Oszacuj wynikową funkcję transmisji i sprawdź oscylację względem δ. Jeśli oscylacja przekroczy δ (interferencja krawędzi), powtórz z mniejszą tolerancją.
Hamming zauważył: Kaiser doszedł do wykładnika 0.4 próbując 0.5 (zbyt duży) i stwierdzając, że 0.4 pasuje dobrze. Komputer służył jako eksperymentalny narzędzie do badań teoretycznych.
Zastosowanie metody Kaisera
Funkcja Bessela I₀(x) pojawia się we wzorze okna Kaisera. Oblicza się jako szybko zbiegający szereg:
I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²
Dla małego x szereg zbiegają się w kilka wyrazów z powodu m!² w mianowniku.