Mitä FIR suodin on oikeastaan. Pekka Ritamäki. Esittely. Esimerkki

Samankaltaiset tiedostot
SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Alipäästösuotimen muuntaminen muiksi perussuotimiksi

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

SGN Signaalinkäsittelyn perusteet Välikoe Heikki Huttunen

Harjoitustyö 1. Signaaliprosessorit Sivu 1 / 11 Vähämartti Pasi & Pihlainen Tommi. Kaistanestosuodin, estä 2 khz. Amplitudi. 2 khz.

LOPPURAPORTTI Lämpötilahälytin Hans Baumgartner xxxxxxx nimi nimi

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

Successive approximation AD-muunnin

n! k!(n k)! n = Binomikerroin voidaan laskea pelkästään yhteenlaskun avulla käyttäen allaolevia ns. palautuskaavoja.

Kirjoitetaan FIR-suotimen differenssiyhtälö (= suodatuksen määrittelevä kaava):

SMG-1100: PIIRIANALYYSI I. Verkkojen taajuusriippuvuus: suo(dat)timet

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

Mikrokontrollerit. Mikrokontrolleri

Tehtävä 2: Tietoliikenneprotokolla

Matlab-tietokoneharjoitus

C = P Q S = P Q + P Q = P Q. Laskutoimitukset binaariluvuilla P -- Q = P + (-Q) (-Q) P Q C in. C out

IIR-suodattimissa ongelmat korostuvat, koska takaisinkytkennästä seuraa virheiden kertautuminen ja joissakin tapauksissa myös vahvistuminen.

TL5503 DSK, laboraatiot (1.5 op) Suodatus 2 (ver 1.0) Jyrki Laitinen

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

TL5503 DSK, laboraatiot (1.5 op) Suodatus 1 (ver 1.0) Jyrki Laitinen

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

SISÄLLYS - DIGITAALITEKNIIKKA

Tietotekniikan valintakoe

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

Yksinkertaisin järjestelmä

ELEC-C5070 Elektroniikkapaja (5 op)

S Laskennallinen Neurotiede

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

A/D-muuntimia. Flash ADC

LIITE. asiakirjaan. komission delegoitu asetus

5.6. C-kielen perusteet, osa 6/8, Taulukko , pva, kuvat jma

Suodattimet. Suodatintyypit: Bessel Chebyshev Elliptinen Butterworth. Suodattimet samalla asteluvulla (amplitudivaste)

Lukujärjestelmät. Digitaalitekniikan matematiikka Luku 9 Sivu 3 (26) Lukujärjestelmät ja lukujen esittäminen Fe

Aktiivinen jakosuodin Linkwitz-korjauksella

Tietorakenteet ja algoritmit

Numeeriset menetelmät

Spektri- ja signaalianalysaattorit

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

Kompleksiluvut signaalin taajuusjakauman arvioinnissa

Luku 8. Aluekyselyt. 8.1 Summataulukko

Taulukot. Jukka Harju, Jukka Juslin

Mitään muita operaatioita symbolille ei ole määritelty! < a kaikilla kokonaisluvuilla a, + a = kaikilla kokonaisluvuilla a.

Sääasema Probyte JUNIOR

811120P Diskreetit rakenteet

Dynaamisten systeemien identifiointi 1/2

LABORATORIOTYÖ 3 VAIHELUKITTU VAHVISTIN

1 Olkoon suodattimen vaatimusmäärittely seuraava:

S Elektroniikan häiriökysymykset. Laboratoriotyö, kevät 2010

Algoritmit 1. Luento 3 Ti Timo Männikkö

Kauko-ohjauslaite GSM rele 2011 v

Elektroniikan perusteet, Radioamatööritutkintokoulutus

GSRELE ohjeet. Yleistä

Signaalien generointi

Määritä seuraavien suodattimien impulssivasteet ja tutki, ovatko ne kausaaleja:

Signaalien datamuunnokset. Näytteenotto ja pito -piirit

Algoritmit 1. Luento 11 Ti Timo Männikkö

TL5503 DSK, laboraatiot (1.5 op) Kuvasignaalit. Jyrki Laitinen

Tietorakenteet ja algoritmit

Algoritmit 2. Luento 13 Ti Timo Männikkö

Työ 31A VAIHTOVIRTAPIIRI. Pari 1. Jonas Alam Antti Tenhiälä

Matematiikan tukikurssi

Mediaanisuodattimet. Tähän asti käsitellyt suodattimet ovat olleet lineaarisia. Niille on tyypillistä, että. niiden ominaisuudet tunnetaan hyvin

