Rekursivt diskret filter

**Rekursivt diskret filter**, **rekursivt digitalt filter**, eller **IIR-filter**, er eit tids-diskret filter som gjer bruk av tidlegare utgangsverdiar. Mange rekursive filter gjer òg bruk av tidlegare inngangsverdiar, men treng ikkje gjera det.

## Tidsplanet
Generelt kan vi beskriva eit rekursivt filter med differanselikninga

:
y(n) = b_{0}u(n)+b_{1}u(n-1)+b_{2}u(n-2)+\ldots+b_{M}u(n-M)

:
              -a_{1}y(n-1)-a_{2}y(n-2)-a_{3}y(n-3)-\ldots-a_{N}y(n-N),

eller på meir kompakt form

:
 y(n) = \sum_{i=0}^{M}b_{i}u(n-i)-\sum_{i=1}^{N}a_{i}y(n-i).

 
Vi ser at summasjonen til venstre består av dei M+1 delprodukta b_{i}u(n-i), i=0,1,2,\ldots,M, der b_{i} er M+1 ikkje-rekursive filterkoeffisientar og u(n-i), i=1,2,\ldots,M er M tidligere inngansverdier, medan summasjonen til høgre består av dei N delprodukta a_{i}y(n-i), i=1,2,\ldots,N, der a_{i\mbox{ }}er N rekursive filterkoeffisientar og y(n-i) er N tidlegare utgansverdiar. Flytdiagrammet i fig. 1 inneheld same informasjon som diffanselikninga, men på visuell form. I praksis må dei tidlegere verdiane, u(n-i) og \ y(n-i), lagrast i skiftregistre, eller sirkulære bufferar i RAM. I staden for å subtrahera dei rekursive koeffisientane kan vi bytta forteikn på dei og addera. Talet på rekursive og ikkje-rekursive koeffisientar treng ikkje vera like, så generelt har vi at M\neq N.

På grunn av at N tidlegare utgangsverdiar er med på å bestemma utgangsverdien y(n) vil impulsresponsen dø ut sakte og gå asymptotisk mot null. Han er difor i prinsippet av uendeleg lengd, noko som har gjeve opphav til betaglesen IIR-filter, der akronymet IIR kjem frå engelsk «Infinite Impulse Response».

Filter som har berre rekursive koeffisientar blir ofte kalla AR-filter, der akronymet AR står for autoregressive, som er lånt frå regresjonsanalyse innan statistikk. Etter som eit filter med både rekursive og ikkje-rekursive koeffisientar er sett saman av eit AR- og eit MA-filter blir det kalla eit ARMA-filter. Medan eit MA-filter er ikkje-rekursive og har endeleg impulserespons, er både AR- og ARMA-filtere rekursive og har uendeleg lang impulsrespons.

## Transferfunksjon
Når differenselikninga er kjent kan ein finna transferfunksjonen ved å z-transformera differenselikninga ledd for ledd; ein forsinkelse med n sampelinterval i tidsplanet tilsvarar multiplikasjon med z^{-n} i z-planet:
:
Y(z) = b_{0}U(z)+b_{1}U(z)z^{-1}+b_{2}U(z)z^{-2}+\ldots+b_{M}U(z)z^{-M}

:
              -a_{1}Y(z)z^{-1}-a_{2}Y(z)z^{-2}-a_{3}Y(z)z^{-3}-\ldots-a_{N}Y(z)z^{-N}.

Vi samlar så alle ledd med Y(z) til venstre for likheitteiknet og alle ledd med U(z) til høgre:
:
Y(z)(1+a_{1}z^{-1}+a_{2}z^{-2}+a_{3}z^{-3}+\ldots+a_{N}z^{-N}) = U(z)(b_{0}+b_{1}z^{-1}+b_{2}z^{-2}+\ldots+b_{M}z^{-M})

