JUHO BLANKENSTEIN MITTAUSSIGNAALIN PAKKAAMINEN, SELVITYS PAKKAUSALGORITMEISTA

Koko: px
Aloita esitys sivulta:

Download "JUHO BLANKENSTEIN MITTAUSSIGNAALIN PAKKAAMINEN, SELVITYS PAKKAUSALGORITMEISTA"

Transkriptio

1 I JUHO BLANKENSTEIN MITTAUSSIGNAALIN PAKKAAMINEN, SELVITYS PAKKAUSALGORITMEISTA Kandidaatintyö Tarkastaja: lehtori Konsta Koppinen Työ jätetty tarkastettavaksi 10. toukokuuta 2009

2 II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietoliikenne-elektroniikan koulutusohjelma BLANKENSTEIN, JUHO: Mittaussignaalin pakkaaminen, selvitys pakkausalgoritmeista Kandidaatintyö, 14 sivua, 7 liitesivua Toukokuu 2009 Pääaine: Signaalinkäsittely Tarkastaja: lehtori Konsta Koppinen Avainsanat: Häviötön pakkaaminen, Huffman, Deltasignaali, LPC, LZW, Jakson pituus. Työn tarkoituksena on tarkastella kolmen eri pakkausalgoritmin soveltumista kolmeen eri teollisuusprosessista saatuun signaaliin. Pakkausalgoritmeiksi on valittu laajimmin eri sovelluksissa käytössä olevia ja tunnettuja algoritmeja. Jokainen algoritmi hyödyntää signaalin eri ominaisuutta. Näiden algoritmien lisäksi kokeillaan kahta esikäsittelyprosessia ja näiden vaikutusta algoritmeihin. Työn pääpaino on pakkaustehokkuuden tutkimisessa ja esikäsittelyn soveltumisesta eri tyyppisiin algoritmeihin. Työssä tehokkaimmaksi menetelmäksi osoittautui erotussignaalin pakkaaminen Huffman:lla, kunhan kohinaa ei signaalissa esiinny. Yleiskäyttöinen LZW pärjäsi hyvin kohinankin kanssa.

3 III ALKUSANAT Haluaisin kiittää Konsta Koppista työn ohjaamisesta ja kommentoinnista. Työssä on ollut suurena apuna Giuseppe Ridinon koodaamat Matlab- funktiot Huffman:iin ja LZW:n, joita olen käyttänyt funktioiden pohjana. Tämä kandidaatintyö toteutettiin osana Tampereen teknillisen yliopiston signaalinkäsittelyn laitoksen kandidaatintyöseminaaria. 10. toukokuuta 2009 Juho Blankenstein

4 IV SISÄLLYS 1. Johdanto Esikäsittely Deltasignaali eli erotussignaali Lineaarinen ennustava koodaus Pakkausalgoritmit Entropiaan perustuvat menetelmät - Huffman Toteutus Erilaiset variaatiot Sanakirjakoodaus LZW Jakson pituuden koodaus Algoritmien testaus Pakkaustehokkuus Esikäsittely erotussignaalilla Esikäsittely lineaarisen ennustuksen kertoimilla Johtopäätökset...14 Liitteet...15 Lähteet...22

5 TERMIT JA NIIDEN MÄÄRITELMÄT ASCII- merkistö Deltasignaali Huffman- puu Häviötön pakkaaminen LZW American Standard Code ofr Information Interchangemerkistö, joka sisältää englannin kirjaimet, numerot, joukon välimerkkejä ja ohjauskoodeja. Erotussignaali. Kooditaulukko, josta löytyy Huffman- algoritmin pakkaustiedot. Data, joka on pakattu niin, että se voidaan palauttaa alkuperäiseen muotoon. Tekijöidensä, Lempel, Ziv, Welch, mukaan nimetty pakkausalgoritmi.

6 6 1. JOHDANTO Teollisuusprosessista kerätään viidelta anturilta mittausdataa erilaisista fysikaalisista suureista. Tätä dataa voidaan käyttää myöhemmin arvioimaan prosessin toimintaa eri tavoin. Hyvään analyysiin voidaan tarvita dataa pitkältä aikaväliltä, jotta tilastollisia ominaisuuksia päästäisiin seuraamaan. Tiedon varastointi vie paljon resursseja ja niiden tehostamiseksi tieto pakataan. Muistinkäytön vähetessä tallennus- ja tietonsiirtokapasiteettien tarve vähenee. Dataa on kerätty kymmenen hertzin näytteenottotaajuudella 16:n bitin tarkkuudella ja yksittäisestä mittausjaksosta on kertynyt karkeasti 150 megatavua mittausdataa. Luvussa kaksi perehdytään esikäsittelymenetelmiin, jotka joissain tapauksissa tehostavat algoritmien toiminnallisuutta. Esikäsittelymenetelmistä työssä esitellään deltasignaali ja lineaarinen ennustava koodaus. Tässä kandidaatintyössä perehdytään häviöttömiin pakkaustekniikoihin seuraavasti: entropiaan perustuvista menetelmistä on yleisesti käytetty Huffman- algoritmi, sanakirjakoodauksesta LZW- algoritmi ja kolmantena toistoa eliminoiva jakson pituuden koodaus. Luvussa neljä vertaillaan pakkaustuloksia kolmella erilaisella signaalilla, kun niitä on testattu luvussa kolme esitellyillä algoritmeilla ja luvussa kaksi olevilla esikäsittelyillä. Pakkausalgoritmit toteutettiin Matlab:lla.

7 7 2. ESIKÄSITTELY Alkuperäisen signaalin pakkaaminen on useimmiten tehotonta verrattuna esikäsiteltyyn signaaliin. Esikäsittelyllä pyritään saamaan signaali sellaiseen muotoon, jossa se on tehokasta pakata, kuitenkaan hukkaamatta sen sisältämästä informaatiosta mitään. Tässä käytetään tietoa signaalin luonteesta ja tallennetaan signaalille tyypilliset piirteet Deltasignaali eli erotussignaali Erotussignaali muodostetaan tallentamalla alkuperäisestä signaalista ensimmäinen näyte ja laskemalla seuraavien näytteiden muutos edelliseen näytteeseen nähden. y[0] = x[0], y[n] = x[n] - x[n -1], (2.1) missä x[0] on ensimmäinen näyte ja y[n] on uusimman ja toiseksi uusimman näytteen erotus. Tällä toimenpiteellä saadaan signaalin y[n] arvot muutoksen suuruisiksi. Menetelmä erottaa tasaisesti muuttuvasta signaalista jaksoja, joissa toistuu sama arvo. Tämä on edullista pakkausta silmällä pitäen. Menetelmän tehokkuus riippuu signaalin luonteesta. Mitä lähempänä viereisten näytteiden arvot ovat toisiaan sitä paremmin deltasignaali toimii. Tyypillisesti tämä on totta tarkasteltaessa audio- ja mittaussignaaleja, kun taas esimerkiksi tietokonekoodissa tai kirjoitetussa tekstissä viereiset arvot eivät yleisesti ole lähellä toisiaan. Kuva 2.1: Signaali ja sen deltakoodattu versio

