English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

gäst
1 / ?

Från idealt svar till praktiskt filter

Hamming presenterade en fyrstegmetod för FIR-filterdesign med Fourier-serier.

Steg 1: Ange det ideala svaret

Definiera H_ideal(f): det exakta frekvenssvar du vill ha. För ett lågpassfilter: H = 1 för f < f_c, H = 0 för f > f_c. Detta är en stegfunktion i frekvensdomänen.

Steg 2: Beräkna Fourier-koefficienter

Expandera H_ideal(f) som en Fourier-serie i frekvensvariabeln. Koefficienterna c_k är filterets ideala impulssvarvärden:

c_k = ∫₀¹ H_ideal(f) · e^{i2πfk} df

För ett lågpassfilter med avskärning f_c: c_k = sin(2πf_c·k) / (πk) för k ≠ 0, c_0 = 2f_c.

Detta impulsvar är oändligt — sinc-funktionen sträcker sig för alltid i tid. Ett praktiskt filter behöver ett ändligt antal koefficienter.

Steg 3: Trunkera till 2N+1 termer

Behåll bara koefficienter c_k för |k| ≤ N. Detta rektangulära fönster på 2N+1 termer är den enklaste trunkering. Det producerar Gibbs-fenomenet: ≈9% överskridande nära avskärningen.

Steg 4: Använd ett fönster

Multiplicera de trunkerade koefficienterna med en fönsterfunktion w_k för att reducera Gibbs-överskridande:

c̃_k = c_k · w_k

De fönstrade koefficienterna c̃_k definierar det praktiska filtret.

Gibbs-fenomen & fönsterfunktioner

Beräkna Fourier-koefficienter

Fourier-koefficientformeln c_k = sin(2πf_c·k) / (πk) för ett lågpassfilter med avskärning f_c ger impulssvaret.

För ett bandpassfilter med lägre avskärning f_l och högre avskärning f_u är Fourier-koefficienten för det ideala svaret: c_k = [sin(2πf_u·k) − sin(2πf_l·k)] / (πk).

För ett lågpassfilter med avskärning f_c = 1/4, beräkna Fourier-koefficienterna c_k för k = 0, 1, 2 och −1. Använd c_0 = 2f_c och c_k = sin(2πf_c·k)/(πk) för k ≠ 0. Visa beräkningen för var och en. Förklara sedan varför koefficientsekvensen är symmetrisk: c_k = c_{−k}.

Hur fönster minskar Gibbs-överskridande

En fönsterfunktion w_k avsmalnar den trunkerade koefficientsekvensen från sitt centrala värde ned till noll vid kanterna. Avsmalnandet tar bort de skarpa kanterna som införs av rektangulär trunkering.

Varför avsmalnande fungerar

Gibbs-överskridande uppstår för att det rektangulära fönstrets Fourier-transform (sinc-funktionen) har stora sidolober. Dessa sidolober adderas tillsammans nära diskontinuiteten för att producera överskridandet på ≈9%.

Ett jämnt fönster har en Fourier-transform med mindre sidolober. Multiplicering av koefficienterna med fönstret konvolverar det ideala frekvenssvar med fönstrets Fourier-transform. Mindre sidolober → mindre rippling.

Vanliga fönster

Rektangulärt (inget fönster): sidolober ≈ −13 dB, Gibbs ≈ 9%.

Hann (von Hann): w_k = 0.5 + 0.5·cos(πk/N). Sidolober ≈ −31 dB.

Hamming: w_k = 0.54 + 0.46·cos(πk/N). Sidolober ≈ −41 dB, första sidelob ≈ −43 dB. Gibbs < 0.2%.

Kaiser: w_k = I₀(α·√(1−(k/N)²)) / I₀(α). Justerbar: α styr sidelob-nivån, vilket tillåter en design att göra avvägningar mellan sidelob-höjd vs övergångsbands-bredd.

Fönster-avvägningen

Varje fönster medför en avvägning: att undertrycka sidolober gör alltid huvudloben bredare.

En bredare huvudlob betyder ett bredare övergångsband — området med frekvenser mellan passband & stoppband.

Hamming formaliserade detta i termer av Kaisers designparametrar:

- δ: tillåten rippling (vertikal tolerans från ideal — hur mycket svaret kan avvika från 0 eller 1)

- ΔF: övergångsbreds (horisontell tolerans — hur smal övergången från pass till stopp)

Kaisers metod hittar både N (antal koefficienter) och α (fönstrets formparameter) från bara δ och ΔF. Ingen gissning av fönstertyp.

Ett filterkrav kräver: passband-rippling ≤ 0.01 (δ = 0.01) och övergångsband-bredd ΔF = 0.05 (normaliserad). Ett andra filter kräver: passband-rippling ≤ 0.001 (δ = 0.001) och samma ΔF = 0.05. Vilket filter kräver fler koefficienter N? Förklara relationen mellan rippling-tolerans δ och filterordning N i Fourier-seriedesign.

Från specifikationer till koefficienter

Kaisers metod tar två specifikationer — δ (rippling-tolerans) och ΔF (övergångsbreds) — och producerar både N och fönsterkoefficienterna utan försök och misstag.

Designsekvensen

1. Beräkna A = −20·log₁₀(δ) (dämpning i dB)

2. Beräkna formparametern α:

- Om A > 50: α = 0.1102·(A − 8.7)

- Om 21 ≤ A ≤ 50: α = 0.5842·(A − 21)^{0.4} + 0.07886·(A − 21)

- Om A < 21: α = 0 (rektangulärt fönster)

3. Beräkna N = (A − 8) / (2.285 · 2πΔF)

4. Beräkna Kaiser-fönstrets vikter: w_k = I₀(α·√(1−(k/N)²)) / I₀(α)

5. Multiplicera de ideala Fourier-koefficienterna med fönstrets vikter

6. Evaluera den resulterande överföringsfunktionen och kontrollera rippling mot δ. Om rippling överskrider δ (kantinterferens), upprepa med en mindre tolerans.

Hamming noterade: Kaiser nådde exponenten 0.4 genom att testa 0.5 (för stor) och hitta att 0.4 passade bra. Datorn tjänade som ett experimentellt verktyg för teoretisk forskning.

Tillämpa Kaisers metod

Bessel-funktionen I₀(x) förekommer i Kaisers fönsterformel. Den beräknas som en snabbt konvergerande serie:

I₀(x) = Σ_{m=0}^∞ [(x/2)^m / m!]²

För små x konvergerar serien på några termer på grund av m!² i nämnaren.

Ett lågpassfilter kräver δ = 0.01 (1% rippling) och ΔF = 0.1 (10% av samplingsfrekvensen som övergångsbreds). Med Kaisers formel: A = −20·log₁₀(0.01) = 40 dB. Eftersom 21 ≤ 40 ≤ 50, använd α = 0.5842·(A−21)^{0.4} + 0.07886·(A−21). Beräkna α. Använd sedan N = (A−8)/(2.285·2πΔF) för att beräkna antalet erforderliga filterkoefficienter. Avrunda N uppåt till närmaste heltal.