FIR- versus IIR-filters: structuur, stabiliteit, fase, filterorde en rekenwerk

Beide zijn digitale filters die de frequentierespons van een signaal vormen, maar ze verschillen in de vraag of eerdere uitgangswaarden in de berekening worden gebruikt. Een FIR-filter (finite impulse response) vermenigvuldigt alleen de huidige en eerdere ingangswaarden met coëfficiënten en telt ze op, dus zijn impulsrespons eindigt na evenveel samples als het taps heeft. Een IIR-filter (infinite impulse response) voert ook eerdere uitgangswaarden terug in de berekening, dus zijn impulsrespons gaat in theorie eeuwig door. Een FIR-filter is altijd stabiel en heeft een lineaire fase als zijn coëfficiënten symmetrisch zijn, maar een steile karakteristiek vergt veel taps. Een IIR-filter haalt een steile karakteristiek met een lage orde, maar zijn fase is niet lineair en het kan instabiel worden, afhankelijk van waar zijn polen liggen.

KenmerkFIR-filterIIR-filter
Differentievergelijking en impulsresponsy[n] = Σh[k]x[n − k]: een gewogen som van alleen ingangswaarden; de impulsrespons eindigt na N tapsy[n] = Σb[k]x[n − k] − Σa[k]y[n − k]: eerdere uitgangswaarden worden teruggekoppeld, en de impulsrespons dempt uit maar gaat door
Overdrachtsfunctie H(z) en stabiliteitGeen noemer; de enige polen liggen in z = 0, dus het filter is altijd stabiel, wat de coëfficiënten ook zijnHeeft een noemer; alleen stabiel als alle polen binnen de eenheidscirkel liggen
FaseresponsieLineaire fase als de coëfficiënten symmetrisch zijn; de groepsvertraging is (N − 1)/2 samples bij elke frequentieGeen lineaire fase; de groepsvertraging verandert met de frequentie en neemt toe bij de kantelfrequentie
Benodigde orde voor dezelfde specificatie (voorbeeld)Voor een laagdoorlaatfilter bij fs = 48 kHz met doorlaatbandgrens 4 kHz, sperbandgrens 5 kHz, 60 dB demping en 0,5 dB rimpel in de doorlaatband vergt een equiripple-ontwerp ongeveer 110 tapsEen elliptisch filter dat aan dezelfde specificatie voldoet, is van de 7e orde (4 secties van de tweede orde)
Rekenwerk per uitgangssampleEvenveel multiply-accumulates als taps: ongeveer 110 in het voorbeeld (symmetrie halveert ruwweg het aantal vermenigvuldigingen)Ongeveer 5 vermenigvuldigingen per sectie van de tweede orde: ongeveer 20 in het voorbeeld
VertragingConstant (N − 1)/2 samples: ongeveer 56 samples (ongeveer 1,2 ms) in het voorbeeldVarieert met de frequentie: in het voorbeeld ongeveer 9 samples bij lage frequenties en ongeveer 75 samples aan de grens van de doorlaatband
Kwantisatie van coëfficiënten (vaste komma)De frequentierespons verandert iets, maar de stabiliteit gaat nooit verlorenEen vergelijking van hoge orde rechtstreeks implementeren kan polen verschuiven en instabiliteit veroorzaken; het filter wordt geïmplementeerd als cascade van secties van de tweede orde (biquads)
Belangrijkste ontwerpmethodenVenstermethode, equiripple-methode (Parks-McClellan)Bilineaire transformatie van een analoog prototype (Butterworth, Chebyshev, elliptisch en andere)
Typische toepassingenCommunicatie en meettechniek waarbij de golfvorm behouden moet blijven, audio- en beeldbewerking, decimatie- en interpolatiefilters, adaptieve filtersEmbedded apparaten die rekenwerk en geheugen moeten sparen, audio-equalizers, verwijdering van DC en exponentiële afvlakking

De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.

Wanneer welke variant?

FIR-filter
Wanneer de golfvorm niet mag worden vervormd (pulsvorming in communicatie, meettechniek, audio- en beeldbewerking), voor decimatie- en interpolatiefilters, en voor adaptieve filters die stabiel moeten blijven terwijl hun coëfficiënten veranderen. Het vergt veel multiply-accumulates, maar DSP's en FPGA's kunnen die parallel verwerken.
IIR-filter
Wanneer rekenwerk, geheugen of vertraging klein moeten blijven. Bij toepassingen waar fasevervorming er niet toe doet, levert het met weinig rekenwerk steile karakteristieken, smalle notches en verwijdering van DC.