8 Lineaarinen ennustava koodaus LPC Linear predictive coding( lineaarinen ennustava koodaus) lähtee tarkastelemaan asiaa vanhojen näytteiden avulla, kun erotussignaalissa käytetään vain edellistä näytettä. LPC onkin yleistys deltasignaalista. Vanhojen näytteiden pohjalta pyritään ennustamaan tuleva näyte x p (n) = - i a(i) x(n-i), i = 1 p, (2.2) missä x on sisääntulo, a(1),a(2),a(3)... a(p) ennustamiseen käytetyt kertoimet ja x p ennustettu sisääntulo. Tässä esikäsittelyssä tallennetaan ennustusvirhe: e(n) = x(n)- x p (n) = i a(i) y(n i), i = 0 p (2.3) todellisen sisääntulon ja ennustetun väliltä. LPC pyrkii löytämään sellaiset kertoimet a(1), a(2), a(3)... a(p), joilla neliövirheiden summa saadaan mahdollisimman pieneksi[1]. Signaalin ennustusvirheen energia kirjoitetaan muotoon: E p = n ( e(n) ) 2, n = - (2.4) = n ( x(n) x p (n) ) 2, n = - Kun on sovittu a(0) = 1 merkintöjen helpottamiseksi, saadaan yhtälö muotoon E p = n ( k a(k)x(n-k) ) 2, n = -, k = 0 p Kertoimien a(p) optimaalisuuden ehtona on että funktion E p osittaisderivaattojen täytyy olla nolla a(p):n suhteen. Kun derivoinnin ja ryhmittelyn jälkeen asetetaan derivaattojen arvot nolliksi saadaan yhtälöryhmä, mistä tulee symmetrinen Toeplitz matriisi, joka on muotoa, Rx=y (2.5) missä R on autokorrelaatiomatriisi ja y ristikorrelaationvektori. Optimaaliset kertoimet ratkaistaan yhtälöstä (2.5) Levinson- Durbin rekursiolla. Levinson- Durbin ratkaisee yhtälöryhmän lohkoittain kasvattamalla yhtälön (2.5) vektorin x pituutta ja hyödyntäen edellisen iteraation tulosta.

9 9 3. PAKKAUSALGORITMIT Kaikki kolme algoritmia, Huffman, LZW ja jakson pituuden koodaus (engl. Run-Lenght coding), ovat häviöttömiä. Huffman perustuu entropiaan, LZW sanakirjakoodaukseen ja jakson pituus signaalissa olevan toiston hyväksikäyttämiseen. Häviöttömän pakkauksen tehokkuus on kuitenkin aina riippuvainen sille syötettävästä signaalista Tuottakoon mittaus arvoja s 1, s 2, s 3 s L, jotka jakautuvat todennäköisyyksin p 1, p 2, p 3 p L. Tämän mittauksen informaatio on I k = - log 2 p k bittiä. (3.1) Informaation avulla ilmoitettuna mittauksen entropia on H = - p k log 2 p k bittiä. (3.2) Häviöttömän pakkausalgoritmin maksimipakkaus on sidottu entropiaan. Pakattu signaali ei voi päästä entropiaa pienempään bittimäärään. Ilman tätä ehtoa signaalia voitaisiin pakata samalla algoritmilla useaan kertaan ja joka kierroksella päädyttäisiin edellistä pienempään lopputulokseen. Jokaista algoritmia voidaan käyttää joko laskemalla joka kerta pakkauksessa käytettävä tieto kyseisestä signaalista tai käyttää ennaltamäärättyä pakkaustaulukkoa. Näissä testeissä taulukot on laskettu jokaista signaalia varten uusiksi pakkauksen tehokkuuden maksimoitamiseksi. Kuitenkin jos pakataan samankaltaista tietoa voitaisiin käyttää vanhaa pakkaustaulukkoa tai niiden keskiarvoja pakkauslaskennan yksinkertaistamiseksi hävittämättä kuitenkaan paljoa pakkaustehokkuudesta Entropiaan perustuvat menetelmät - Huffman Huffman- algoritmissa näytteille allokoidaan bittejä näytteen esiintymistiheyden mukaan, siten että useimmiten esiintyvät näytteet saavat pienimmät bittimäärät. Allokoiduista biteistä muodostetaan huffman- puu, jonka mukaan signaali pakataan ja puretaan. Bitit on jaettu niin että luettaessa pakattua signaalia aina on selvää mihin arvoon viitataan. Huffman käsittelee dataa aina merkki kerrallaan. Optimaalisen pakkaustehokkuuden saavuttamiseksi merkkien todennäköisyyksien tulisi olla kahden negatiivisia potensseja.

10 Toteutus Algoritmin alussa merkit laitetaan laskevaan järjestykseen niiden esiintymistodennäköisyyksien mukaan. Jokaiseen merkkiin menee oma haara. Tämän jälkeen kaksi pienimpien todennäköisyyksien haaraa yhdistetään ja näistä muodostuu uusi haara, jolla on yhdistyneiden haarojen yhteenlaskettu todennäköisyys. Mikäli löytyy useampia merkkejä tai merkkiyhdistelmiä, jotka tuottavat saman todennäköisyyden voidaan valita eri yhdistelmiä, kunhan uuden haaran todennäköisyys on pienin mahdollinen. Tästä seuraa ettei Huffman- puu ole kaikissa samasta lähtöjoukosta lasketuissa tapauksissa samanlainen. Haarojen yhdistämistä jatketaan kunnes viimeisen haaran todennäköisyys on yksi. Puun ollessa valmis annetaan haarojen yläosalle arvo nolla ja alaosalle arvo yksi ja arvot luetaan ylhäältä seuraten haaroja alkuperäiselle merkille. Kuvassa 3.1 on esimerkki viiden arvon huffmanpuusta. Merkki Todennäköisyys koodi a a a a a Taulukko 3.1: Huffman esimerkin arvot Kuva 3.1: Huffman- puu Taulukon 1 arvoille

11 11 Esimerkin keskimääräinen koodin tilantarve on 0.4 * * * * *4 = 2.4 bittiä/ merkki. Puu olisi voitu muodostaa myös toisin. Todennäköisyydet a 345 ja a1 ovat samat, joten oltaisiin myös voitu muodostaa haara a [2] Erilaiset variaatiot Huffman olettaa että pakkausvaiheessa merkkien todennäköisyydet ovat tunnetut. Näin ei kuitenkaan aina ole ja tähän on kehitetty eri menetelmiä. Yksi näistä on adaptiivinen huffman- algoritmi, jossa puuta päivitetään pakkaamisen ja purkamisen yhteydessä jokaisen merkin kohdalla. Huffmanista on kehitetty myös merkkisarjoille soveltuva versio aritmeettinen koodaus. Tässä työssä testataan alkuperäistä huffman algoritmia, mutta on huomion arvoista mainita, että erilaisia variaatioita on olemassa Sanakirjakoodaus LZW Terry Welchin vuonna 1984 julkaisema algoritmi, joka pohjautui Abraham Lempelin ja Jacob Zivin vuonna 1978 julkaistuun LZ78- algoritmiin. Algoritmista tuli nopeasti laajalti käytetty kun sitä ryhdyttiin käyttämään GIF- kuvaformaatissa Algoritmin käyttöä rajasi siihen tehty patentti, joka kuitenkin vanhentui vuonna Tekijöidensä mukaan nimettyä LZW: tä pidetään kehittyneinpänä yleistarkoitukseen sopivana pakkaustekniikkana sen yksinkertaisuuden ja monimuotoisuuden ansiosta. Algoritmin arvioidaan pakkaavan tekstiä ja ajettavaa koodia puoleen alkuperäisestä koosta.[3] Pakkausalgoritmi muodostaa 12- bittisen kooditaulukon arvoista, joihin algoritmi iteroi syötteessä esiintyviä bittijonoja ja korvaa ne sanakirjassa esiintyvillä arvoilla. Taulukon ensimmäiset 256 arvoa on alustettu yhden tavun sisältämiin arvoihin (0-255) ja tästä eteenpäin ( ) ovat 3 tavun yhdistelmiä, jotka on saatu pakattavasta signaalista. Uusi heräte siirrettään aluksi puskuriin, jota verrataan sanakirjan vanhoihin arvoihin. Mikäli puskurin arvo löytyy sanakirjasta, se korvataan sillä. Jos arvoa ei ole, lisätään se sanakirjaan ja alustetaan puskuri uusimmalla arvolla. Aina kun puskurista löytyvä maksimissaan kolmen tavun yhdistelmä tulee signaalista vastaan se korvataan taulukosta löytyvällä arvolla. Taulukon 3.2 esimerkki kuvastaa algoritmin kulkua virkkeelle the/rain/in/spain/falls/mainly.