Transferfunksjonen finn vi så ved å dividera med U(z) og polynomet A(z)=1+a_{1}z^{-1}+a_{2}z^{-2}+a_{3}z^{-3}+\ldots+a_{N}z^{-N} på begge sider:
:
 H(z) = \frac{Y(z)}{U(z)} = \frac{B(z)}{A(z)} = \frac{b_0+b_1z^{-1}+b_2z^{-2}++b_3z^{-3}+\cdots + b_Mz^{-M}}{1+a_1z^{-1}+a_2z^{-2}+a_3z^{-3}+ \cdots +a_Nz^{-N}} = \frac{\sum_{i=0}^M b_iz^{-i}}{1 + \sum_{j=1}^N a_jz^{-j}}.

Vi har no ein rasjonal transferfunksjon, med polynomet B(z)=b_0+b_1z^{-1}+\cdots + b_Mz^{-M} i tellaren og polynomet A(z) i nemnaren. Desse blir kalla tellarpolynomet respektivt nemnarpolymomet. 
 
Om det er eit AR-filter er tellarpolymomet B(z)=1  og transferfunkasjonen får forma 
:
 H(z) = \frac{1}{A(z)} = \frac{1}{1+a_1z^{-1}+a_2z^{-2}+a_3z^{-3}+ \cdots +a_Nz^{-N}} = \frac{1}{1 + \sum_{j=1}^N a_jz^{-j}}.

 
Begge filtera er rekursive, så impulsresponsen er uendeleg lang.

## Strukturar for realisering av rekursive filtere
Rekursive filtere kan realiserast med fleire forskjellige strukturar. Om ein ser bort frå aritmetisk ardundingsfeil har alle strukturane same transferfunksjon, og difor same frekvensresponse. Men ulike strukturar har ulik følsamheit for avrundingsfeil og ulik tal på tilstandsvariablar.

### Direkte form-strukturar

Transferfunksjonen til eit ARMA-filter kan faktorerast og skrivast som
:
H(z) = \left( \frac{1}{A(z)}\right) B(z) = \left( \frac{1}{1-\sum_{j=1}^{N}a_{j}z^{-j}}\right) \left( \sum_{i=0}^{M}b_{i}z^{-i}\right).  

Inngangssekvensen u(n) blir fyrst filtrert av eit MA-filter, med transferfunksjon B(z) og deretter av eit AR-filter med transferfunksjon A(z), som vist i fig. 2. Men vi kan like godt bytta om på rekkjefylgja av MA- og AR-filtera, som illustrert i Fig. 3, og skriva transferfunksjon som 
:
H(z) = B(z)\left( \frac{1}{A(z)}\right) 
       = \left(\sum_{i=0}^{M}b_{i}z^{-i}\right) \left( \frac{1}{1-\sum_{j=1}^{N}a_{j}z^{-j}}\right).  

Medan strukturen i Fig. 2 har M+N registere, har strukturen i Fig. 3 berre \max(M,N) registere, som er det mindste talet på registre som er muleg. Ein struktur som har det mindste talet på registre som er muleg blir kalla «kanonisk». Strukturane i fig. 2 og 3 vert kalla «direkte form I» respektivt «direkte form II». Dei kreve begge like mange multiplikasjonar og addisjonar.

Filter realiserte som direkte-form I og II krev at alle rekursive og alle ikkje-rekursive delprodukta i differenselikninga blir summerte kvar for seg, for deretter å bli adderte. Dette medfører at det er naudsynt med eit stort dynamikkområde (dvs. at filteret må realiserast med stor ordlengd). For å få betre innsikt i denne problematikken er det nyttig å merkja seg at ein finn polane og nullpunkta ved å faktorisera tellar- respektivt nevnar-polynoma. Faktorisering av polynom med høg orden er ein numerisk ustabil operasjon (polynom med orden som ikkje er større enn 20 kan i nokre tilfelle vera problematiske). Ei lita endring i ein (eller flere) koeffisient(ar) kan føra til ee stor endring av røterne til polynomet.

