# Finite impulse response

Finite impulse response (FIR) is een term die aangeeft dat de impulsresponsie van een (digitaal) filter eindig is. Een FIR-filter is een computerprogramma dat een filterfunctie uitvoert. Bij het aanleggen van een puls op een FIR-filter zal het uitgangssignaal na een bepaalde tijd gelijk aan nul worden; de impulsresponsie is dus eindig. Dit in tegenstelling tot de impulsresponsie van een IIR-filter (infinite impulse response), waar het uitgangssignaal oneindig lang ongelijk aan nul kan blijven.

## Wiskundig

Een signaal $x_{i}$ kan vervormd worden door de voorgaande signaalwaarden te vermenigvuldigen met een aantal reële coëfficiënten waarna de resultaten worden opgeteld. Wiskundig schrijft men voor het uitgangssignaal:
* $y\left(n\right)=\sum _{i=0}^{P}c_{i}x(n-i)$

## Voorbeeld

Een FIR-filter gebruikt de volgende waarden om de respectievelijke monsters mee te vermenigvuldigen: {1/10, 2/10, 3/10, 4/10}. Dit zijn de filtercoëfficiënten. Dit filter implementeert dus de volgende (discrete) differentievergelijking:
* $y(n)={{{{4} \over {10}}x_{n}}+{{{3} \over {10}}x_{(n-1)}}+{{{2} \over {10}}x_{(n-2)}}+{{{1} \over {10}}x_{(n-3)}}}$
Deze differentievergelijking geeft dus een systeem dat een gewogen gemiddelde bepaalt van het signaal x. Hierbij telt de laatste waarde van x voor vier tiende mee. De een-na-laatste waarde van x voor drie tiende, de twee-na-laatste waarde van x voor twee tiende, de drie-na-laatste voor één tiende en de rest telt niet meer mee. Zo'n soort filter zou men kunnen gebruiken om een economische curve af te vlakken, zodanig dat de laatste deel van een trend het meest bepalend is.
De impulsresponsie van een FIR-filter is gelijk aan zijn filtercoëfficiënten.
De Z-transformatie van y(n), die gebruikt kan worden om de frequentieresponsie te bepalen, is in dit geval gelijk aan:
* $H(z)={{{4} \over {10}}+{{{3} \over {10}}z^{-1}}+{{{2} \over {10}}z^{-2}}+{{{1} \over {10}}z^{-3}}}$
De frequentieresponsie verkrijgen we door $z$ te substitueren met $e^{j\theta }$:
* $H(e^{j\theta })={{{4} \over {10}}+{{{3} \over {10}}e^{-j\theta }}+{{{2} \over {10}}e^{-j2\theta }}+{{{1} \over {10}}e^{-j3\theta }}}$
waarbij $0\leq \theta \leq \pi$
Uit de bovenstaande frequentieresponsie is te zien dat het filter een laagdoorlaatfilter is: het filter dempt de hoge frequenties en laat lage frequenties door.

## Eigenschappen

Een FIR-filter kan, in tegenstelling tot IIR-filters, een lineair faseresponsie hebben. Een lineaire faseresponsie is wenselijk wanneer een filter geen dispersie van het signaal mag veroorzaken.
FIR-filters zijn, over het algemeen, minder efficiënt dan IIR-filters; ze vereisen meer rekenkracht voor een bepaalde hoeveelheid filtering. Daarentegen zijn FIR-filters altijd stabiel en gemakkelijk te implementeren. Bovendien zijn de filtercoëfficiënten eenvoudig te bepalen. L-band filters hebben een aantal filtercoëfficiënten die 0 zijn hetgeen het aantal benodigde rekenoperaties kan verkleinen. Het bekendste voorbeeld hiervan is het halfbandfilter waarvan L=2.

## Gebruik

FIR-filters komt men zeer vaak tegen in de digitale elektronica:
* om signalen te analyseren en in de digitale beeldbewerking
* om ruis uit een afbeelding te filteren
* om ongewenste frequenties uit geluid te filteren
Toepassingen van een eendimensionaal FIR-filter zijn onder andere:
* een gewogen gemiddelde berekening.
* een LPF (low pass-filter of laagdoorlaat-filter) zie digitale filters.
* een matched filter.
* een kamfilter.
Toepassingen van tweedimensionale FIR-filters:
* "Salt and pepper ruis" verwijderen uit een afbeelding
* Beeld vervagen