12 12 Puskuri Löytyykö sanakirjasta Lisätty sanakirjaan t kyllä - Ulostulo th ei th= 256 t he ei he = 257 h e/ ei /e = 258 e /r ei /r = 259 / ra ei ra = 260 r ai ei ai = 261 a in ei in = 262 i n/ ei n/ = 263 n /i ei /i = 264 / in kyllä (262) - in/ ei in/ = /s ei /s = 266 / sp ei sp = 267 s pa ei pa = 269 p ai kyllä (261) - ain ei ain = n/ kyllä (263) - n/f ei n/f = fa ei fa = 271 f al ei al = 272 a ll ei ll = 273 l ls ei ls =274 l s/ ei s/ = 275 s /m ei /m = 276 / ma ei ma = 277 m ai kyllä (261) - ain kyllä (269) - ainl ei ainl = ly ei ly = 279 l y kyllä - y Taulukko 3.2: LZW- algoritmin esimerkki

13 Jakson pituuden koodaus Jakson pituuden pakkaaminen perustuu signaalissa esiintyviin sarjoihin, joissa esiintyy samaa arvoa monta kertaa peräkkäin. Tämä toisto voidaan korvata sarjan ensimmäisellä arvolla, mikä kertoo mitä toistetaan ja toisella arvolla, mikä kertoo montako kertaa ensimmäisen arvon luku esiintyy tämän jälkeen. Yksinkertaisena esimerkkinä lukujono 1, 1, 1, 3, 3, 4, 4, 4, 4, 5, 6 > 1, -2, 3, -1, 4, -3, 5, 6. Tässä toistoa kuvaava arvo on annettu negatiivisena, koska se sopii mittaussignaalin kanssa käytettäväksi, mutta muitakin vaihtoehtoja on. Esimerkiksi tekstiä pakattaessa ascii- merkit käyttävät vain seitsemää bittiä 128 arvoa ja kahdeksas bitti jää vapaaksi ilmoittamaan onko käytetty toistoa [4]. Joissain tilanteissa on myös järkevää ilmoittaa toisto ainoastaan yhdelle tai vain muutamalle arvolle yksinkertaisuuden vuoksi ja laittaa toiston määrä aina kyseisen arvon perään. Tätä ominaisuutta käytettäessä on mahdollista että muokataan koodattu signaali alkuperäistä isommaksi, jos yksittäisiä arvoja on paljon. Tämä voisi kuitenkin tulla käytetyksi esimerkiksi nollien kohdalla, jotka audiossa vastaavat hiljaisuutta tai kuvissa mustia alueita.

14 14 4. ALGORITMIEN TESTAUS Algoritmeja testataan 16- bittisillä signaaleilla, jotka on saatu teollisuusprosessista. Signaali 1 on hienosti käyttäytyvä lämpötilasignaali ja signaalit 2 ja 3 ovat painesignaaleja. Signaalissa 3 kohinan määrä on huomattava. Kuva 4.1: Käytetyt testisignaalit

15 Pakkaustehokkuus Ensin pyritään pakkaamaan signaalit suoraan kolmella luvussa 3 esitellyllä algoritmilla. Kaikki signaalit ovat näytettä ja ne pakkautuvat taulukon 4.1 mukaisesti. Huffmanista on ensiksi ilmoitettu yhteiskoko, joka koostuu pakatusta signaalista ja toiseksi huffman- puusta. Kaikki taulukon arvot ovat tavuja. Signaali 1 Signaali 2 Signaali 3 Pakkaamaton Jakson pituus Huffman = = = LZW Taulukko 4.1: Pakkaustehokkuus esikäsittelemättömille signaaleille Huffman ei onnistu pakkaamaan signaaleita, vaan kasvattaa kokoa miltei kaksinkertaiseksi. Pakkauksessa käytetty Huffman- puu kasvaa signaalia isommaksi. Tarkastelemalla signaalin histogrammia kuvasta 4.2 voidaan todeta tämän pitävän paikkansa, signaalin arvot ovat jakautuneet melko tasaisesti suurimmalle osalle alueesta ja entropiaan perustuva huffman ei onnistu pakkaamaan signaalia. Toistoa hyödyntävä jakson pituuden koodaus vähentää muistin käyttöä 6,4 prosentista 11,9 prosenttiin. LZW pakkaa signaalin keskimäärin 17,6 % pienemmäksi. Signaalin 3 tapauksessa Huffman on kasvattanut signaalin yli kolminkertaiseksi. Vertailun vuoksi muodostettu täysin tasajakautunut signaali kasvoi 6,8 kertaiseksi.

16 16 Kuva 4.2: Signaalin 1 histogrammi Kuva 4.3: Erotussignaalin 1 histogrammi

17 Esikäsittely erotussignaalilla Toisena kokeena pakataan testisignaalien erotussignaaleja samoilla algoritmeilla. Vertailun vuoksi kuvassa 4.3 on ensimmäisen erotussignaalin histogrammi. Histogrammi on rajattu nollan ympäristöön ja siitä puuttuu muutamia suuria negatiivisia arvoja, jotka näkyvät Kuvassa 2.1 terävinä piikkeinä alaspäin. Erotussignaali on kasvattanut arvojen esiintymistiheyttä kymmenistä näytteistä satoihin näytteisiin ja tämä on edullista pakkausalgoritmeille. Huffman:ssa on ensiksi ilmoitettu yhteiskoko, joka koostuu pakatusta signaalista ja toiseksi Huffman- puusta. Kaikki taulukon arvot ovat tavuja. Signaali 1 Signaali 2 Signaali 3 Pakkaamaton Jakson pituus Huffman 17423= = = LZW Taulukko 4.2: Pakkaustehokkuus erotussignaaleille Esiintymistiheyksien kasvusta on eniten hyötyä Huffmanin tapauksessa. Signaalit 1 ja 2 pakkautuvat hyvin, mutta voimakkaasti jakautunut kolmas signaali ei pakkaudu pakkaamatonta signaalia pienemmäksi edes erotussignaalilla. Kolmannen signaalin Huffman- pakkaus on kuitenkin pudonnut yli puoleen esikäsittelemättömään verrattuna. Jakson pituus antaa samansuuntaisia tuloksia kuin ilman esikäsittelyä. LZW:n tapauksessa kaikkien signaalien pakkaustehokkuus on kasvanut, mutta toisin kuin ensimmäisessä kohdassa signaalien välille on tullut huomattavia eroja Esikäsittely lineaarisen ennustuksen kertoimilla Kolmantena testinä signaaleille on laskettu lineaarisen ennustuksen kertoimet kymmenellä arvolla ja näillä arvoilla on suodatettu alkuperäiset signaalit. Huffmanissa on ensiksi ilmoitettu yhteiskoko, joka koostuu pakatusta signaalista ja toiseksi huffmanpuusta. Kaikki taulukon arvot ovat tavuja.