T Digitaalinen signaalinkäsittely ja suodatus

Muuntavat analogisen signaalin digitaaliseksi Vertaa sisääntulevaa signaalia referenssijännitteeseen Sarja- tai rinnakkaismuotoinen Tyypilliset

Ohjelmistoradio. Mikä se on:

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Missä mennään. systeemi. identifiointi. mallikandidaatti. validointi. malli. (fysikaalinen) mallintaminen. mallin mallin käyttötarkoitus, reunaehdot

MATEMATIIKKA. Matematiikkaa pintakäsittelijöille. Ongelmanratkaisu. Isto Jokinen 2017

Tuntematon järjestelmä. Adaptiivinen suodatin

SGN-1251 Signaalinkäsittelyn sovellukset Välikoe Heikki Huttunen

Radioamatöörikurssi 2013

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

6. Analogisen signaalin liittäminen mikroprosessoriin Näytteenotto analogisesta signaalista DA-muuntimet 4

T DSP (Harjoitustyö 2003, v. 5.01) Sivu 2 / 9

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Johdatus Ohjelmointiin

Sääasema Probyte 2003

Radioamatöörikurssi 2015

Integrointialgoritmit molekyylidynamiikassa

ANSI/IEEE Std

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

20 Kollektorivirta kun V 1 = 15V Transistorin virtavahvistus Transistorin ominaiskayrasto Toimintasuora ja -piste 10

Monipuolinen esimerkki

VAATIMUKSIA YKSINKERTAISILLE VIKAILMAISIMILLE HSV:N KJ-VERKOSSA

3. Muuttujat ja operaatiot 3.1

Luento 8. Suodattimien käyttötarkoitus

DC-moottorin pyörimisnopeuden mittaaminen back-emf-menetelmällä

LABORATORIOTYÖ 2 A/D-MUUNNOS

1 Tarkastellaan digitaalista suodatinta, jolle suurin sallittu päästökaistavärähtely on 0.05 db ja estokaistalla vaimennus on 44 db.

7. Resistanssi ja Ohmin laki

FYSP105 / K3 RC-SUODATTIMET

LIITE 1 VIRHEEN ARVIOINNISTA

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

T Luonnollisen kielen tilastollinen käsittely Vastaukset 3, ti , 8:30-10:00 Kollokaatiot, Versio 1.1

Ratkaisu: a) Aritmeettisen jonon mielivaltainen jäsen a j saadaan kaavalla. n = a 1 n + (n 1)n d = = =

Transkriptio:

Mitä FIR suodin on oikeastaan Pekka Ritamäki Esittely...1 Esimerkki...1 Mikä FIR suodin on?...3 Mitkä ovat FIR suotimen huonot ominaisuudet verrattuna IIR suotimiin?...5 Millä termeillä FIR suodinta kuvataan?...5 Miten FIR sovellus testataan?...6 FIR rutiini C-kielellä...6 Lisätietoja...8 Esittely FIR-suodin on eräs DSP-tekniikan alalaji. Sen avulla käyttäjä voi suodattaa mitattavasta signaalista halutun taajuusosan. Alipäästö, ylipäästö, kaistanpäästö ovat sen yksinkertaisia sovelluksia. DTMF, FFT, signaalintunnistus ovat hieman vaativampia sovelluksia. FIR-suodattimen termit eivät ole aivan kaikille tuttuja. Kirjoituksessa esitellään termit, tekniikka, ja ohjelmat. Aluksi esitellään FIR-kerroin ohjelmaa ja sen antamia tuloksia, sitten kerrotaan mitä FIR-suodin oikeastaan tarkoittaa. Lopuksi näytetään miten FIR-suodin tehdään yksinkertaisella C-kielen ohjelmalla. Esimerkki Normaalisti esimerkit näytetään lopuksi. FIR-suotimen ymmärtäminen helpottuu kun näkee mitä sillä voidaan saada aikaan. Alla on tyypillinen FIR-suodinohjelma. Siinä määrätään, mittausväli, suotimen kertaluku ja rajataajuudet kursoreilla. Tuloksena on graafisesti piirretty kuva. Suotimen vaatimat kertoimet voidaan tallettaa tiedostoon. jota käytetään suoraan C-kielisessä FIR-laskenta ohjelmassa. Ensimmäisessä esimerkissä puhdistetaan radioamatööritoistimen signaali puhekaistan ulkopuolella olevista signaaleista. Näytteet otetaan 8000 kertaa sekunnissa, alarajataajuus on 400 Hz ja ylärajataajuus 2400Hz. Käyttämällä 511 kerrointa saadaan kauniit muurinseinäkuvat molemmille rajataajuuksille. 511 FIR suodin Pekka Ritamäki Probyte sivu 1/8 22.11.2016

