FIR-filter

Eit FIR-filter innanføre signalhandsaming (frå engelsk; Finite Impulse Response filter) er eit digitalt filter med ein endeleg impulsrespons. Desse filtera står i kontrast til IIR-filter, som har uendeleg lang impulsrespons.

Tidsplanet 
Eit FIR-filter kan uttrykkast med differanselikninga

der  er koeffisientvektoren,  er inngangssekvensen,  er utgangsekvensen,  er talet på koeffisientar og  er ein sampelindeks. Eit FIR-filter er med andre ord foldninga mellom koeffisientvektoren  og inngangssekvensen . Koeffisientvektoren er av lengd , medan inn- og utgangssekvensane kan ha vilkårleg lengd; i eit sanntidssystem er ikkje lengda avgrensa. FIR filter vil alltid vere stabile ettersom dei ikkje nyttar tilbakekopling.
 
Filteret genererer ein ny utgangsverdi  ein gong per sampelinterval. Den artimetiske kompleksiteten er difor  multiplikasjonar og  addisjonar per sampel. Ein multiplikasjon pluss addison blir ofte kalla ein MAC-operasjon, som står for multiplikasjon-akkumulasjon.

Eit FIR-filter kan òg uttrykkjast som foldninga mellom koeffisientvektoren og inngangssekvensen:

der  er foldningsoperatoren.

Impulsresponsen til filteret er av lengd , der  er sampelintervalet og  er sampelfrekvensen. Mange FIR-filter har lineær faseresponse, men treng ikkje ha det. Om filteret har symmetrisk coeffisientvektor er faseresponsen lineær.

Transferfunksjon 
Når differenselikninga er kjent kan ein finna transferfunksjonen ved å z-transformera differenselikninga ledd for ledd; ein forsinkelse med  sampelinterval i tidsplanet tilsvarar multiplikasjon med  i -planet:
 
Vi faktiriserer ut :
 
og finn transferfunksjonen ved å dividera med  på begge sider av likheitsteiknet:
 
Transferfunksjon har  røter, som vert kalla nullpunk, av di  når  samsvarar med ei rot,

Strukturar for symmetrisk filtervektorar 

Når eit FIR-filter blir implementert som i fig. 1 er talet på 
multiplikasjonar  og talet på addisjonar/subtraksjonar er . FIR-filtere med lineær fase har enten symmetriske (Type I og Type II) eller asymmetriske (Type III og Type IV) koeffisientvektor. For filter med symmetrisk koeffisientvektor har vi at

og for usymmetrisk koeffisentvektor har vi at

Når  er eit oddetall kan vi dirfor skriva differanselikninga som

og når  er eit paretall som

Som vist i fig. 2 og 3 kan vi bretta skiftregisteret i Fig. 1, utføra addisjonane , , etc., før vi utfører multiplikasjonane. Dette er illustrert i fig. 2 og fig. 3 for  eit partal respektivt eit oddetall. Talet på multiplikasjonar kan dermed reduserast til , eller , medan talet på addisjonar blir  som før. Typiske døme på FIR-filtere med symmetrisk impulsrespons er LP-, HP-, BP- og BS-filter. Filtere med asymmetrisk impulsrespons (Type III og Type IV) kan òg implementerast med strukturane vist i fig. 2 og 3; addisjonane må da byttast ut med subtraksjonar. Filtere som ikkje har nokon symmetri derimot, må implementerast med strukturen vist i fig. 1 og krev  multiplikasjonar.

Når eit FIR-filter med lineær fase skal implementerast med ein digital signalprosessor (DSP) vil vi ikkje kunne dra fordel av å bruka strukturane i fig. 2 og 3, ettersom ein DSP kan utføra både ein multiplikasjon og ein addisjon/subtraksjon per instruksjonsperiode. Det same er tilfellet med mikroprosessorar i moderne PCar. Men om filteret blir implementert i form av ein ASIC, FPGA eller ein mikrokontroller kan vi dra fordel av dei folda strukturane i fig. 2 og 3. I et sanntids-system må alle multiplikasjonane og addisjonane/subtraksjonane utførast ein gong per sampelinterval, så dei folda strukturane i fig. 2 og 3 kan utnyttast for å redusera klokkefrekvensen eller for å spara areal.

Design av FIR-filter 
Vanlege metodar for design av FIR-filter er

 Vindaugemetoden
 Frekvenssamplingsmetoden
 Vekta minstekvadratersdesign
 Parks-McClellan metoden

Vindaugemetoden 
Med denne metoden tek ein utgangspunkt i eit ideelt LP-filter, som har ein frekvensrespons som er heilt flat opp til knekkfrekvensen, og null for høgare frekvensar. Eit tek så den inverse Foruier-transformen, som resulterer i impulsresponsen, som for eit ideelt LP-filter er  ein sinc-funksjon. Koeffisientvektoren er ein sampla versjon av impulsresponsen. Etter som sinc-funksjonen har uendeleg stor utstrekning vil koeffisientvektoren ha uendeleg mange koeffisientar. For at det skal vera muleg å realisera filteret i maskinvare, eller programvare, lyt ein avgrensa talet på koeffisientar . 
 
Koeffiseintvektoren til eit ideelt FIR LP-filter er symmetrisk om midten, så halvparten av koeffisientane skal multipliserast med framtidige inngangsverdiar.Om ein har samla inn inngangsverdiane på førehand skapar ikkje dette problem, men for sanntidsrealiseringar har ein ikkje framtidig data. Ein løyser då dette problemet ved å samla opp  verdiar i ein buffer, ofte ein ringbuffer. Dette fører til at utgangssekvensen blir forsinka med  sampelinterval i høve til inngangssekvensen. Men alle frekvensane i passbandet blir forsinka med , som er det sama som at faseresponsen er lineær:

der  er frekvensen i rad/s og  er frekvensen i Hz.

Om ein kuttar koeffisientvektoren abrupt seien ein at ein nyttar ein rektangulært vindu. Dette fører til ripple i frekvensresponsen (Gibbs fenomen). Ein kan redusera dette problemet ved å multiplisera koeffisientventoren med ein glattefunksjon, òg kalla glattevindu, som vektar ned endane på koeffisientvektoren. Det finst mange slike glattevindu, men ein av dei vanlegaste i samband med FIR-filter er eit sokalla Hanning-vindu.

Parks-McClellan-metoden 
Denne algoritmen vert nytta til design av equirippel FIR-filter og lineær fase FIR-filter generelt. Algoritmen er ein iterativ prosedyre som er basert på eit vekta feilkriterie. Han finn dei optimale FIR filter koeffisientane i samhøve til minimiseringa av dette feilkriteriet. Parks-McClellan metoden er meir fleksibel enn til dømes vindusmetoden, og er ein mykje nytta metode for design av FIR-filter.

Referansar

Sjå òg 
 Digitalt filter (generelt om diskrete filter)
 IIR-filter (rekursivt diskret filter)

Signalhandsaming
Filterteori
Lineære system