Veelgestelde vragen

Wat beschrijven de namen FIR en IIR?

De lengte van de impulsrespons, de uitgang bij een impuls (een signaal dat alleen bij n = 0 gelijk is aan 1). De respons van een FIR-filter (finite impulse response) keert na een eindige lengte terug naar 0, namelijk N bij N taps. De respons van een IIR-filter (infinite impulse response) gaat door vanwege de terugkoppeling: voor y[n] = 0,2x[n] + 0,8y[n − 1] is de impulsrespons 0,2 × 0,8ⁿ, die naar 0 nadert maar nooit eindigt.

Wat is het voordeel van een lineaire fase?

Alle frequentiecomponenten worden even lang vertraagd, dus de vorm van de golfvorm in de doorlaatband blijft behouden. Voor een FIR-filter met N taps en symmetrische coëfficiënten is de vertraging (N − 1)/2 samples bij elke frequentie: 50 samples bij 101 taps (ongeveer 1,04 ms bij 48 kHz). Een IIR-filter vertraagt verschillende frequenties verschillend, wat de vorm van pulsen en stappen vervormt.

Waarom kan een IIR-filter instabiel worden?

Omdat het de uitgang terugkoppelt: als een pool (een waarde van z waarbij de noemer van de overdrachtsfunctie 0 is) buiten de eenheidscirkel ligt, groeit de uitgang onbegrensd. Een filter van de eerste orde zoals y[n] = x[n] + 0,5y[n − 1] is stabiel omdat de terugkoppelcoëfficiënt in absolute waarde kleiner is dan 1, maar in een steil filter van hoge orde liggen de polen dicht bij de eenheidscirkel, en alleen al het afronden van de coëfficiënten kan er een naar buiten duwen. Daarom wordt het opgesplitst in secties van de tweede orde.

Is er een manier om de faseverschuiving van een IIR-filter weg te werken?

Als opgenomen data achteraf wordt verwerkt, heft hetzelfde filter eerst voorwaarts en dan achterwaarts toepassen de faseverschuiving op (nulfasefiltering). In realtime kan dat niet, omdat er toekomstige ingangswaarden voor nodig zijn; realtimesystemen corrigeren daarom de groepsvertraging met een allesdoorlaatfilter of kiezen een FIR-filter met lineaire fase.

Test uw begrip

Wat is een kenmerk van een FIR-filter (filter met eindige impulsrespons)?

  1. AHet heeft terugkoppeling van de uitgang naar de ingangskant, zodat met weinig coëfficiënten een steile karakteristiek wordt verkregen
  2. BDe impulsrespons loopt eindeloos door, zodat het gemakkelijk instabiel wordt als de coëfficiënten worden gekwantiseerd
  3. CHet heeft geen terugkoppeling en is dus altijd stabiel, en symmetrische coëfficiënten geven het een lineaire fase
Antwoord en toelichting tonen

Antwoord: C. Het heeft geen terugkoppeling en is dus altijd stabiel, en symmetrische coëfficiënten geven het een lineaire fase

Een FIR-filter vermenigvuldigt alleen de huidige en vroegere ingangswaarden met coëfficiënten en telt ze op; het heeft geen terugkoppeling van de uitgang. De impulsrespons houdt op na het aantal coëfficiënten (taps), en de polen liggen alleen bij z = 0, dus het filter is stabiel, welke waarden de coëfficiënten ook hebben. Met symmetrische coëfficiënten heeft het een lineaire fase, waarbij elke frequentiecomponent even lang wordt vertraagd en de vorm van de golfvorm behouden blijft. Daar staat tegenover dat een steile karakteristiek meer taps vergt dan bij een IIR-filter.

Welk van de volgende FIR-filters met 5 taps heeft een lineaire fase?

  1. Ah = {1, 2, 3, 2, 1}
  2. Bh = {1, 2, 3, 4, 5}
  3. Ch = {5, 4, 3, 2, 1}
Antwoord en toelichting tonen