kertolaskua, yhteenlaskua ja osoittimen siirtoa vaatii 4 miljoonaa laskua sekunnissa ( 511*8000Hz). Kuva 1 FIR-kertoimien Profir.exe laskentaohjelmasta, joka on DSPCD:llä 511 tapin suotimen kuva näkyy yllä Tuloksena tulee FIR suotimen kertoimet. Alla alkua FIRkerroin tiedoston sisällöstä 0.000100 0.000191 0.000022 0.000000 0.000129-0.000000-0.000131 0.000000-0.000023-0.000204 Jos 4 miljoonaa laskua kuulostaa liian suurelta, käyttäjä voi pudottaa kertoimia neljään ja tarkastaa miten hyvin suodin toimii. Tulos näkyy kuvasta 2. Tulos ei ole kovin vakuuttava. Suunnittelijan tehtävä on valita sopiva kompromissi käytettävissä olevan laskentatehon ja vaaditun suorituskyvyn välillä. FIR suodin Pekka Ritamäki Probyte sivu 2/8 22.11.2016

Kuva 2 viiden tapin suodin, jolla ei vielä paljon suodatella. Alla viiden tapin FIR- kerroin tiedoston sisältö ====================================================== -0.014968 0.110358 0.500000 0.110358-0.014968 Mikä FIR suodin on? FIR on DSP tekniikassa käytetty suotimen nimi. FIR suodin eli Finite Impulse Response on menetelmä, jossa lasketaan suotimen tulos aina samasta määrästä mittauksia. Impulse Response viittaa FIR-suotimen testauksen menetelmään. Siinä ei ole lainkaan käsitellä vanhoja mittaustuloksia. Mittauksia on pariton määrä. Mittaukset siirretään datavektoriin aina määrätyn aikavalin jälkeen. Datavektori on joukko datoja, jotka ovat peräkkäin ja joilla on sama alkuosoite. Mittaustulokset talletetaan mittausdatavektoriin peräkkäin. FIR suodin Pekka Ritamäki Probyte sivu 3/8 22.11.2016

FIR-suotimessa käytetään kahta datavektoria, joista toisessa on mittaustulokset ja toisessa etukäteen lasketut FIR-suotimen arvot. Molemmat datavektorit ovat yhtä pitkiä. FIR on DSP tekniikassa käytetty suotimen nimi. Toinen yleisesti käytetty suodintyyppi on IIR (Infinite Impulse Response). FIR suotimessa on etukäteen määrätty joukko mittaustuloksia ADC:lta. Ne kerrotaan FIRsuotimen kertoimien kanssa. Tulos annetaan DSP:n DA-muutimelle tai käsitellään ohjelmassa FIR on suhteellisen helppo toteuttaa. Siinä ei tarvita muuta kuin kerto- ja yhteenlaskua ja osoittimen siirtoa. FIR suodin ei muuta signaalin vaihetta. FIR suodin on siis vaihelineaarinen. FIR kylläkin viivästää signaalia. Useimmilla DSP prosessoreilla FIR laskenta voidaan tehdä yhdellä käskyllä. IIR-suodin on FIR-suotimen kilpailija. Se on hieman monimutkaisempi, mutta joissakin tapauksissa nopeampi.. DSP-laskut pitää tehdä määrätyllä tarkkuudella, esim. kahdeksan, kuusitoista, kolmekymmentä kaksi tai liukuvanpilkun matematiikalla. Käytännön prosessoreissa on vain määrätty määrä bittejä laskennassa. Laskennan nopeus ja tarkkuus riippuu prosessorin käytettävissä olevista biteistä. Jos laskennassa bittejä on likaa, prosessorin mittaustulokset vuotavat yli. Toisaalta, jos ylivuotoa tarkkaillaan ja käytetään ulkoista muistia prosessorin rekistereiden asemasta, laskenta hidastuu ja DSP-hyödyt valuvat kuin voi kuumalle kalliolle. Pitää tietää tekniikan rajoitukset. Käytäntö ja teoria ovat sama asia teoriassa, mutta ei käytännössä. Tämä ylivuotoongelma tulee esille mm. työstökoneiden servolaskennassa, jossa esiintyy sama ylivuoto-ongelma. Sen ongelman olen pystynyt ratkaisemaan käsittelemällä vain paikan ja ohjauksen muutoksia. FIR-suodattimessa tämä ei ole vielä onnistunut. ADC muunnin ei voi tietää, mikä on seuraavan mittauksen arvo. IIR suotimessa käytetään takaisinkytkentää ja sen laskentavaatimukset ovat huomattavasti suuremmat kuin FIR menetelmän. FIR suotimessa käytetään vain määrättyä määrää näytteittä laskettaessa suodinta. IIR suotimessa näytteitä on laskennassa periaatteessa ääretön määrä. FIR suodin voidaan ratkaista kertoimilla, joiden arvo on alle 1.0. Tietysti kokonaisvasteen arvoa voidaan muuttaa laskennan jälkeen. FIR suodin voidaan laskea kokonaislukumatematiikalla. Tämä on tärkeä muistaa kun käytetään prosessoria, jossa ei ole liukuvan pilkun matematiikkayksikköä. FIR suodin Pekka Ritamäki Probyte sivu 4/8 22.11.2016