18 18 Signaali 1 Signaali 2 Signaali 3 Pakkaamaton Jakson pituus Huffman 17423= = = LZW Taulukko 4.3: Pakkaustehokkuus, kun signaalit on suodatettu LPC:n kertoimilla. LPC:n antamat kertoimet signaalille 1 lähestyvät erotussignaalia kymmenestuhannesosien tarkkuudella toisesta vanhasta näytteestä eteenpäin, joten signaalille 1 arvot ovat samat kuin edellisessä taulukossa. Lineaarisen ennustuksen kertoimilla suodatettu signaali 2 saa pakkaustuloksiksi samansuuntaisia arvoja kun erotussignaalilla. Kolmanteen testisignaaliin lineaarisilla kertoimilla suodatettu signaali toimii erotussignaalia huonommin.

19 19 5. JOHTOPÄÄTÖKSET Kaikista yksinkertaisin testattu koodaustapa, jakson pituuden koodaus, pääsi signaalista riippuen parista prosentista reiluun kymmeneen prosenttiin. Tulos oli odotetunlainen mittaussignaalille. Huffman- pakkaus osoitti selkeästi olevansa eniten riippuvainen alkuperäisen signaalin jakautumisesta. Signaalin 1 ja 2 tehokkuus kasvoi käsiteltäessä erotussignaalia, joka signaalin 1 tapauksessa vastasi lineaarisen ennustuksen antamaa tulosta. Erotussignaali on siis tälle signaalille optimaalinen esikäsittely. Toisessa ja etenkin kolmannessa signaalissa esiintyvä kohina laajensi pakkauspuun tilantarvetta, mikä vei pakkaustehokkuutta. Signaalia 3 ei onnistuttu pakkaamaan alkuperäistä pienemmäksi esikäsittelyistä huolimatta, vaikka sen kokoa saatiinkin huomattavasti pienennettyä. LZW oli kolmen testatun signaalin monikäyttöisin ja onnistui pakkaamaan kohinaisiakin signaaleja hyvin, kun Huffman ei siihen pystynyt. Algoritmin huonoksi puoleksi on luettava sen raskaus, joka on aivan eri kertaluokkaa kun muut testatut menetelmät. Kohtuullisen tehokkaalla työasemalla pitkien signaalien, 2 miljoonaa näytettä, pakkausajat lähentelivät tuntia, Huffmanin laskiessa saman kymmenissä sekunneissa. Molempien algoritmien Matlab- funktioissa on varmasti optimoinnin varaa, mutta luvut antavat kyllä suuntaa- antavan arvon.

20 20 LIITE 1 Jakson pituuden matlab- koodi, toistoa merkitään negatiivisilla arvoilla. % jakson pituus enkoodaus function jp_data = jaksonpituus(data) jp_data = int16([]); jp_data = [jp_data; data(1,1)]; laskuri = 0; for index=2:length(data) if ( data(index,1) == jp_data(,1) ) laskuri= laskuri+1; elseif ( laskuri == 0 ) rlc_data = [jp_data; data( index, 1)]; else jp_data = [jp_data; -1*laskuri ]; % tästä voi muuttaa helpost%toimimaan merkkibitillä korvaamalla -1 sopivalla kokonaisluvulla jp_data = [jp_data; data(index,1)]; laskuri = 0; if (laskuri ~= 0) jp_data = [jp_data; -1* laskuri ];

21 21 LIITE 2 Giuseppe Ridinon 2004 julkaisemaan Huffman- funktioon perustuva matlabtoteutus[5]. function [zipped,info] = norm2huff(vector) vector = vector(:)'; % frequency f = frequency(vector); % simbols presents in the vector are simbols = find(f~=0); % first value is 1 not 0!!! f = f(simbols); % sort using the frequency [f,sortindex] = sort(f); simbols = simbols(sortindex); % generate the codewords as the 52 bits of a double len = length(simbols); simbols_index = num2cell(1:len); codeword_tmp = cell(len,1); while length(f)>1, index1 = simbols_index{1}; index2 = simbols_index{2}; codeword_tmp(index1) = addnode(codeword_tmp(index1),uint16(0)); codeword_tmp(index2) = addnode(codeword_tmp(index2),uint16(1)); f = [sum(f(1:2)) f(3:)]; simbols_index = [{[index1 index2]} simbols_index(3:)]; % resort data in order to have the two nodes with lower frequency as first two [f,sortindex] = sort(f); simbols_index = simbols_index(sortindex); % arrange cell array to have correspondance simbol <-> codeword codeword = cell(65536,1); codeword(simbols) = codeword_tmp; % calculate full string length len = 0;

22 22 for index=1:length(vector), len = len+length(codeword{double(vector(index))+1}); % create the full 01 sequence string = repmat(uint16(0),1,len); pointer = 1; for index=1:length(vector), code = codeword{double(vector(index))+1}; len = length(code); string(pointer+(0:len-1)) = code; pointer = pointer+len; % calculate if it is necessary to add padding zeros len = length(string); pad = 8-mod(len,8); if pad>0, string = [string uint16(zeros(1,pad))]; % now save only usefull codewords codeword = codeword(simbols); codelen = zeros(size(codeword)); weights = 2.^(0:51); maxcodelen = 0; for index = 1:length(codeword), len = length(codeword{index}); if len>maxcodelen, maxcodelen = len; if len>0, code = sum(weights(codeword{index}==1)); code = bitset(code,len+1); codeword{index} = code; codelen(index) = len; codeword = [codeword{:}];

23 23 % calculate zipped vector cols = length(string)/8; string = reshape(string,8,cols); weights = 2.^(0:7); zipped = uint8(weights*double(string)); % store data into a sparse matrix huffcodes = sparse(1,1); % init sparse matrix for index = 1:numel(codeword), huffcodes(codeword(index),1) = simbols(index); % create info structure info.pad = pad; info.huffcodes = huffcodes; info.ratio = cols./length(vector); info.length = length(vector); info.maxcodelen = maxcodelen; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% function codeword_new = addnode(codeword_old,item) codeword_new = cell(size(codeword_old)); for index = 1:length(codeword_old), codeword_new{index} = [item codeword_old{index}]; function f = frequency(vector) f = histc(vector(:), 0:65535); f = f(:)'/sum(f); % always make a row of it return;

