Göm meny

TSEA28 - Datorteknik Y

Inledning

Det här dokumentet är tänkt som en väldigt kortfattad introduktion till filter. Det är inte tänkt att ge någon filterteori (eftersom detta kommer i senare kurser), utan det är tänkt att ge en intuitiv förståelse för hur en vanlig typ av digitala filter fungerar för att motivera formeln för ett FIR-filter.

Enkel signalbehandling

Ett enkelt signalbehandlande system kan ses i figuren ovan. En analog signal (exempelvis en ljudsignal som hämtas ifrån en mikrofon) skickas in i en analog till digital-omvandlare (A/D-omvandlare). Denna omvandlare skickar ut en digital signal som läses av (samplas) med jämna mellanrum av datorn. Den hastighet som denna signal läses av vid kallas för samplingsfrekvens och varierar beroende på vilken typ av signalbehandling som ska göras. (Ett exempel på samplingsfrekvens är att 44100 Hz är vanligt i ljudsammanhang eftersom CD-standarden använder denna frekvens.)

När signalen väl är inläst kan datorn behandla signalen på olika sätt innan signalen skickas ut igen, även om vi i detta dokument koncentrerar oss på två enkla typer av filter, lågpassfiltret respektive högpassfiltret.

Ett enkelt lågpassfilter

För att göra ett väldigt enkelt lågpassfilter (det vill säga, ett filter som dämpar höga frekvenser och släpper igenom låga frekvenser), så kan man helt enkelt bilda medelvärdet av de två senaste inlästa värdena. Rent matematiskt kan vi beskriva detta på följande sätt: y[n] = x[n]+x[n-1] 2 (där x är en vektor med våra invärden (samples) som lästs in med jämna mellanrum (samplats) och y innehåller filtrerade värden).

Även utan någon teori kan det här rent intuitivt ses som ett lågpassfilter. Tänk dig att du har en signal som ändrar sig snabbt (det vill säga en högfrekvent signal). Närliggande värden kommer då att uppvisa stora skillnader. Om du då bildar medelvärdet av dessa värden kommer de stora förändringarna i signalen att försvinna.)

Ett enkelt högpassfilter

Om vi har den ursprungliga signalen och en lågpassfiltrerad version av denna signal så är det enkelt att göra ett enkelt högpassfilter genom att helt enkelt subtrahera den lågpassfiltrerade signalen ifrån den ursprungliga signalen. Kvar blir då bara de höga frekvenserna enligt varianten nedan: y[n] = x[n] - x[n]+x[n-1] 2 = x[n]-x[n-1] 2

Generalisering

Mer generellt kan vi bygga ett godtyckligt filter genom följande ekvation: y[n] = i=0 N x[n-i]bi där b är en vektor med så kallade filterkoefficienter. (För er som har läst linjär algebra så ser ni direkt likheten med en skalärprodukt.)

Exempel på högpass/lågpassfilter

Här nedan finns ett exempel på hur en ljudfil blir efter att den lågpassfiltrerats respektive högpassfiltrerats.
  • Originalfil
  • En lågpassfiltrerad version (I detta fall har jag överdrivet effekten genom att medelvärdesbilda 16 närliggande värden istället för bara 2.)
  • En högpassfiltrerad version (Den här filen är baserad på differensen mellan två sampels enligt ekvationen i avsnittet om högpassfilter.)
  • Copyrightinfo: Ljudet kommer ifrån /usr/share/sounds/ubuntu/stereo/desktop-login.ogg i Ubuntu och är licensierat enligt Creative Commons Attribution-ShareAlike. Kompositören heter Nathaniel McCallum.

Det går även att generalisera detta till tvådimensionella (eller flerdimensionella) indata. I detta fall kan det se ut såhär:

Originalbild


Copyrightinfo: Bilden är hämtad från commons.wikimedia.org och är skapad av Jens Ayton under licensen CC-BY-SA 2.5.

Lågpassfiltrerad version

(Notera att bilden ser ut att vara suddig/oskarp efter att den lågpassfiltrerats.)

Högpassfiltrerad version

Om du vill lära dig mer

Filterteori ingår definitivt inte i denna kurs, men om du vill tjuvstarta och lära dig mer om detta är lämpliga nyckelord faltning, Z-transform och framförallt FIR-filter.

Informationsansvarig: Kent Palmkvist
Senast uppdaterad: 2017-02-26