Mitkä ovat FIR suotimen huonot ominaisuudet verrattuna IIR suotimiin? FIR suotimet vaativat joskus enemmän muistia kuin IIR suotimet. Jotkut suotimet ovat mahdottomia rakentaa FIR suotimilla. Millä termeillä FIR suodinta kuvataan? Impulssin toisto. Impulssin toisto määrää FIR suotimen kertoimet. Jos laitat impulssin suotimeen sisään eli 1, jota seuraa monta nollaa, niin FIR suodin antaa juuri joukon kertoimia, sitä mukaan kun 1 kulkee suotimen läpi näytteenoton tahdissa. Nämä ovat FIR suotimen kertoimia. 1 tarkoittaa suurinta lukua prosessorin lukuavaruudessa. Jos käytetään kokoanisluku matematiikka esim. 16-bittistä lukualuetta. 1 tarkoittaa lukua 32767 eli suurin positiivinen luku. Väliulosotto eli Tap - FIRin tappi on kerroin/viive-pari. FIRin tappien määrä ( N ) antaa viitteitä muistin määrästä, tarvittavasta laskentamäärästä ja suotimella saavutetulla suodatuskyvystä. Mitä enemmän tappeja suodattimessa on sitä paremmin se pystyy poistamaan ei-toivottuja alueita suotimella. Samoin saadaan vähemmän suotimen päästökaistan vaihtelua (rippeliä). Suotimella voidaan tehdä kapeita kaistoja, jos siinä on paljon tappeja Kerro- ja tallenna-toimenpide ( Multiply-Accumulate =MAC) tarkoittaa FIR yhteydessä toimintoa missä kerrotaan FIR suotimen kertoimet viivästetyllä datalla ja tulos talletetaan pitkään, DSP-prosessorille erikoisesti tätä toimitusta varten tehtyyn, rekisteriin. FIR vaatii yhden MAC käskyn jokaista tappia kohden. Useimmissa DPS-mikroprosessoreissa MAC käsky tehdään vain yhdessä konekäskyssä. MAC rekistereitä voi olla useita. Microchip DSP-prosessoreissa on kaksi 40-bitin rekisteriä Suotimen reuna-alueet (Transition Band) on päästöalueen ja pysäytys-alueen välinen alue. Mitä jyrkempi vaatimus reunaalueen suuruudeksi laitetaan sitä enemmän tarvitaan tappeja ja sitä jyrkempi suotimesta tulee. Viivelinja ( matemaattinen merkki on "Z^-1") on muistielementti, jotka tallettavat mittaustiedot FIR-suotimessa. Viive ilmaistaan DSP-laskuissa Z^-1- merkinnällä Rengaspuskuri tarkoittaa muistipaikkoja jonne mittaukset tulevat. Muistialue on järjestetty siten kun muisti loppuu se jatkuu muistin alusta Muistin käyttöä ohjaavat kaksi osoitinta. vastaanottoosoitin ja lukuosoitin. FIR suodin Pekka Ritamäki Probyte sivu 5/8 22.11.2016

