Digitalt filter

**Digitalt filter**, **diskret filter** eller **diskret system**, syner til eit filter som prosesserer tids-diskrete sekvensar, som ofte er sampla signal. Omgrepa filter og system er begge vanlege og er nytta om kvarandre i denne artikkelen.

Eit diskret filter kan generelt beskrivast med eit visst tal tilstandsvariablar og tilhøyrande koeffisientar, i form av ei differanselikning. Tilstanden til systemet (tilstandsvariablane) kan berre endrast ved tidspunkta t=nT, der T er sampelintervalet og n er ein sampelindeks; systemet blir med andre ord oppdatert éin gong per sampleinterval.
## Ikkje-rekursive diskrete system

Fylgjande differanselikning er eit døme på eit diskret system med to tilstandsvariablar:

:
 y(n) = b_{0}u(n)+b_{1}u(n-1).

Vi ser at utganssekvensen y(n) er gitt som ein vekta sum av siste inngangsverdi u(n) og førre inngangsverdi u(n-1). Verdiane u(n) og u(n-1) er vekta med koeffisientene b_{0} respektivt b_{1}. Dette systemet har berre ein tilstandsvariabel: u(n-1).
 
For å få betre innsikt i systemet kan det vera nyttig å skissera eit sokalla flytdiagram. Flytdiagrammet til systemet inneheld same informasjon som differenselikninga, men på visual form. Rektanglet merka T indikerer forsenking med eit sampelinterval; vi ser at før forsinkelsen har vi verdien u(n), medan vi etter forsinkelsen har verdien u(n-1). I eit sanntidssystem flyt sekvensen \{u(n)\}=\{u(0),u(1),u(2),\ldots\} gjennom systemet med ein fast rate. Tilstandsvariablane til systemet blir oppdaterte ein gong per sampelinterval; for systemet i dømet er det dirfor naudsynt å utføra to multiplikasjonar og ein addisjon per sampelperiode. Tilstandsvariablen u(n-1) blir oppdatert med førre verdi til u(n) og u(n) blir oppdatert med neste inngangsverdi, som til dømes kan koma frå ein AD-omformar. For å bestemma responsen til systemet må vi i tillegg til differanselikninga òg kjenne startverdiane (inisialverdiane) til alle tilstandsvariablane. Vi merker oss at utgangsverdien y(n), for dette systemet, ikkje blir påverka av tidlegere utgangsverdiar. Slike system blir kalla ikkje-rekursive system.
 

Eit ikkje-rekursivt filter med M+1 koeffisientar kan uttrykkast med differanselikninga

:
y(n) = \sum_{i=0}^{M}b(n)u(n-i),

 
der b(n), n=0,1,\ldots,M er koeffisientvektoren, \{u\} er inngangssekvensen, \{y\} er utgangsekvensen, M+1 er talet på koeffisientar og n er ein sampelindeks. Filteret har M tilstandsvariabler (siste inngangsverdi u(n) er ikkje ein tilstandsvariabel).

Eit ikkje-rekursivt filter kan òg uttrykkjast som foldninga mellom koeffisientvektoren og inngangssekvensen:
 
:
y(n) = b(n)*u(n),



der * er foldningsoperatoren.

Impulsresponsen til ikkje-rekursive system er av lengd T(M+1). At lengda på impulsresponsen er endeleg har gjeve opphav til at slike filter vert kalla FIR-filter, der akronymet FIR kjem frå engelsk: «Finite Impulse Response». Om alle M+1 koeffisientane er like vil utgangsverdien y(n) vera gjennomsnittet av dei M+1 siste inngangsverdiane. Dette har gjeve opphav til nemninga MA-filter, der akronymet MA kjem frå engelsk: «Moving Average». Som oftast er ikkje alle koeffisientane like, så utgangsverdien er ikkje gjennomsnittet av dei M+1 siste inngangsverdiane, men MA-filter er likevel ein vanleg betegnelse på ikkje-rekursive filter.

## Rekursive diskret system

Som døme på eit rekursivt system kan vi sjå på systemet
 
:
 y(n) = b_{0}u(n)+b_{1}u(n-1) + a_1y(n-1).


I dette systemet har førre utgangsverdi y(n-1) innverkning på siste utgangsverdi y(n). Koeffisienten a_1 avgjer kor stor innverknad førre utgangsverdi har. Av di denne koeffisienten blir multiplisert med ein tidlegare utgangsverdi blir han kalla ein rekursiv koeffisient. Eit system er rekursivt om det har minst ein rekursiv koeffisient.

Generelt kan vi beskriva eit rekursivt system 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. I praksis må dei tidlegere verdiane, u(n-i) og \ y(n-i), lagrast i skiftregistre, eller sirkulære bufferar i RAM. 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. MA-filter er ikkje-rekursive og har endeleg impulserespons, medan både AR- og ARMA-filter er rekursive og har uendeleg impulsrespons.

## Stabilitet
Eit diskret system er stabilt om utgangssekvensen y(n) har ein øvre grenseverdi |y(n)|\leq A_2 når inngangssekvensen u(n) har ein øvre grenseverdi |u(n)|\leq A_{1}, der A_{1} og A_{2} er konstantar med endelige verdier. Det kan vises at eit LTI-system er stabilt om impulsresponsen er absolutt summerbar:

:
 \sum_{i=-\infty}^{\infty}|h(n)| 
der h(n) er impulsresponsen til systemet.
 
Ikkje-rekursive filter er alltid stabile, medan rekursive filter kan vera stabile eller ustabile. Rekursive filter med konstante koeffisientar kan enkelt gjerast stabile, men adaptive rekursive filter lyt overvakst for å vera sikre på at dei er stabile.

## Kausalitet
Eit diskret filter er kausalt om det ikkje reagerer på ein inngangsverdi før han er komen fram til filteret. Eit ikke-kausalt system kan nytta framtidige verdiar om heile, eller ein del av sekvensen er tilgjengelig før prosesseringa tek til. System som skal brukast i samband med sanntidsprosessering må vera kausale.

## Referansar

## Sjå òg
* FIR-filter (ikkje-rekursivt diskret filter)
* IIR-filter (rekursivt diskret filter)