24 24 LIITE 3 Giuseppe Ridinon 2004 julkaisemaan lzw- funktioon perustuva matlab- toteutus[6]. function [output,table] = norm2lzw(vector) %NORM2LZW LZW Data Compression (encoder) % For vectors, NORM2LZW(X) is the compressed vector of X using the LZW algorithm. % [...,T] = NORM2LZW(X) returns also the table that the algorithm produces. % % For matrices, X(:) is used as input. % % Input must be of uint8 type, while the output is a uint16. % Table is a cell array, each element containig the corresponding code. % % This is an implementation of the algorithm presented in the article % % % See also LZW2NORM % $Author: Giuseppe Ridino' $ % $Revision: 1.0 $ $Date: 10-May :16:08 $ % How it encodes: % % STRING = get input character % WHILE there are still input characters DO % CHARACTER = get input character % IF STRING+CHARACTER is in the string table then % STRING = STRING+character % ELSE % output the code for STRING % add STRING+CHARACTER to the string table % STRING = CHARACTER % END of IF % END of WHILE % output the code for STRING

25 25 % ensure to handle uint8 input vector %if ~isa(vector,'uint8'), % error('input argument must be a uint8 vector') % % vector as uint16 row vector = uint16(vector(:)'); % initialize table (don't use cellstr because char(10) will be turned to empty!!!) table = cell(1,256); for index = 1:256, table{index} = uint16(index-1); % initialize output output = vector; % main loop outputindex = 1; startindex = 1; for index=2:length(vector), element = vector(index); substr = vector(startindex:(index-1)); code = getcodefor([substr element],table); if isempty(code), % add it to the table output(outputindex) = getcodefor(substr,table); [table,code] = addcode(table,[substr element]); outputindex = outputindex+1; startindex = index; else, % go on looping substr = vector(startindex:index); output(outputindex) = getcodefor(substr,table); % remove not used positions output((outputindex+1):) = [];

26 26 % ############################################### function code = getcodefor(substr,table) code = uint16([]); if length(substr)==1, code = substr; else, % this is to skip the first 256 known positions for index=257:length(table), if isequal(substr,table{index}), code = uint16(index-1); % start from 0 break function [table,code] = addcode(table,substr) code = length(table)+1; % start from 1 table{code} = substr; code = uint16(code-1); % start from 0

27 LÄHTEET [1] Parsons, T., Voice and Speech Processing,, McGraw-Hill. pp , [2] Salomon, D., Data Compression The complete reference, Springer-Verlag London Limited. pp , [3] Smith, S. W., The Scientist and Engineer's Guide to Digital Signal Processing, California Technical Publishing. 488s, [4] Ascii- taulukko [WWW]. [viitattu ]. Saatavissa: [5] Huffman koodi Matlab:yn [WWW]. [viitattu ]. Saatavissa: [6] LZW koodi Matlab:yn [WWW]. [viitattu ]. Saatavissa:

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä?

Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? Ongelma 1: Onko datassa tai informaatiossa päällekkäisyyttä? 2012-2013 Lasse Lensu 2 Ongelma 2: Voidaanko dataa tai informaatiota tallettaa tiiviimpään tilaan koodaamalla se uudelleen? 2012-2013 Lasse

Lisätiedot

Matias Sumanen Mittaussignaalin häviötön pakkaaminen. Kandidaatintyö

Matias Sumanen Mittaussignaalin häviötön pakkaaminen. Kandidaatintyö Matias Sumanen Mittaussignaalin häviötön pakkaaminen Kandidaatintyö Tarkastaja: Yliopistonlehtori Heikki Huttunen Jätetty tarkastettavaksi: 17.5.2015 2 TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Signaalinkäsittelyn

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Algoritmit 2. Luento 10 To Timo Männikkö

Algoritmit 2. Luento 10 To Timo Männikkö Algoritmit 2 Luento 10 To 11.4.2019 Timo Männikkö Luento 10 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutusmenetelmä Osajoukon summa Algoritmit 2 Kevät 2019 Luento 10 To

Lisätiedot

Määrittelydokumentti

Määrittelydokumentti Määrittelydokumentti Aineopintojen harjoitustyö: Tietorakenteet ja algoritmit (alkukesä) Sami Korhonen 014021868 sami.korhonen@helsinki. Tietojenkäsittelytieteen laitos Helsingin yliopisto 23. kesäkuuta

Lisätiedot

Nopea kertolasku, Karatsuban algoritmi

Nopea kertolasku, Karatsuban algoritmi Nopea kertolasku, Karatsuban algoritmi Mikko Männikkö 16.8.2004 Lähde: ((Gathen and Gerhard 1999) luku II.8) Esityksen kulku Algoritmien analysointia (1), (2), (3), (4) Klassinen kertolasku Parempi tapa

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku

Lisätiedot

MICHAEL SITTIG ÄÄNEN HÄVIÖTÖN PAKKAAMINEN. Kandidaatintyö

MICHAEL SITTIG ÄÄNEN HÄVIÖTÖN PAKKAAMINEN. Kandidaatintyö MICHAEL SITTIG ÄÄNEN HÄVIÖTÖN PAKKAAMINEN Kandidaatintyö Tarkastaja: lehtori Konsta Koppinen Työ jätetty tarkastettavaksi 24. toukokuuta 2010 II TIIVISTELMÄ TAMPEREEN TEKNILLINEN YLIOPISTO Tietotekniikan

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018

BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018 BM20A5840 Usean muuttujan funktiot ja sarjat Harjoitus 7, Kevät 2018 Tehtävä 8 on tällä kertaa pakollinen. Aloittakaapa siitä. 1. Kun tässä tehtävässä sanotaan sopii mahdollisimman hyvin, sillä tarkoitetaan

Lisätiedot

Algoritmit 2. Luento 13 Ti Timo Männikkö

Algoritmit 2. Luento 13 Ti Timo Männikkö Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019

Lisätiedot

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Tietorakenteet, laskuharjoitus 7, ratkaisuja Tietorakenteet, laskuharjoitus, ratkaisuja. Seuraava kuvasarja näyttää B + -puun muutokset lisäysten jälkeen. Avaimet ja 5 mahtuvat lehtisolmuihin, joten niiden lisäys ei muuta puun rakennetta. Avain 9

Lisätiedot

4 Tehokkuus ja algoritmien suunnittelu

4 Tehokkuus ja algoritmien suunnittelu TIE-20100 Tietorakenteet ja algoritmit 52 4 Tehokkuus ja algoritmien suunnittelu Tässä luvussa pohditaan tehokkuuden käsitettä ja esitellään kurssilla käytetty kertaluokkanotaatio, jolla kuvataan algoritmin

Lisätiedot

The CCR Model and Production Correspondence

The CCR Model and Production Correspondence The CCR Model and Production Correspondence Tim Schöneberg The 19th of September Agenda Introduction Definitions Production Possiblity Set CCR Model and the Dual Problem Input excesses and output shortfalls

Lisätiedot

Jatkuvat satunnaismuuttujat

Jatkuvat satunnaismuuttujat Jatkuvat satunnaismuuttujat Satunnaismuuttuja on jatkuva jos se voi ainakin periaatteessa saada kaikkia mahdollisia reaalilukuarvoja ainakin tietyltä väliltä. Täytyy ymmärtää, että tällä ei ole mitään

Lisätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti

Luku 6. Dynaaminen ohjelmointi. 6.1 Funktion muisti Luku 6 Dynaaminen ohjelmointi Dynaamisessa ohjelmoinnissa on ideana jakaa ongelman ratkaisu pienempiin osaongelmiin, jotka voidaan ratkaista toisistaan riippumattomasti. Jokaisen osaongelman ratkaisu tallennetaan