Rengas puskuri antaa DSP-ohjelmalle mahdollisuuden lukea mittaustuloksia ja kertoimia ilman, että muuttujia muutellaan. Ohjelma vain siirtää mittaustietojen osoituspaikkaa. Kun uutta tietoa tulee se menee vanhimman tiedon paikalle, Miten FIR sovellus testataan? Impulssitesti: Yksinkertainen testi on laittaa 1 mittaustuloon ja sitten loput nollia tai 1 ja nollia N-kappaletta. N on FIRtappien lukumäärä. Jos tuloksena tulee kaikki FIR-suotimen kertoimet oikeassa järjestyksessä, sovelluksesi toimii hyvin. Tämä testi kannattaa tehdä ohjelmallisesti kun testaat uutta FIRalgorimiasi. Askeltesti : Laita tuloon N tai enemmän kappaletta "1" näytteitä. Antoon tulee FIR-suotimen tasavirtavahvistus. Sinitesti: Laita tuloon yksittäinen sinisignaali ohjelmallisesti tai laitteiston avulla ja tarkastele tulosta onko se halutunlainen. Seuraavaksi voi laittaa muutaman eritaajuisen signaalin ja katoa kuinka suotimesi selviää niistä. Pyyhkäisytesti : Laita suodattimen tuloon sinisignaali, joka taajuus muuttuu jatkuvasti. Saat suodattimen toistokäyrän näkyville. Nämä testit vaativat hieman aikaa toteuttaa, mutta uudet laitteet pitää testata ennen käyttöä. Mitä ovat IIR suodattimen vahvuudet verrattuna FIR suodattimeen? IIR suodattimella voidaan saada tarvittavat suodatusominaisuudet pienemmällä muistilla ja laskutoimituksilla kuin FIR menetelmällä Mitä ovat IIR suodattimen heikkoudet verrattuna FIR suodattimeen Näillä suodattimilla tulee helposti ongelmia laskennassa. Jos laskennassa tulee pyöristysvirheitä, suodin saattaa käyttäytyä kummallisesti. Tämä johtuu takaisinkytkennästä. Jos laskentaa ei tehdä täydellisesti virheet alkavat näkyä takaisin kytkennän vaikutuksesta tuloksessa. IIR on vaikeampi ja hitaampi tehdä kokoanislukumatematiikalla. FIR rutiini C-kielellä FIR suodin Pekka Ritamäki Probyte sivu 6/8 22.11.2016

sum = 0; for(i=0; i<length; i++) sum = sum + weights[i] * data[i]; Tosin sanoen esimerkissä on kaksi ryhmää (array) lukuja; painoarvot ja datat. Ne kerrotaan elementti elementillä ja tulot lasketaan yhteen. Radion sekoittajassa ja ilmaisimessa tapahtuu sama asia analogisesti. FIR-suodatin voidaan kuvitella olevan sini-taulukko, joka kerrotaan tulevan radiosignaalin avulla. Tulokset summataan ilmaisimessa. Toiminta: vain oikean taajuiset signaalit pääsevät ilmaisimen läpi. Muut signaalit summatuvat kohinaksi. Rajataajuus saadaan Shannonin teoreemasta. Esimerkki : Data ja FIR suodin ovat molemmat 8 bittisiä lukuja Ramissa. Data pidetään 16 tavun ympyräpuskurissa. Esimerkissä on vain FIRlaskentarutiini, ei tiedon keräystä ja tulostusta, eikä FIR-suotimen normalisointia liukuvanpilkun luvusta kokonaisluvuksi FIR suodattimessa on 8 arvoa, joissa suodattimen lisäksi kalibrointiarvo. Laske suodatettu FIR arvo // FIR rutiinin, p.ritmäki, probyte fir.c 26.10.2006 #define FIR_WEIGHTS 8 #define MAX_DATA_SAMPLES 16 char weights[fir_weights]; char data_buffer[max_data_samples]; char data_index; /* osoitin viimeksi saatuun näytteenottodataan */ // Laske aina jokaisen datan jälkeen fir suodatettu arvo signed int16 fir(void) { signed int8 i,j; signed int16 sum; } j = data_index - FIR_WEIGHTS; if(j < 0) j = j + MAX_DATA_SAMPLES; sum = 0; for(i=0; i<fir_weights; i++) { // 8 FIR_WEIGHTS } sum = sum + weights[i] * data_buffer[j]; j = j + 1; if(j >= MAX_DATA_SAMPLES) // 16 j = 0; return sum; FIR suodin Pekka Ritamäki Probyte sivu 7/8 22.11.2016

Lisätietoja Lisätietoja Probyte DSPCD www.probyte.fi Pekka Ritamäki/ Probyte Oy FIR suodin Pekka Ritamäki Probyte sivu 8/8 22.11.2016