Antwoord: A. h = {1, 2, 3, 2, 1}

Als de coëfficiënten van een FIR-filter symmetrisch zijn rond het midden (h[n] = h[N − 1 − n]), is de fase een rechte lijn die evenredig is met de frequentie, en wordt elke frequentiecomponent met dezelfde (N − 1)/2 samples vertraagd. {1, 2, 3, 2, 1} is symmetrisch rond de middelste 3, dus het is een filter met lineaire fase en een constante vertraging van 2 samples. {1, 2, 3, 4, 5} en {5, 4, 3, 2, 1} zijn symmetrisch noch antisymmetrisch, dus hun vertraging hangt af van de frequentie.

Wat is de groepsvertraging van een FIR-filter met lineaire fase en 101 taps (met symmetrische coëfficiënten)?

  1. A50 samples
  2. B50,5 samples
  3. C101 samples
Antwoord en toelichting tonen

Antwoord: A. 50 samples

De groepsvertraging van een FIR-filter met N taps en symmetrische coëfficiënten is bij elke frequentie (N − 1)/2 samples. Voor N = 101 is dat (101 − 1)/2 = 50 samples, de positie van de middelste coëfficiënt (de 51e coëfficiënt, h[50]). Bij een bemonsteringsfrequentie van 48 kHz is dat een vertraging van 50 ÷ 48.000 ≈ 1,04 ms, en bij realtimeverwerking moet men er rekening mee houden dat meer taps meer vertraging betekenen.

  1. Welke combinatie van de versterkingen bij DC en bij de nyquistfrequentie is juist voor het eerste-orde-IIR-laagdoorlaatfilter dat wordt gegeven door de exponentiële afvlakking y[n] = 0,2x[n] + 0,8y[n − 1]?
  2. Welke beschrijving van de bilineaire transformatie, die wordt gebruikt om een digitaal filter te ontwerpen uit de overdrachtsfunctie H(s) van een analoog filter, is juist?
  3. Welke voorzorg is juist bij het implementeren van een IIR-filter van hoge orde in vaste komma met coëfficiënten van beperkte bitbreedte?

Oefenvragen over Basis van digitale signaalverwerking

Belangrijke termen uitgelegd