Lisätiedot

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 811122P (5 op.) 12.12.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen: S A S B Samaan jäsennyspuuhun päästään myös johdolla S AB Ab ab: S A S B Yhteen jäsennyspuuhun liittyy aina tasan yksi vasen

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 2 To 8.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 2 To 8.9.2011 p. 1/33 p. 1/33 Lukujen tallennus Kiintoluvut (integer) tarkka esitys aritmeettiset operaatiot

Lisätiedot

Dynamiikan hallinta Lähde: Zölzer. Digital audio signal processing. Wiley & Sons, 2008. Zölzer (ed.) DAFX Digital Audio Effects. Wiley & Sons, 2002.

Dynamiikan hallinta Lähde: Zölzer. Digital audio signal processing. Wiley & Sons, 2008. Zölzer (ed.) DAFX Digital Audio Effects. Wiley & Sons, 2002. Dynamiikan hallinta Lähde: Zölzer. Digital audio signal processing. Wiley & Sons, 2008. Zölzer (ed. DAFX Digital Audio Effects. Wiley & Sons, 2002. Sisältö:! Johdanto!! Ajallinen käyttäytyminen! oteutus!

Lisätiedot

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM

Puheenkoodaus. Olivatpa kerran iloiset serkukset. PCM, DPCM ja ADPCM Puheenkoodaus Olivatpa kerran iloiset serkukset PCM, DPCM ja ADPCM PCM eli pulssikoodimodulaatio Koodaa jokaisen signaalinäytteen binääriseksi (eli vain ykkösiä ja nollia sisältäväksi) luvuksi kvantisointitasolle,

Lisätiedot

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

Avainsanat ja sanonnat: Tiedonpakkaus, algoritmit, Huffmanin koodaus, aritmeettinen koodaus, sanakirjat, informaatioteoria. CR luokat: E.

Avainsanat ja sanonnat: Tiedonpakkaus, algoritmit, Huffmanin koodaus, aritmeettinen koodaus, sanakirjat, informaatioteoria. CR luokat: E. Häviöttömät tiedonpakkausalgoritmit Jukka Pollari Tiivistelmä. Tässä tutkielmassa käsitellään häviöttömiä pakkausalgoritmeja, tarkemmin määriteltynä sellaisia, joilla voidaan pakata kaikenlaista dataa.

Lisätiedot

Ohjelmointi 1 C#, kevät 2013,

Ohjelmointi 1 C#, kevät 2013, Ohjelmointi 1 C#, kevät 2013, 19.4.2013 (English versions of the questions can be requested from the supervisor. Englanninkieliset kysymykset saa pyytämällä tentin valvojalta.) Tentti (yliopisto opiskelijat)

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin

Lisätiedot

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n

Lisätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 11.08.2010 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto) 811 Tietorakenteet (kevät 9) Harjoitus 11, ratkaisuja (Topi Musto) 1. Bellmanin-Fordin algoritmin alustusvaiheen jälkeen aloitussolmussa on arvo ja muissa solmuissa on arvo ääretön. Kunkin solmun arvo

Lisätiedot

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL

FinFamily PostgreSQL installation ( ) FinFamily PostgreSQL FinFamily PostgreSQL 1 Sisällys / Contents FinFamily PostgreSQL... 1 1. Asenna PostgreSQL tietokanta / Install PostgreSQL database... 3 1.1. PostgreSQL tietokannasta / About the PostgreSQL database...

Lisätiedot

Tilastollinen vastepintamallinnus: kokeiden suunnittelu, regressiomallin analyysi, ja vasteen optimointi. Esimerkit laskettu JMP:llä

Tilastollinen vastepintamallinnus: kokeiden suunnittelu, regressiomallin analyysi, ja vasteen optimointi. Esimerkit laskettu JMP:llä Tilastollinen vastepintamallinnus: kokeiden suunnittelu, regressiomallin analyysi, ja vasteen optimointi Esimerkit laskettu JMP:llä Antti Hyttinen Tampereen teknillinen yliopisto 29.12.2003 ii Ohjelmien

Lisätiedot

5 Lineaarinen ennustus

5 Lineaarinen ennustus 5 Lineaarinen ennustus Lineaarinen ennustus (linear prediction, LP) on yksi tärkeimmistä puheenkäsittelyn työkaluista Sitä voidaan eri tilanteessa käyttää eri tavoilla, mutta puheenkäsittelyn kannalta

Lisätiedot

Capacity Utilization

Capacity Utilization Capacity Utilization Tim Schöneberg 28th November Agenda Introduction Fixed and variable input ressources Technical capacity utilization Price based capacity utilization measure Long run and short run

Lisätiedot

Algoritmit 1. Luento 11 Ti Timo Männikkö

Algoritmit 1. Luento 11 Ti Timo Männikkö Algoritmit 1 Luento 11 Ti 14.2.2017 Timo Männikkö Luento 11 Algoritminen ongelmanratkaisu Osittaminen Lomituslajittelu Lomituslajittelun vaativuus Rekursioyhtälöt Pikalajittelu Algoritmit 1 Kevät 2017

Lisätiedot

Python-ohjelmointi Harjoitus 5

Python-ohjelmointi Harjoitus 5 Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät

Lisätiedot

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö

Johdatus diskreettiin matematiikkaan Harjoitus 5, Ratkaise rekursioyhtälö Johdatus diskreettiin matematiikkaan Harjoitus 5, 14.10.2015 1. Ratkaise rekursioyhtälö x n+4 2x n+2 + x n 16( 1) n, n N, alkuarvoilla x 1 2, x 2 14, x 3 18 ja x 4 42. Ratkaisu. Vastaavan homogeenisen

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö

Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Lausekielinen ohjelmointi II Ensimmäinen harjoitustyö Yleistä Tehtävä: Tee Javalla StringStats-ohjelma, joka laskee esikäsittelemästään merkkijonosta joitakin tunnuslukuja. Lausekielinen ohjelmointi II

Lisätiedot

SIMULINK S-funktiot. SIMULINK S-funktiot

SIMULINK S-funktiot. SIMULINK S-funktiot S-funktio on ohjelmointikielellä (Matlab, C, Fortran) laadittu oma algoritmi tai dynaamisen järjestelmän kuvaus, jota voidaan käyttää Simulink-malleissa kuin mitä tahansa valmista lohkoa. S-funktion rakenne

Lisätiedot

Operatioanalyysi 2011, Harjoitus 2, viikko 38

Operatioanalyysi 2011, Harjoitus 2, viikko 38 Operatioanalyysi 2011, Harjoitus 2, viikko 38 H2t1, Exercise 1.1. H2t2, Exercise 1.2. H2t3, Exercise 2.3. H2t4, Exercise 2.4. H2t5, Exercise 2.5. (Exercise 1.1.) 1 1.1. Model the following problem mathematically:

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

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

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A. Tehtävä. Tämä tehtävä on aineistotehtävä, jossa esitetään ensin tehtävän teoria. Sen jälkeen esitetään neljä kysymystä, joissa tätä teoriaa pitää soveltaa. Mitään aikaisempaa tehtävän aihepiirin tuntemusta

Lisätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin

Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin lukuun 7 eli vapauden käsitteeseen ja homogeenisiin HY / Avoin yliopisto Lineaarialgebra ja matriisilaskenta I, kesä 2015 Harjoitus 4 Ratkaisut palautettava viimeistään maanantaina 862015 klo 1615 Tehtäväsarja I Seuraavat tehtävät liittyvät kurssimateriaalin