Kravet til stort dynamikkområde aukar med orden på filteret og er dessutan avhengig av plasseringa av polane og nullpunkta i z-planet. Frå geometrisk analyse av frekvensrsponsen er det kjend at polar og nullpunkt som ligg nært inntil eningssirkelen har større innflytelse på frekvensresponsen enn polar og nullpunkt som ligg langt frå
eningssirkelen. Dette betyr i praksis at filtere som har polar eller nullpunkt som ligg helt inntil eningssirkelen ikkje bør realiserast som ein direkte form-struktur. I verste fall kan polar med liten avstand fra eningssirkelen hamne utanfor eningssirkelen på grunn av avrundingfeil i koeffisientene og dei aritmetiske einingane, slik at filteret blir ustabilt. Realisering på direkte form bør dirfor ikkje brukast i praksis (med unnatak av i helt spesielle tilfelle), spesielt ikkje når filteret blir realisert ved hjelp av fastkommaaritmetikk. Kaskade og parallell form-strukturar har begge mykje betre eigenskaper enn direkte form-strukturane, og bør nyttast.

### Kaskadestruktur

Ved å faktorisera tellar- og nemnarpolynoma B(z) respektivt A(z) 
kan den rasjonale transferfunksjonen skrivast som eit produkt av andre ordens rasjonale transferfunksjonar. Denne faktoriseringa blir utført med dobbelpresisjonsaritmetikk før koeffisientane blir lasta inn i filteret. På grunn av den store ordlengda fører denne operasjonen vanligvis ikkie til numeriske problem. Transferfunksjonen kan då skrivast 
:
H(z) = K\prod_{i=1}^{P}\frac{B_{i}(z)}{A_{i}(z)}
       = K\prod_{i=1}^{P}\frac{b_{0,i}+b_{1,i}z^{-1}+b_{2,i}z^{-2}}{1-a_{1,i}z^{-1}-a_{2,i}z^{-2}},
 
der K er ein skaleringskonstant, P=\lceil\max(M,N)/2\rceil og \lceil x\rceil er takfunksjonen, som gir det minste heltallet større eller lik x.  H(z)  kan no implementerast som P 2. ordens seksjonar i kaskade, som vist i fig. 4.

For å gjera det så enkelt som mogleg kan vi gå ut i frå at talet på reelle nullpunkt/polar er grupperte to og to samen, slik at kvar 2. ordens seksjonen enten har eit par konjugerte nullpunkt og eit par konjugerte polar, eller to reelle nullpunkt og/eller to reelle polar. Om max(M,N) er eit oddetal vil ein av seksjonane vera eit 1. ordens filter.

Kvar enkelt 2. ordens seksjon  
:
 H_{i}(z) = \frac{b_{0,i}+b_{1,i}z^{-1}+b_{2,i}z^{-2}}{1-a_{1,i}z^{-1}-a_{2,i}z^{-2}}, 

kan no implementerast som ein av fylgjande strukturar:
* Direkte form I (fig. 5)
* Transpose direkte form I (fig. 6)
* Direkte form II (fig. 7)
* Transpose direkte form II (fig. 8).

Direkte form II og transponset direkte form II har berre to tilstandsvariablar, medan direkte form I og transponert direkte form I har fire tilstandsvariablar.

Rekursive filtere implementert med 2. ordens seksjonar på kaskadeform har mykje mindre følsamheit for kvantisering av koeffisientane enn ein generisk direkte form stryktur. Grunnen til dette er at polane og nullpunkta til kvar 2. ordens seksjon kjem fram ved faktorisering av 2. ordens polynom.

## Filterkonstruksjon
Det er utvikla mange forskjellige metodar for konstruksjon av rekursive filter, dvs. for å finna filterkoeffisientane. Ein vanlig fremgangsmåte er å konvertere et tids-kontinuerlig filter til diskret form. Dei mest kjende metodane for dette formålet er impuls-invariant metoden og den såkallte bilineære z-transformmetoden. Grunnen til at det er interessant å ta utgangspunkt i tids-kontinuerlige filtere (analoge filter) er at desse har vore studert over eit svært langt tidsrom og det eksisterer analytiske (lukka form) metodar for å konstruera analoge filter. Men det finnes òg mange numeriske optimaliseringsmetodar for å konstruera tids-diskrete rekursive filter direkte.

## Referansar

## Sjå òg
* Digitalt filter (generelt om diskrete filter)
* FIR-filter (ikkje-rekursivt diskret filter)