FIR-filter
Digitaal filter waarvan de impulsrespons na een eindige lengte ophoudt (filter met eindige impulsrespons). Het berekent y[n] = Σh[k]x[n − k] door de huidige en N vroegere ingangswaarden met coëfficiënten te vermenigvuldigen en op te tellen, en heeft geen terugkoppeling van de uitgang. De polen liggen alleen bij z = 0, dus het filter is altijd stabiel, welke coëfficiënten het ook heeft, en symmetrische coëfficiënten geven een lineaire fase, waarbij elke frequentiecomponent met (N − 1)/2 samples wordt vertraagd. Daar staat tegenover dat een steile karakteristiek veel taps vergt, en dat elke uitgangssample evenveel multiply-accumulate-bewerkingen kost als er taps zijn.
IIR-filter
Digitaal filter dat vroegere uitgangswaarden terugkoppelt naar de ingangskant en waarvan de impulsrespons eindeloos doorloopt (filter met oneindige impulsrespons). Het wordt berekend met een differentievergelijking zoals y[n] = 0,2x[n] + 0,8y[n − 1] (exponentiële afvlakking), en de overdrachtsfunctie heeft een noemer. Het bereikt een steile karakteristiek met weinig coëfficiënten, weinig rekenwerk en een kleine vertraging, maar de fase is niet lineair. Het wordt instabiel als niet alle polen binnen de eenheidscirkel liggen, en filters van hoge orde zijn gevoelig voor kwantisatie van de coëfficiënten, dus ze worden vaak geïmplementeerd als een cascade van secties van de tweede orde (biquads). Een gangbare methode is het ontwerp uit een analoog filter met de bilineaire transformatie.
Lineaire fase
Eigenschap van een filter waarvan de fasekarakteristiek een rechte lijn is die evenredig is met de frequentie. Elke frequentiecomponent wordt dan even lang vertraagd (de groepsvertraging is constant), zodat de golfvorm zijn vorm behoudt. Een FIR-filter heeft precies een lineaire fase als de coëfficiënten symmetrisch (of antisymmetrisch) zijn rond het midden, met een vertraging van (N − 1)/2 samples bij N taps. Een stabiel, causaal IIR-filter kan geen exact lineaire fase bereiken, dus FIR-filters worden veel gebruikt waar golfvormen behouden moeten blijven, zoals bij audio, communicatieontvangers en metingen.
Groepsvertraging (group delay)
Grootheid die beschrijft hoeveel elke frequentiecomponent van een signaal dat door een filter gaat, wordt vertraagd, gedefinieerd als de negatieve afgeleide van de fasekarakteristiek φ(ω) naar de frequentie (−dφ/dω). Als de groepsvertraging bij alle frequenties gelijk is, wordt de hele golfvorm alleen vertraagd en blijft de vorm behouden. Een FIR-filter met N taps en symmetrische coëfficiënten heeft een constante groepsvertraging van (N − 1)/2 samples. Bij IIR-filters en analoge filters varieert de groepsvertraging met de frequentie en is ze vaak het grootst bij de afsnijfrequentie, waardoor pulsvormen vervormen. Besselfilters zijn ontworpen voor een vlakke groepsvertraging.
Impulsrespons
De uitgang h[n] van een systeem wanneer de eenheidsimpuls δ[n] (alleen 1 bij n = 0 en elders 0) wordt aangeboden. Bij een lineair tijdinvariant (LTI) systeem is de uitgang bij een willekeurige ingang de convolutie van de ingang met h[n], y[n] = Σx[k]h[n − k], dus h[n] beschrijft het systeem volledig. Een filter waarvan h[n] na een eindige lengte ophoudt, is een FIR-filter, en een filter waarvan h[n] eindeloos doorloopt, is een IIR-filter. BIBO-stabiliteit vereist dat Σ|h[n]| eindig is, en de z-transformatie van h[n] is de overdrachtsfunctie H(z).
Differentievergelijking
Vergelijking die de uitgang van een discrete-tijdsysteem uitdrukt als een gewogen som van de huidige en vroegere ingangswaarden en vroegere uitgangswaarden. Zo telt y[n] = x[n] + 0,5y[n − 1] de helft van de vorige uitgangswaarde op bij de huidige ingangswaarde. Een vergelijking zonder vroegere uitgangswaarden in het rechterlid hoort bij een FIR-filter, en een vergelijking met vroegere uitgangswaarden (met terugkoppeling) hoort gewoonlijk bij een IIR-filter, waarvan de impulsrespons eindeloos doorloopt. Met beginwaarden kan ze stap voor stap worden berekend en rechtstreeks in software of hardware worden geïmplementeerd. De z-transformatie van beide leden geeft de overdrachtsfunctie H(z).
Z-transformatie
Methode die een discrete-tijdsignaal x[n] omzet in een functie van het complexe getal z, X(z) = Σx[n]z^(−n). Een vertraging van één sample komt overeen met vermenigvuldigen met z⁻¹, zodat een differentievergelijking kan worden behandeld als een breuk van polynomen in z (de overdrachtsfunctie H(z)). Waarden van z waarvoor de noemer van H(z) nul wordt, heten polen, en waarden waarvoor de teller nul wordt, nulpunten; een causaal systeem is stabiel als alle polen binnen de eenheidscirkel liggen. Evalueren op de eenheidscirkel met z = e^(jω) geeft de frequentierespons. Het is de tegenhanger in discrete tijd van de laplacetransformatie.
Moving-averagefilter
Het eenvoudigste laagdoorlaatfilter, dat het gemiddelde van de laatste N samples als uitgang geeft. Het is y[n] = (x[n] + x[n − 1] + … + x[n − N + 1])/N, een FIR-filter waarvan alle coëfficiënten 1/N zijn. De DC-versterking is 1 en de versterking is 0 bij gehele veelvouden van fs/N, dus middelen over een interval dat precies samenvalt met de netperiode verwijdert bijvoorbeeld ruis op de netfrequentie en de harmonischen daarvan. De coëfficiënten zijn symmetrisch, dus het filter heeft een lineaire fase met een vertraging van (N − 1)/2 samples. Door de som bij te werken met de nieuwste sample erbij en de oudste eraf, kan het filter ongeacht N met weinig bewerkingen worden berekend.

Verwante vergelijkingen