FIR Filter Basics

mei 23, 2021
admin

1.1 Wat zijn “FIR filters?”

FIR filters zijn een van de twee primaire typen digitale filters die worden gebruikt in Digital Signal Processing (DSP) toepassingen, het andere type is IIR.

1.2 Wat betekent “FIR”?

“FIR” betekent “Finite Impulse Response”. Als u een impuls invoert, d.w.z. een enkel “1”-monster gevolgd door vele “0”-monsters, komen er nullen uit nadat het “1”-monster zijn weg door de vertragingslijn van het filter heeft afgelegd.

1.3 Waarom is de impulsrespons “eindig?”

In het gewone geval is de impulsrespons eindig omdat er geen terugkoppeling in de FIR aanwezig is. Een gebrek aan terugkoppeling garandeert dat de impulsrespons eindig zal zijn. Daarom is de term “eindige impulsresponsie” bijna synoniem met “geen terugkoppeling”.

Wanneer echter terugkoppeling wordt toegepast en de impulsresponsie toch eindig is, is het filter nog steeds een FIR. Een voorbeeld is het voortschrijdend gemiddelde filter, waarin het N-de voorafgaande monster wordt afgetrokken (teruggekoppeld) telkens wanneer een nieuw monster binnenkomt. Dit filter heeft een eindige impulsresponsie, ook al maakt het gebruik van terugkoppeling: na N monsters van een impuls zal de output altijd nul zijn.

1.4 Hoe spreek ik “FIR” uit?”

Sommige mensen zeggen de letters F-I-R; andere mensen spreken het uit alsof het een soort boom is. Wij geven de voorkeur aan de boom. (Het verschil is of je het hebt over een F-I-R-filter of een FIR-filter.)

1.5 Wat is het alternatief voor FIR-filters?

DSP-filters kunnen ook “Infinite Impulse Response” (IIR) zijn. (Zie dspGuru’s IIR FAQ.) IIR-filters maken gebruik van terugkoppeling, dus als je een impuls invoert, rinkelt de output theoretisch oneindig.

1.6 Hoe verhouden FIR-filters zich tot IIR-filters?

Elk filter heeft voor- en nadelen. Over het geheel genomen zijn de voordelen van FIR-filters echter groter dan de nadelen, zodat ze veel meer worden gebruikt dan IIR-filters.

1.6.1 Wat zijn de voordelen van FIR-filters (vergeleken met IIR-filters)?

Vergeleken met IIR-filters bieden FIR-filters de volgende voordelen:

  • Ze kunnen gemakkelijk worden ontworpen om “lineaire fase” te zijn (en meestal zijn ze dat ook). Eenvoudig gezegd, lineaire-fase filters vertragen het ingangssignaal, maar vervormen de fase ervan niet.
  • Ze zijn eenvoudig te implementeren. Op de meeste DSP-microprocessoren kan de FIR-berekening worden uitgevoerd door het loopen van een enkele instructie.
  • Ze zijn geschikt voor multi-rate toepassingen. Met multi-rate bedoelen we ofwel “decimeren” (verlagen van de bemonsteringsfrequentie), “interpoleren” (verhogen van de bemonsteringsfrequentie), of beide. Of het nu gaat om decimeren of interpoleren, het gebruik van FIR-filters maakt het mogelijk een deel van de berekeningen weg te laten, hetgeen een belangrijke rekenefficiëntie oplevert. Als daarentegen IIR-filters worden gebruikt, moet elke uitgang afzonderlijk worden berekend, zelfs als die uitgang wordt weggegooid (zodat de terugkoppeling in het filter wordt verwerkt).
  • Ze hebben wenselijke numerieke eigenschappen. In de praktijk moeten alle DSP-filters worden geïmplementeerd met behulp van eindige-precisie rekenkunde, dat wil zeggen, een beperkt aantal bits. Het gebruik van eindige-precisie rekenkunde in IIR-filters kan aanzienlijke problemen veroorzaken als gevolg van het gebruik van terugkoppeling, maar FIR-filters zonder terugkoppeling kunnen meestal worden geïmplementeerd met behulp van minder bits, en de ontwerper heeft minder praktische problemen op te lossen in verband met niet-ideale rekenkunde.
  • Ze kunnen worden geïmplementeerd met behulp van fractionele rekenkunde. In tegenstelling tot IIR-filters is het altijd mogelijk een FIR-filter te implementeren met coëfficiënten met een magnitude van minder dan 1,0. (De totale versterking van het FIR-filter kan desgewenst aan de uitgang worden aangepast). Dit is een belangrijke overweging bij het gebruik van fixed-point DSP’s, omdat het de implementatie veel eenvoudiger maakt.

1.6.2 Wat zijn de nadelen van FIR-filters (vergeleken met IIR-filters)?

Vergeleken met IIR-filters hebben FIR-filters soms het nadeel dat ze meer geheugen en/of rekenwerk vergen om een bepaalde filterresponsiekarakteristiek te bereiken. Ook zijn bepaalde responsen niet praktisch te implementeren met FIR-filters.

1.7 Welke termen worden gebruikt bij het beschrijven van FIR-filters?

  • Impulsrespons – De “impulsrespons” van een FIR-filter is eigenlijk gewoon de verzameling FIR-coëfficiënten. (Als je een “impuls” in een FIR filter stopt die bestaat uit een “1” sample gevolgd door vele “0” samples, zal de output van het filter de set coëfficiënten zijn, aangezien het 1 sample beurtelings langs elke coëfficiënt beweegt om de output te vormen.)
  • Tap – Een FIR “tap” is simpelweg een coëfficiënt/vertragingspaar. Het aantal FIR tapes, (vaak aangeduid als “N”) is een indicatie voor 1) de hoeveelheid geheugen die nodig is om het filter te implementeren, 2) het aantal berekeningen dat nodig is, en 3) de hoeveelheid “filtering” die het filter kan doen; in feite betekent meer tapes meer stopband verzwakking, minder rimpeling, smallere filters, enz.
  • Multiply-Accumulate (MAC) – In een FIR context is een “MAC” de bewerking van het vermenigvuldigen van een coëfficiënt met het overeenkomstige vertraagde datamonster en het accumuleren van het resultaat. FIRs vereisen gewoonlijk één MAC per aftakking. De meeste DSP-microprocessoren implementeren de MAC-operatie in een enkele instructiecyclus.
  • Overgangsband – De band van frequenties tussen passband- en stopbandranden. Hoe smaller de overgangsband, hoe meer aftakkingen er nodig zijn om het filter te implementeren. (Een “smalle” overgangsband resulteert in een “scherp” filter.)
  • Delay Line – De verzameling geheugenelementen die de “Z^-1” vertragingselementen van de FIR-berekening implementeren.
  • Circular Buffer – Een speciale buffer die “circulair” is omdat incrementeren aan het eind ervoor zorgt dat hij naar het begin wordt omgewikkeld, of omdat decrementeren vanaf het begin ervoor zorgt dat hij naar het eind wordt omgewikkeld. Circulaire buffers worden vaak geleverd door DSP microprocessoren om de “beweging” van de samples door de FIR vertragingslijn te implementeren zonder dat de data letterlijk in het geheugen verplaatst hoeft te worden. Wanneer een nieuw sample aan de buffer wordt toegevoegd, vervangt het automatisch het oudste.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.