Lisätiedot

Laskennallisesti Älykkäät Järjestelmät. Sumean kmeans ja kmeans algoritmien vertailu

Laskennallisesti Älykkäät Järjestelmät. Sumean kmeans ja kmeans algoritmien vertailu Laskennallisesti Älykkäät Järjestelmät Sumean kmeans ja kmeans algoritmien vertailu Annemari Auvinen (annauvi@st.jyu.fi) Anu Niemi (anniemi@st.jyu.fi) 28.5.2002 1 Tehtävän kuvaus Tehtävänämme oli verrata

Lisätiedot

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

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

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja

Lisätiedot

T-61.246 DSP: GSM codec

T-61.246 DSP: GSM codec T-61.246 DSP: GSM codec Agenda Johdanto Puheenmuodostus Erilaiset codecit GSM codec Kristo Lehtonen GSM codec 1 Johdanto Analogisen puheen muuttaminen digitaaliseksi Tiedon tiivistäminen pienemmäksi Vähentää

Lisätiedot

Matematiikka ja teknologia, kevät 2011

Matematiikka ja teknologia, kevät 2011 Matematiikka ja teknologia, kevät 2011 Peter Hästö 3. helmikuuta 2011 Matemaattisten tieteiden laitos Sisältö Kurssi koostuu kuudesta (seitsemästä) toisistaan riippumattomasta luennosta. Aihepiirit ovat:

Lisätiedot

Signaalien generointi

Signaalien generointi Signaalinkäsittelyssä joudutaan usein generoimaan erilaisia signaaleja keinotekoisesti. Tyypillisimpiä generoitavia aaltomuotoja ovat eritaajuiset sinimuotoiset signaalit (modulointi) sekä normaalijakautunut

Lisätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31) Juha Kahkonen Click here if your download doesn"t start automatically On instrument costs

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Taulukon edut Taulukon haitat Taulukon haittojen välttäminen Dynaamisesti linkattu lista Linkatun listan solmun määrittelytavat Lineaarisen listan toteutus dynaamisesti linkattuna

Lisätiedot

Zeon PDF Driver Trial

Zeon PDF Driver Trial Matlab-harjoitus 2: Kuvaajien piirto, skriptit ja funktiot. Matlabohjelmoinnin perusteita Numeerinen integrointi trapezoidaalimenetelmällä voidaan tehdä komennolla trapz. Esimerkki: Vaimenevan eksponentiaalin

Lisätiedot

Kompleksiluvut signaalin taajuusjakauman arvioinnissa

Kompleksiluvut signaalin taajuusjakauman arvioinnissa Kompleksiluvut signaalin taajuusjakauman arvioinnissa Vierailuluento IMA-kurssilla Heikki Huttunen Lehtori, TkT Signaalinkäsittely, TTY heikki.huttunen@tut.fi Department of Signal Processing Fourier-muunnos

Lisätiedot

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1

. Kun p = 1, jono suppenee raja-arvoon 1. Jos p = 2, jono hajaantuu. Jono suppenee siis lineaarisesti. Vastaavasti jonolle r k+1 = r k, suhde on r k+1 TEKNILLINEN KORKEAKOULU Systeemianalyysin laboratorio Mat-.39 Optimointioppi Kimmo Berg 8. harjoitus - ratkaisut. a)huomataan ensinnäkin että kummankin jonon raja-arvo r on nolla. Oletetaan lisäksi että

Lisätiedot

Luku 8. Aluekyselyt. 8.1 Summataulukko

Luku 8. Aluekyselyt. 8.1 Summataulukko Luku 8 Aluekyselyt Aluekysely on tiettyä taulukon väliä koskeva kysely. Tyypillisiä aluekyselyitä ovat, mikä on taulukon välin lukujen summa tai pienin luku välillä. Esimerkiksi seuraavassa taulukossa

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 12. huhtikuuta 2019 Tee kukin tehtävä omalle konseptiarkille. Noudata ohjelmointitehtävissä kurssin koodauskäytänteitä. Yksi A4-kokoinen lunttilappu

Lisätiedot

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus) VISUAL BASIC OHJEITA Kutsuttava ohjelma alkaa kometoparilla Sub... End Sub Sub ohjelmanimi()...koodia... End Sub Muuttujat Muuttujan esittely Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency,

Lisätiedot

Kuvan pakkaus JPEG (Joint Photographic Experts Group)

Kuvan pakkaus JPEG (Joint Photographic Experts Group) Kuvan pakkaus JPEG (Joint Photographic Experts Group) Arne Broman Mikko Toivonen Syksy 2003 Historia 1840 1895 1920-luku 1930-luku Fotografinen filmi Louis J. M. Daguerre, Ranska Ensimmäinen julkinen elokuva

Lisätiedot

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

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5) Alkuarvot ja tyyppimuunnokset (1/5) Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123; Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku,

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

MAA02. A-osa. 1. Ratkaise. a) x 2 + 6x = 0 b) (x + 4)(x 4) = 9 a) 3x 6x

MAA02. A-osa. 1. Ratkaise. a) x 2 + 6x = 0 b) (x + 4)(x 4) = 9 a) 3x 6x MAA0 A-osa. Ratkaise. a) x + 6x = 0 b) (x + 4)(x 4) = 9 a) 3x 6x a) Kirjoitetaan summa x + 6x yhteisen tekijän avulla tulomuotoon ja ratkaistaan yhtälö tulon nollasäännön avulla. x + 6x = 0 x(x + 6) =

Lisätiedot

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005

Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin (alkua) TIEA341 Funktio ohjelmointi 1 Syksy 2005 Esimerkki: Laskin Liukulukulaskentaa Yhteen, vähennys, kerto ja jakolaskut Syötteenä laskutehtävä, tulosteena tulos tai virheilmoitus

Lisätiedot

10. Painotetut graafit

10. Painotetut graafit 10. Painotetut graafit Esiintyy monesti sovelluksia, joita on kätevä esittää graafeina. Tällaisia ovat esim. tietoverkko tai maantieverkko. Näihin liittyy erinäisiä tekijöitä. Tietoverkkoja käytettäessä

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 4 To 15.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 4 To 15.9.2011 p. 1/38 p. 1/38 Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä matriisimuodossa Ax = b

Lisätiedot

4 Yleinen potenssifunktio ja polynomifunktio

4 Yleinen potenssifunktio ja polynomifunktio 4 Yleinen potenssifunktio ja polynomifunktio ENNAKKOTEHTÄVÄT 1. a) Tutkitaan yhtälöiden ratkaisuja piirtämällä funktioiden f(x) = x, f(x) = x 3, f(x) = x 4 ja f(x) = x 5 kuvaajat. Näin nähdään, monessako

Lisätiedot

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

System.out.printf(%d / %d = %.2f%n, ekaluku, tokaluku, osamaara); Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan

Lisätiedot

T Luonnollisten kielten tilastollinen käsittely

T Luonnollisten kielten tilastollinen käsittely T-61.281 Luonnollisten kielten tilastollinen käsittely Vastaukset 3, ti 11.2.2003, 16:15-18:00 Kollokaatiot, Versio 1.1 1. Lasketaan ensin tulokset sanaparille valkoinen, talo käsin: Frekvenssimenetelmä:

Lisätiedot

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti. Tietorakenteet, laskuharjoitus 11, ratkaisuja 1. Leveyssuuntaisen läpikäynnin voi toteuttaa rekursiivisesti käsittelemällä jokaisella rekursiivisella kutsulla kaikki tietyllä tasolla olevat solmut. Rekursiivinen

Lisätiedot

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012 Luento 6: Tiedon esittäminen tietokoneessa, osa 1 Tekijät: Antti Virtanen, Timo Lehtonen, Matti Kujala, Kirsti Ala-Mutka, Petri M. Gerdt et al. Luennon

Lisätiedot

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt

Yhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

Matematiikan tukikurssi

Matematiikan tukikurssi Matematiikan tukikurssi Kurssikerta 9 1 Implisiittinen derivointi Tarkastellaan nyt yhtälöä F(x, y) = c, jossa x ja y ovat muuttujia ja c on vakio Esimerkki tällaisesta yhtälöstä on x 2 y 5 + 5xy = 14

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2016-2017 2. Lukujen esittäminen ja aritmetiikka 2.1 Kantajärjestelmät ja lukujen esittäminen Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,... } Positiiviset kokonaisluvut

Lisätiedot

MAB3 - Harjoitustehtävien ratkaisut:

MAB3 - Harjoitustehtävien ratkaisut: MAB - Harjoitustehtävien ratkaisut: Funktio. Piirretään koordinaatistoakselit ja sijoitetaan pisteet:. a) Funktioiden nollakohdat löydetään etsimällä kuvaajien ja - akselin leikkauspisteitä. Funktiolla

Lisätiedot

2. TILASTOLLINEN TESTAAMINEN...

2. TILASTOLLINEN TESTAAMINEN... !" # 1. 1. JOHDANTO... 3 2. 2. TILASTOLLINEN TESTAAMINEN... 4 2.1. T-TESTI... 4 2.2. RANDOMISAATIOTESTI... 5 3. SIMULOINTI... 6 3.1. OTOSTEN POIMINTA... 6 3.2. TESTAUS... 7 3.3. TESTIEN TULOSTEN VERTAILU...

Lisätiedot

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1 Tietorakenteet ja algoritmit syksy 2012 Laskuharjoitus 1 1. Tietojenkäsittelijä voi ajatella logaritmia usein seuraavasti: a-kantainen logaritmi log a n kertoo, kuinka monta kertaa luku n pitää jakaa a:lla,

Lisätiedot

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2

ja λ 2 = 2x 1r 0 x 2 + 2x 1r 0 x 2 Johdatus diskreettiin matematiikkaan Harjoitus 4, 7.10.2015 1. Olkoot c 0, c 1 R siten, että polynomilla r 2 c 1 r c 0 on kaksinkertainen juuri. Määritä rekursioyhtälön x n+2 = c 1 x n+1 + c 0 x n, n N,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

811120P Diskreetit rakenteet

811120P Diskreetit rakenteet 811120P Diskreetit rakenteet 2018-2019 1. Algoritmeista 1.1 Algoritmin käsite Algoritmi keskeinen laskennassa Määrittelee prosessin, joka suorittaa annetun tehtävän Esimerkiksi Nimien järjestäminen aakkosjärjestykseen

Lisätiedot

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti

SGN-1200 Signaalinkäsittelyn menetelmät, Tentti SG-1200 Signaalinkäsittelyn menetelmät, Tentti 21.3.2006 Kirjoita nimesi ja opiskelijanumerosi jokaiseen paperiin. Vastauspaperit tullaan irrottamaan toisistaan. Jos tila ei riitä, jatka kääntöpuolelle

Lisätiedot

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,

Lisätiedot

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007 Jaetun muistin muuntaminen viestin välitykseksi Otto Räsänen 15. lokakuuta 2007 1 Motivaatio 2 Valtuuden välitys Peruskäsitteitä 3 Kolme algoritmia Valtuuden välitys käyttäen laskuria ilman ylärajaa Valtuuden

Lisätiedot

Lineaarinen yhtälöryhmä

Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä 1 / 39 Lineaarinen yhtälö Määritelmä 1 Lineaarinen yhtälö on muotoa a 1 x 1 + a 2 x 2 + + a n x n = b, missä a i, b R, i = 1,..., n ovat tunnettuja ja x i R, i = 1,..., n ovat tuntemattomia.

Lisätiedot

Algoritmit 2. Demot Timo Männikkö

Algoritmit 2. Demot Timo Männikkö Algoritmit 2 Demot 4 24.-25.4.2019 Timo Männikkö Tehtävä 1 (a) int laske(n) { if (n

Lisätiedot

(c) Kuinka suuri suhteellinen virhe painehäviön laskennassa tehdään, jos virtaus oletetaan laminaariksi?

(c) Kuinka suuri suhteellinen virhe painehäviön laskennassa tehdään, jos virtaus oletetaan laminaariksi? Tehtävä 1 Vettä (10 astetta) virtaa suorassa valurautaisessa (cast iron) putkessa, jonka sisähalkaisija on 100 mm ja pituus 70 m. Tilavuusvirta on 15 litraa minuutissa. (a) Osoita, että virtaus on turbulenttia.

Lisätiedot

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva

6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva 6.3. AVR_rauta. EEPROM-muisti 09.12.2007 pva Experience is what causes people to make new mistakes instead of old ones... - Unknown Sisältö Yleistä EEPROM-rekisterit Protoilu-ohje EEPROMmista ja Fuse-biteistä

Lisätiedot

Aluksi. 1.1. Kahden muuttujan lineaarinen yhtälö

Aluksi. 1.1. Kahden muuttujan lineaarinen yhtälö Aluksi Matematiikan käsite suora on tarkalleen sama asia kuin arkikielen suoran käsite. Vai oliko se toisinpäin? Matematiikan luonteesta johtuu, että sen soveltaja ei tyydy pelkkään suoran nimeen eikä

Lisätiedot

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

SGN-1200 Signaalinkäsittelyn menetelmät Välikoe SGN-00 Signaalinkäsittelyn menetelmät Välikoe 9.3.009 Sivuilla - on. Älä vastaa siihen, jos et ollut ensimmäisessä välikokeessa. Tentin kysymykset ovat sivuilla 3-4. Vastaa vain jompaan kumpaan kokeeseen,

Lisätiedot

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4 BM0A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 5, Syksy 05. (a) i. Jotta vektori c sijaitsisi a:n ja b:n virittämällä tasolla, c on voitava esittää a:n ja b:n lineaarikombinaationa. c ta + sb

Lisätiedot

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä.

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 7: Pienimmän neliösumman menetelmä ja Newtonin menetelmä. Antti Rasila Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kevät 2016

Lisätiedot

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet, syksy 2006 Ohjelmoinnin perusteet, syksy 2006 Esimerkkivastaukset 1. harjoituksiin. Alkuperäiset esimerkkivastaukset laati Jari Suominen. Vastauksia muokkasi Jukka Stenlund. 1. Esitä seuraavan algoritmin tila jokaisen

Lisätiedot

Datatähti 2019 loppu

Datatähti 2019 loppu Datatähti 2019 loppu task type time limit memory limit A Summa standard 1.00 s 512 MB B Bittijono standard 1.00 s 512 MB C Auringonlasku standard 1.00 s 512 MB D Binääripuu standard 1.00 s 512 MB E Funktio

Lisätiedot