Finite impulse response

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

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[bewerken]

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} y_i x_{(n-i)}

Voorbeeld[bewerken]

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 4/10e mee. De voorlaatste waarde van x voor 3/10de, de derdelaatste waarde van x voor 2/10de, de vierdelaatste voor 1/10e 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), welke 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

Fir filter overdacht.png

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[bewerken]

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 meest bekende voorbeeld hiervan is de halfband filter waarvan L=2.

Gebruik[bewerken]

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:

Toepassingen van tweedimensionale FIR-filters:

  • "Salt and pepper ruis" verwijderen uit een afbeelding
  • Beeld vervagen

Zie ook[bewerken]