• No results found

Archivace posloupnost´ı hodnot mˇeˇren´ych veliˇcin elektrick´e energie

N/A
N/A
Protected

Academic year: 2022

Share "Archivace posloupnost´ı hodnot mˇeˇren´ych veliˇcin elektrick´e energie"

Copied!
53
0
0

Loading.... (view fulltext now)

Full text

(1)

Archivace posloupnost´ı hodnot mˇ eˇ ren´ ych veliˇ cin elektrick´ e energie

Bakal´ aˇ rsk´ a pr´ ace

Studijn´ı program: B2646 – Informaˇcn´ı technologie Studijn´ı obor: 1802R007 – Informaˇcn´ı technologie Autor pr´ace: Martin Vondr´aˇcek

Vedouc´ı pr´ace: Ing. Jan Kraus, Ph.D.

(2)

Archive for time series values measured from power monitoring

Bachelor thesis

Study programme: B2646 – Information technology Study branch: 1802R007 – Information Technology Author: Martin Vondr´aˇcek

Supervisor: Ing. Jan Kraus, Ph.D.

(3)

Zadání bakalářské práce

Archivace posloupností hodnot

měřených veličin elektrické energie

Jméno a příjmení: Martin Vondráček Osobní číslo: M16000063

Studijní program: B2646 Informační technologie Studijní obor: Informační technologie

Zadávající katedra: Ústav mechatroniky a technické informatiky Akademický rok: 2018/2019

Zásady pro vypracování:

1. Seznamte se s obsahem archivů měření kvality elektrické energie a s významem jednotlivých ukládaných veličin.

2. Na větším množství různých měření sledujte charakteristické vlastnosti posloupností vybraných měřených hodnot a na základě pozorování navrhněte vhodný způsob kódování a komprimace těchto dat.

3. Důkladně prověřte výkonnost Vámi navržených metod a použitých kompresních knihoven v prostředí .NET(C#) po stránce objemu dat a rychlosti čtení i zápisu.

4. Dosažené výsledky shrňte a diskutujte přehledným způsobem v průvodní zprávě.

(4)

Rozsah grafických prací: dle potřeby dokumentace Rozsah pracovní zprávy: 30–40 stran

Forma zpracování práce: tištěná/elektronická

Seznam odborné literatury:

[1] ALBU, Mihaela M., et al. Monitoring voltage and frequency in smart distribution grids. A case study on data compression and accessibility. In: IEEE PES General Meeting. IEEE, 2010. p. 1-6.

[2] RINGWELSKI, Martin, et al. The Hitchhiker’s guide to choosing the compression algorithm for your smart meter data. In: Energy Conference and Exhibition (ENERGYCON), 2012 IEEE International. IEEE, 2012. p.

935-940.

[3] TCHEOU, Michel P., et al. The compression of electric signal waveforms for smart grids: State of the art and future trends. IEEE Transactions on Smart Grid, 2014, 5.1: 291-302.

[4] NELSON, Mark; GAILLY, Jean-Loup. The data compression book. New York: M&t Books, 1996.

[5] MSDN. System.IO.Compression Namespace [online]. [cit. 2016-10-12]. Dostupné z:

https://msdn.microsoft.com/en-us/library/system.io.compression(v=vs.110).aspx.

Vedoucí práce: Ing. Jan Kraus, Ph.D.

Ústav mechatroniky a technické informatiky Datum zadání práce: 10. října 2018

Předpokládaný termín odevzdání: 30. dubna 2019

L. S.

prof. Ing. Zdeněk Plíva, Ph.D.

děkan

doc. Ing. Milan Kolář, CSc.

vedoucí ústavu V Liberci 10. října 2018

(5)

Prohlášení

Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vzta- huje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé bakalářské práce pro vnitřní potřebu TUL.

Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto pří- padě má TUL právo ode mne požadovat úhradu nákladů, které vyna- ložila na vytvoření díla, až do jejich skutečné výše.

Bakalářskou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím mé bakalářské práce a konzultantem.

Současně čestně prohlašuji, že texty tištěné verze práce a elektronické verze práce vložené do IS STAG se shodují.

28. 4. 2019 Martin Vondráček

(6)

Podˇ ekov´ an´ı

Dˇekuji sv´emu vedouc´ımu Janu Krausovi za pomoc a ˇcas, kter´y mi vˇenoval pˇri vytv´aˇren´ı t´eto pr´ace. Dalˇs´ı d´ık patˇr´ı Janu Vyˇsohl´ıdovi za technickou podporu pˇri vytv´aˇren´ı t´eto zpr´avy. Nakonec chci podˇekovat sv´ym rodiˇc˚um za hojnou psychickou i materi´aln´ı pod- poru.

(7)

Abstrakt

Tato pr´ace se vˇenuje r˚uzn´ym zp˚usob˚um komprese bin´arn´ıch sou- bor˚u, kter´e obsahuj´ı mˇeˇren´ı elektrick´ych veliˇcin. Po pˇredstaven´ı pouˇz´ıvan´ych kompresn´ıch algoritm˚u a k´odov´an´ı dat je ˇcten´aˇr sezn´amen s ukl´adan´ymi veliˇcinami vyskytuj´ıc´ımi se v archivech mˇeˇren´ı elektrick´e energie. N´asleduje testov´an´ı zvolen´ych kom- presn´ıch algoritm˚u na re´aln´ych datech. Ve vˇsech prov´adˇen´ych testech se ke kompresi pouˇz´ıvaj´ı bezeztr´atov´e algoritmy Lzma, Bzip2 a Deflate, u kter´ych se analyzuje a zaznamen´av´a jejich efek- tivita a ˇcasov´a n´aroˇcnost. Pˇred kompres´ı tˇemito algoritmy se data r˚uznˇe pˇredbˇeˇznˇe zpracov´avaj´ı, aby bylo moˇzn´e porovnat efektivitu komprese pˇri r˚uzn´e reprezentaci dat v souborech. V´ysledky jsou mezi sebou porovn´any a n´aslednˇe se vyvozuj´ı z´avˇery o vlastnostech a chov´an´ı jednotliv´ych zp˚usob˚u komprese. Za nejv´yhodnˇejˇs´ı zp˚usob pˇredbˇeˇzn´eho zpracov´an´ı je oznaˇcena kombinace delta k´odov´an´ı a pevn´e ˇr´adov´e ˇc´arky.

Druh´a ˇc´ast pr´ace se zab´yv´a pˇredstaven´ım zat´ım netestovan´eho ztr´atov´eho zp˚usobu komprese. Pˇri pˇredbˇeˇzn´em zpracov´an´ı se vyuˇz´ıv´a tˇr´ıda pˇresnosti mˇeˇr´ıc´ıch pˇr´ıstroj˚u k v´yhodn´e ´upravˇe dat.

Navrˇzen´a technika je pot´e analyzov´ana z hlediska sv´ych parametr˚u a ozkouˇsena na datech. Testov´ano je i chov´an´ı algoritmu pˇri r˚uzn´e reprezentaci dat. Opˇet jsou ozkouˇseny kompresn´ı algoritmy Lzma, Bzip2 a Deflate. Podrobn´e v´ysledky jsou obsaˇzeny v t´eto zpr´avˇe.

Jako nejv´ykonnˇejˇs´ı kompresn´ı algoritmus je zvolen Lzma.

Vˇsechny kompresn´ı techniky jsou testovan´e na vˇetˇs´ım mnoˇzstv´ı dat.

(Poˇcet hodnot pro jedno mˇeˇren´ı elektrick´e veliˇciny se pohybuje mezi 4 a 10 miliony hodnot.) Veˇsker´e testov´an´ı se prov´ad´ı v C#.

Kl´ıˇcov´a slova: ztr´atov´a a bezeztr´atov´a komprese, kompresn´ı al- goritmy, tˇr´ıda pˇresnosti, mˇeˇren´ı elektrick´e energie, Lzma, Bzip2, Deflate

(8)

Abstract

This work deals with various compression techniques, that are used to compress binary files, that contain measurements of electricity.

Following the presentation of some popular compression algorithms and encodings, reader is acquainted with measurements of electri- cal energy stored in electrical energy archives. Chosen compression techniques are tested on real data. During all tests, tested algo- rithms are Bzip2, Lzma and Deflate. Their performace is rated by their compression ratio and time duration of the compression.

Before the compression by the mentioned algorithms, the data is variously pre-processed so that I can evaluate different data repre- sentations. Results are evaluated and algorithm’s important traits are analysed. Combination of delta encoding and fixed point rep- resentation is chosen as the best suited compression technique.

Second part of the work is about introduction of new compression process. This technique uses accuracy class in the pre-processing part of compression to homogenize the data. Results of various tests of this technique as well as it’s detailed description is recorded here.

Lzma is chosen as the most suitable compression algorithm.

All the compression techniques are tested on the large amount of data (One measurement contains form 4 to 10 milion values.) The tests are conducted in C#.

Keywords: lossy and lossless compression, compression algo- rithms, accuracy class, electricity measurement, Lzma, Bzip2, De- flate

(9)

Obsah

Seznam zkratek . . . 14

1 Uvod´ 15 2 Teoretick´a ˇc´ast 16 2.1 D˚uleˇzit´e pojmy . . . 16

2.1.1 Stupeˇn komprese . . . 16

2.1.2 Tˇr´ıda pˇresnosti . . . 16

2.1.3 Diferenci´aln´ı k´odov´an´ı . . . 17

2.1.4 Pevn´e a plovouc´ı ˇr´adov´e ˇc´arky . . . 18

2.1.5 Stˇredn´ı kvadratick´a chyba (RMSE) a Stˇredn´ı absolutn´ı od- chylka (MSE) . . . 19

2.2 Kompresn´ı algoritmy . . . 20

2.2.1 Bzip2 . . . 20

2.2.2 Lzma . . . 21

2.2.3 Deflate . . . 21

2.2.4 Implementace algoritm˚u a ´uvodn´ı porovn´an´ı . . . 21

3 Archiv a archivovan´e veliˇciny 24 3.1 CEA soubory . . . 24

3.2 Napˇet´ı . . . 24

3.3 Proud . . . 25

3.4 Frekvence . . . 26

3.5 Harmonick´y proud . . . 26

3.6 Harmonick´e napˇet´ı . . . 27

3.7 V´ykon . . . 28

3.8 THD (celkov´e harmonick´e zkreslen´ı). . . 28

3.9 Shrnut´ı. . . 29

4 Komprimace soubor˚u r˚uzn´e velikosti 30 4.1 Ukl´ad´an´ı hodnot jako Single . . . 30

4.1.1 Popis test˚u . . . 30

4.1.2 V´ysledky test˚u . . . 30

4.2 Ukl´ad´an´ı hodnot jako Integer s pevnou ˇr´adovou ˇc´arkou . . . 32

4.2.1 Popis k´odov´an´ı . . . 32

4.2.2 Popis test˚u . . . 32

(10)

4.2.3 V´ysledky test˚u . . . 32

4.2.4 Z´avˇer . . . 35

4.3 Diferenci´aln´ı k´odov´an´ı . . . 35

4.3.1 Popis . . . 35

4.3.2 V´ysledky. . . 35

4.4 Shrnut´ı. . . 37

5 Vyuˇzit´ı tˇr´ıdy pˇresnosti 39 5.1 Komprese zaokrouhlov´an´ım . . . 39

5.2 Buffer pˇredeˇsl´ych hodnot . . . 40

5.3 Namodelovan´e pr˚ubˇehy pˇri r˚uzn´ych parametrech . . . 40

5.3.1 P´asmo tolerance 0,1 . . . 40

5.3.2 P´asmo tolerance 0,05 . . . 41

5.3.3 P´asmo tolerance 0,025 . . . 41

5.3.4 Rozd´ıly mezi pr˚ubˇehy. . . 42

5.4 Popis testov´an´ı CR a ˇcasov´e n´aroˇcnosti . . . 43

5.5 V´ysledky test˚u . . . 45

5.5.1 Stupeˇn komprese . . . 45

5.5.2 Casov´ˇ a n´aroˇcnost buffer˚u r˚uzn´e velikosti . . . 46

5.6 Buffer s diferenci´alnˇe zak´odovan´ymi hodnotami . . . 46

5.7 Testov´an´ı bufferu s diferenci´aln´ım k´odov´an´ım . . . 47

5.8 V´ysledky test˚u . . . 48

5.9 Shrnut´ı. . . 48

6 Z´avˇer 50

(11)

Seznam ilustrac´ı

2.1 Graf mˇeˇr´ıc´ıho rozsahu tˇr´ıdy pˇresnosti . . . 17

2.2 Rozd´ıl mezi norm´aln´ım a diferenci´alnˇe k´odovan´ym pr˚ubˇehem . . . 18

2.3 Uk´azka sign´al˚u s RMSE 2 a 5 . . . 19

2.4 Porovn´an´ı LZMA-SDK a SevenZipSharp . . . 22

2.5 Uvodn´ı porovn´´ an´ı kompresn´ıch algoritm˚u . . . 23

3.1 CEA soubor . . . 24

3.2 Histogram U avg U1 C . . . 25

3.3 Histogram a uk´azka pr˚ubˇehu I avg I1 C. . . 25

3.4 Pr˚ubˇehy f avg f C, f min f C a f max f C . . . 26

3.5 Uk´azka pr˚ubˇeh˚u lich´ych harmonick´ych sloˇzek I1 . . . 26

3.6 Uk´azka pr˚ubˇeh˚u sud´ych harmonick´ych sloˇzek I1 . . . 27

3.7 Uk´azka pr˚ubˇeh˚u lich´ych harmonick´ych sloˇzek U1 . . . 27

3.8 Uk´azka pr˚ubˇeh˚u sud´ych harmonick´ych sloˇzek U1 . . . 28

3.9 Uk´azka pr˚ubˇeh˚u jalov´eho v´ykonu . . . 28

3.10 Uk´azka tˇr´ı pr˚ubˇeh˚u THD proudu . . . 29

3.11 Uk´azka tˇr´ı pr˚ubˇeh˚u THD napˇet´ı . . . 29

4.1 Pr˚umˇern´e CR pro THD napˇet´ı. . . 31

4.2 Single vs fixed point Integer: Napˇet´ı . . . 33

4.3 Komprese napˇet´ı s jednou desetinnou ˇc´arkou . . . 34

4.4 Dif. k´odovan´y jalov´y v´ykon . . . 35

4.5 Dif. k´odovan´y proud . . . 36

4.6 Pr˚umˇern´e v´ysledky test˚u . . . 37

4.7 Pr˚umˇern´e v´ysledky algoritmu Lzma pˇri kompresi napˇet´ı. . . 38

4.8 Pr˚umˇern´e v´ysledky algoritmu Bzip2 pˇri kompresi ˇcinn´eho v´ykonu . . 38

5.1 Pr˚ubˇehy napˇet´ı pˇri vyuˇzit´ı buffer˚u r˚uzn´e velikosti a PT 0,1 . . . 40

5.2 Pr˚ubˇehy napˇet´ı pˇri vyuˇzit´ı buffer˚u r˚uzn´e velikosti a PT 0,05 . . . 41

5.3 Pr˚ubˇehy napˇet´ı pˇri vyuˇzit´ı buffer˚u r˚uzn´e velikosti a PT 0,025 . . . 41

5.4 RMSE pro mˇeˇren´ı napˇet´ı o velikosti 86000 vzork˚u pˇri vyuˇzit´ı bufferu pˇredeˇsl´ych hodnot . . . 42

5.5 MSE pro mˇeˇren´ı napˇet´ı o velikosti 86000 vzork˚u pˇri vyuˇzit´ı bufferu pˇredeˇsl´ych hodnot . . . 42 5.6 MSE a RMSE pouze pro upravovan´e hodnoty pˇri vyuˇzit´ı bufferu

(12)

5.7 Zmˇeny v CR dle velikosti bufferu . . . 45 5.8 Pr˚umˇern´a ˇcasov´a n´aroˇcnost buffer˚u r˚uzn´e velikosti pˇri PT 0,1% . . . 46 5.9 Pr˚ubˇehy ukl´adan´eho napˇet´ı pˇri p´asmu tolerance 0,5 s vyuˇzit´ım bufferu

pˇredeˇsl´ych hodnot . . . 47 5.10 Zmˇeny v CR dle velikosti diferenci´alnˇe k´odovan´eho bufferu . . . 48

(13)

Seznam tabulek

4.1 Pr˚umˇern´e CR a ˇcas pro mˇeˇren´ı napˇet´ı . . . 31 4.2 Pr˚umˇern´e CR a ˇcas pro 5. harmonick´y proud . . . 31 4.3 Pomˇery pr˚umˇer˚u CR a ˇcasov´e n´aroˇcnosti: soubory s INT a soubory

se Single . . . 33 5.1 Porovn´an´ı zaokrouhlov´an´ı dle r˚uzn´ych PT . . . 39

(14)

Seznam zkratek

CR Stupeˇn komprese TP Tˇr´ıda pˇresnosti

PT P´asmo tolerance / Povolen´e p´asmo RMSE Stˇredn´ı kvadratick´a chyba

MSE Stˇredn´ı absolutn´ı chyba U Napˇet´ı

I Proud

f Frekvence

P Cinn´ˇ y v´ykon Q Jalov´y v´ykon

THD Celkov´e harmonick´e zkreslen´ı

(15)

1 Uvod ´

Potˇreba uchov´av´an´ı st´ale vˇetˇs´ıho mnoˇzstv´ı mˇeˇren´ych charakteristik elektrick´e e- nergie existuje jiˇz dlouho. Jedn´ım z hlavn´ıch d˚uvod˚u je rozvoj inteligentn´ıch s´ıt´ı (anglicky smart grid), kter´e jsou automatizovan´e a um´ı regulovat elektrick´e veliˇciny dle potˇreby odbˇeratele. Kv˚uli anal´yze a monitorov´an´ı el. energie se nepˇretrˇzitˇe ukl´ad´a a monitoruje velk´e mnoˇzstv´ı mˇeˇren´ı a proto je tˇreba ukl´adat tato data v co nejkompaktnˇejˇs´ı formˇe. Kromˇe n´arok˚u na ´uloˇziˇstˇe m˚uˇze b´yt pˇri v´ybˇeru spr´avn´e komprese d˚uleˇzit´y i n´arok na operaˇcn´ı pamˇeˇt, rychlost komprese ˇci dekomprese a obecnˇe rychlost ˇcten´ı a z´apisu dat.

V t´eto pr´aci vˇenuj´ıc´ı se efektivn´ımu ukl´ad´an´ı mˇeˇren´ı elektrick´ych veliˇcin se budu zab´yvat anal´yzou ztr´atov´ych i bezeztr´atov´ych zp˚usob˚u k´odov´an´ı veliˇcin, vyuˇzit´ı nˇekter´ych zn´am´ych kompresn´ıch algoritm˚u a jejich form´at˚u (pˇredevˇs´ım 7z, bz2 a zip) k uloˇzen´ı soubor˚u s namˇeˇren´ymi hodnotami v co nejkompaktnˇejˇs´ı formˇe.

Pr´ace bude zaˇc´ınat reˇserˇs´ı potˇrebn´ych znalost´ı a nˇekter´ych zjiˇstˇen´ı z jin´ych prac´ı, kter´e se podobnou t´ematikou zab´yvaj´ı, anal´yzou r˚uzn´ych ztr´atov´ych a bezeztr´atov´ych kompresn´ıch algoritm˚u a k´odov´an´ı. N´aslednˇe pop´ıˇse mˇeˇren´ı elektrick´ych veliˇcin, se kter´ymi budu pracovat. Z nabyt´ych poznatk˚u se pokus´ım navrhnout co nej- vhodnˇejˇs´ı zp˚usoby archivace tˇechto dat, kter´e tak´e otestuji. ´Uspˇeˇsnost testovan´ych technik zde bude analyzov´ana, a to pˇredevˇs´ım z hlediska ´uspˇeˇsnosti komprese a ˇcaso- v´ych n´arok˚u na kompresi. U kompresn´ıch form´at˚u a k´odov´an´ı se budu snaˇzit naj´ıt klady a z´apory v jejich pouˇzit´ı. Veliˇciny jsou p˚uvodnˇe uloˇzeny v CEA sou- borech obsahuj´ıc´ıch velk´a mnoˇzstv´ı mˇeˇren´ych hodnot. Tyto ´udaje budou ztr´atovˇe i bezeztr´atovˇe pˇredbˇeˇznˇe zak´odov´any, n´aslednˇe exportov´any do bin´arn´ıch soubor˚u a nakonec zabaleny nˇekolika komprimaˇcn´ımi algoritmy .

V´ysledkem pr´ace nem´a b´yt program ˇci aplikace a ˇc´ıseln´e v´ysledky v oblasti efektivity a doby komprese se nemaj´ı povaˇzovat za pevnˇe stanoven´e chov´an´ı, protoˇze vlastnosti komprese jsou promˇenliv´e v z´avislosti na komprimovan´ych datech a na v´ykonnosti pouˇz´ıvan´eho zaˇr´ızen´ı. V´ysledkem by mˇelo b´yt pˇredevˇs´ım pomˇerov´e porovn´an´ı mezi algoritmy a k´odov´an´ımi. Pokud se bude prezentovat nov´y zp˚usob komprese, bude nejd˚uleˇzitˇejˇs´ı pˇresnˇe zaznamenat jeho princip a vlastnosti. D˚uraz by nemˇel b´yt kladen pouze na konkr´etn´ı ˇc´ısla u konkr´etn´ıch veliˇcin, ale na vˇsestrannost algoritm˚u a jejich pouˇzitelnost na vˇsechny druhy dat, kter´a bude tˇreba archivovat. V´ysledky se co nejpˇrehlednˇeji zaznamenaj´ı v t´eto zpr´avˇe.

(16)

2 Teoretick´ a ˇ c´ ast

Nejd˚uleˇzitˇejˇs´ı zp˚usob, jak´ym lze kompresi dat rozdˇelit, je dˇelen´ı na ztr´atovou a beze- ztr´atovou kompresi. Pˇri bezeztr´atov´e kompresi nesm´ı transformace ukl´adan´ych dat vy´ustit ve ztr´atu jak´ekoliv informace. Cenou za uchov´an´ı cel´e informace je ale menˇs´ı efektivita komprese. Pˇri ztr´atov´e kompresi se ˇc´ast dat ”zahazuje” v´ymˇenou za lepˇs´ı stupeˇn komprese. Pˇri ztr´atov´e kompresi se tedy rozhodujeme, jak´e mnoˇzstv´ı informac´ı jsme ochotni obˇetovat pro lepˇs´ı ´uroveˇn komprese. ˇCast´y zp˚usob vyuˇzit´ı obou druh˚u komprese je homogenizace dat ztr´atov´ymi kompresn´ımi algoritmy, kter´a umoˇzn´ı efektivnˇejˇs´ı kompresi nˇekter´ym bezeztr´atov´ym algoritmem. (Uspoˇr´adan´a a stejnorod´a data se vˇetˇsinou komprimuj´ı l´epe.) Pˇred samotn´ymi testy je tˇreba pˇredstavit a popsat nˇekter´e pojmy a algoritmy, jelikoˇz je budu pouˇz´ıvat jak k testo- v´an´ı, tak k n´asledn´e anal´yze a popisu test˚u v t´eto zpr´avˇe.

2.1 D˚ uleˇ zit´ e pojmy

2.1.1 Stupeˇ n komprese

V oboru komprese dat ˇcasto vyuˇz´ıvan´y pojem (anglicky compression ratio), zkr´acenˇe CR. Tato veliˇcina neobsahuje informaci o velikosti p˚uvodn´ıho souboru nebo souboru po kompresi. Vyjadˇruje pouze efektivitu komprese vyˇc´ıslen´ım pod´ılu velikosti souboru pˇred a po kompresi. (Tud´ıˇz plat´ı, ˇze ˇc´ım vˇetˇs´ı CR, t´ım lepˇs´ı komprese.) Jedn´a se o bezrozmˇernou veliˇcinu.

CR = velikost p˚uvodn´ıho souboru velikost zkomprimovan´eho souboru

Nˇekdy se vyjadˇruje procentu´alnˇe jako pod´ıl souboru po kompresi a souboru pˇred kompres´ı vyn´asoben´y stem. V t´eto pr´aci budu pracovat s prvn´ı variantou.

2.1.2 Tˇ r´ıda pˇ resnosti

Pˇri mˇeˇren´ı elektrick´ych veliˇcin se nelze vyhnout nepˇresnostem mˇeˇren´ı, takˇze namˇeˇren´a hodnota neodpov´ıd´a skuteˇcn´e hodnotˇe veliˇciny. Mˇeˇr´ıc´ı pˇr´ıstroje vˇzdy pracuj´ı s tzv.

tˇr´ıdou pˇresnosti, kter´a pro dan´e mˇeˇr´ıc´ı rozsahy ud´av´a moˇznou procentu´aln´ı od- chylku od namˇeˇren´e hodnoty. Odchylka definuje, v jak´em p´asmu od namˇeˇren´e hod- noty se skuteˇcn´a hodnota veliˇciny m˚uˇze pohybovat. Na ilustraˇcn´ım obr´azku 2.1 je zn´azornˇeno, jak by vypadal pr˚ubˇeh tˇr´ıdy pˇresnosti 20. S vˇetˇs´ı namˇeˇrenou hodno- tou se zvˇetˇsuje i moˇzn´a numerick´a odchylka, pˇrestoˇze procentu´alnˇe je tˇr´ıda pˇresnosti

(17)

stejn´a. (Viz rozd´ıl mezi velikost´ı p´asma TP pˇri namˇeˇren´ych hodnot´ach o velikosti 40 a 80% z mˇeˇr´ıc´ıho rozsahu.) ˇC´ım vˇetˇs´ı tˇr´ıda pˇresnosti, t´ım ˇsirˇs´ı jsou povolen´a p´asma.

Pˇri zmˇenˇe velikosti hodnoty nen´ı doporuˇceno vyuˇz´ıvat cel´e p´asmo tˇr´ıdy pˇresnosti a radˇeji se pro pr´aci vymez´ı pouze urˇcit´a ˇc´ast TP, tzv. p´asmo tolerance (Viz obr.

2.1, kde je pouˇzito povolen´e p´asmo o velikosti 10% z p´asma tˇr´ıdy pˇresnosti.) Tˇr´ıdu pˇresnosti m˚uˇzeme vyuˇz´ıt k pˇredbˇeˇzn´emu ztr´atov´emu zpracov´an´ı dat, kter´e zlepˇs´ı v´ykon nˇekter´ych kompresn´ıch algoritm˚u. Jelikoˇz se hodnota m˚uˇze pohybovat kdekoliv uvnitˇr p´asma tolerance, m˚uˇzeme k uloˇzen´ı volit hodnoty co nejvhodnˇejˇs´ı ke komprimaci nebo napˇr. zmenˇsit poˇcet ukl´adan´ych desetinn´ych m´ıst a podobnˇe.

Obr´azek 2.1: Graf tˇr´ıdy pˇresnosti. Mˇeˇr´ıc´ı rozsah je urˇcen nomin´aln´ı hodnotou, nomin´aln´ı hodnota tedy odpov´ıd´a 100% z mˇeˇr´ıc´ıho rozsahu. Pˇri mˇeˇren´ı hodnot bl´ıˇz´ıc´ıch se nule maj´ı mˇeˇr´ıc´ı pˇr´ıstroje samozˇrejmˇe probl´em dodrˇzet TP, protoˇze je dovolen´a odchylka st´ale menˇs´ı. Proto se na zaˇc´atku p´asma tˇr´ıdy pˇresnosti nach´az´ı oblast, kter´a se neˇr´ıd´ı dle TP, ale podle line´arn´ı odchylky.

2.1.3 Diferenci´ aln´ı k´ odov´ an´ı

Pˇri diferenci´aln´ım, ˇcasto naz´yvan´em tak´e jako delta k´odov´an´ı neukl´ad´ame namˇe- ˇrenou hodnotu pˇr´ımo, n´ybrˇz ukl´ad´ame pouze jej´ı rozd´ıl od hodnoty pˇredchoz´ı. Ve v´ysledku se bude ukl´adat ˇc´ıslo znaˇcnˇe menˇs´ı, coˇz zlepˇs´ı n´aslednou kompresi do libo- voln´eho form´atu. Z´aroveˇn ˇz´adnou informaci neztr´ac´ıme, metoda se tedy d´a oznaˇcit za bezeztr´atovou.

(18)

Obr´azek 2.2: Rozd´ıl mezi norm´aln´ım a diferenci´alnˇe k´odovan´ym pr˚ubˇehem Nev´yhodou t´eto techniky je, ˇze doch´az´ı ke stˇr´ıd´an´ı kladn´ych a z´aporn´ych ˇc´ısel, coˇz m˚uˇze m´ıt negativn´ı dopad na stupeˇn komprese. Dalˇs´ı nev´yhodou je, ˇze pˇr´ımo m˚uˇzeme ˇc´ıst pouze zmˇeny ve velikosti veliˇciny. Pokud chceme zn´at pˇresnou hod- notu, mus´ıme ˇc´ıst hodnoty od zaˇc´atku mˇeˇren´ı a sˇc´ıtat je. Proto povaˇzuji z hlediska rychlosti ˇcten´ı pˇr´ım´e hodnoty za v´yhodn´e ukl´adat diferenci´alnˇe zak´odovan´a mˇeˇren´ı v souborech co nejmenˇs´ı pˇrijateln´e velikosti.

2.1.4 Pevn´ e a plovouc´ı ˇ r´ adov´ e ˇ c´ arky

Reprezentace ˇc´ısel pomoc´ı pevn´e ˇr´adov´e ˇc´arky (anglicky fixed point) a plovouc´ı ˇr´adov´e ˇc´arky (angl. floating point) je zp˚usob ukl´ad´an´ı re´aln´ych ˇc´ısel jako datov´y typ Integer, ve kter´em je urˇcit´y poˇcet cifer urˇcen pro uloˇzen´ı ˇc´ısel za desetinnou ˇc´arkou. U pevn´e ˇr´adov´e ˇc´arky je poˇcet desetinn´ych m´ıst pevnˇe d´an, zat´ımco u plovouc´ı ˇr´adov´e ˇc´arky se poˇcet desetinn´ych m´ıst mˇen´ı a tud´ıˇz se mus´ı ukl´adat spolu s ˇc´ıslem i informace o poˇctu desetinn´ych m´ıst.

Zp˚usob ukl´ad´an´ı ˇc´ısel pomoc´ı pevn´e ˇr´adov´e ˇc´arky ilustruji na pˇr´ıkladu: pˇri ukl´ad´an´ı hodnoty 235,893 jako Integer s pevnou ˇr´adovou ˇc´arkou na tˇri desetinn´a m´ısta ukl´ad´am ˇc´ıslo jako 235 893. Pokud se spokoj´ım s uloˇzen´ım pouze dvou de- setinn´ych m´ıst, ˇc´ıslo uloˇz´ım jako 23 589. Zde doch´az´ı ke ztr´atov´e kompresi, ale ukl´adan´e ˇc´ıslo se zmenˇs´ı.

Pˇri tomto zp˚usobu k´odov´an´ı je d˚uleˇzit´e vˇedˇet, kolik desetinn´ych m´ıst je tˇreba uchov´avat a jak´ych maxim´aln´ıch hodnot budou zak´odovan´a ˇc´ısla nab´yvat. Podle zm´ınˇen´ych informac´ı lze vybrat nejvhodnˇejˇs´ı datov´y typ, napˇr.: Pokud m´ame jis- totu, ˇze nebude tˇreba uchov´avat ˇc´ısla vˇetˇs´ı neˇz 32 762, m˚uˇzeme m´ısto Int32 (4B) pouˇz´ıt Int16/ Short (2B). Soubor by tak mˇel jeˇstˇe pˇred aplikac´ı nˇekter´eho z kom- presn´ıch algoritm˚u poloviˇcn´ı velikost. V praxi je ale tato hodnota vˇetˇsinou ne- dostateˇcn´a a proto bude vhodnˇejˇs´ı zvolit Int32. Podrobnˇeji se t´eto problematice vˇenuje ve sv´e pr´aci Pavel Tiˇsnovsk´y [1].

(19)

2.1.5 Stˇ redn´ı kvadratick´ a chyba (RMSE) a Stˇ redn´ı absolutn´ı odchylka (MSE)

RMSE je ukazatel rozd´ılu mezi namˇeˇren´ymi hodnotami a mezi ukl´adan´ym modelem.

V teorii pravdˇepodobnosti se pro RMSE pouˇz´ıv´a oznaˇcen´ı rozptyl a vyjadˇruje od- chylku od stˇredn´ı hodnoty. V t´eto pr´aci ji vyuˇzijeme pˇri ztr´atov´e kompresi, kde se jednotliv´e deviace hodnot z namodelovan´eho pr˚ubˇehu a hodnot z p˚uvodn´ıho modelu umocn´ı na druhou, z mocnin se vyj´adˇr´ı pr˚umˇer a n´aslednˇe zase odmocn´ı.

RM SE =

v u u t

1 n

n

X

j=1

(xj− ¯xj)2

xj jsou hodnoty z namodelovan´eho pr˚ubˇehu, kter´y chceme uloˇzit.

¯

xj jsou hodnoty z p˚uvodn´ıho pr˚ubˇehu.

Stˇredn´ı kvadratick´a chyba je tedy odchylka tzv. rezidu´aln´ıch (Odchylky jednotliv´ych namˇeˇren´ych hodnot od ukl´adan´eho modelu mˇeˇren´ı). [2] Na obr. 2.3 jsou zobrazeny pr˚ubˇehy dvou veliˇcin, kter´e maj´ı rozd´ıln´y pr˚ubˇeh, ale jejich namodelovan´y pr˚ubˇeh urˇcen´y k uloˇzen´ı je stejn´y. RMSE vyj´adˇr´ı odchylku namodelovan´eho pr˚ubˇehu od toho p˚uvodn´ıho a tud´ıˇz slouˇz´ı jako indicie, jak moc se od sebe pr˚ubˇehy liˇs´ı.

Obr´azek 2.3: Uk´azka sign´al˚u s RMSE 2 a 5

MSE pln´ı stejnou funkci jako RMSE, ale vyjadˇruje pr˚umˇer absolutn´ıch hodnot vˇsech odchylek.

M SE = 1 n

n

X

j=1

|xj − ¯xj|

MSE a RMSE jsou nejpouˇz´ıvanˇejˇs´ı metriky v oblasti mˇeˇren´ı pˇresnosti spojit´ych promˇenn´ych. Obˇe veliˇciny si jsou podobn´e, ale kaˇzd´a z nich m´a lepˇs´ı pouˇzit´ı v r˚uzn´ych situac´ıch, napˇr. RMSE se hod´ı l´epe u mˇeˇren´ı, kde jsou d˚uleˇzit´e velk´e odchylky. Na druhou stranu MSE je jednoduˇsˇs´ı k interpretaci. Podrobnˇejˇs´ım

(20)

2.2 Kompresn´ı algoritmy

O ztr´atov´e i bezeztr´atov´e kompresi mˇeˇren´ı elektrick´e energie bylo naps´ano jiˇz mnoho.

Hojnˇe navrhovan´ym zp˚usobem komprese je vlnkov´a transformace [4,5,6,7]. D´ale se touto problematikou zab´yval napˇr. de Souza a kolektiv [8], kter´y navrhuje jako do- brou ztr´atovou metodu ke komprimaci ust´alen´ych veliˇcin rozklad na singul´arn´ı hod- noty nebo Dapper a spol. demonstruj´ıc´ı zde [9] kompresi pomoc´ı rychl´e Fourierovy transformace, polynomi´aln´ı komprese a n´asledn´e komprese Deflate algoritmem.

Kromˇe mˇeˇren´ı, jak moc dok´aˇz´ı kompresn´ı algoritmy zmenˇsit ukl´adan´a data, je zvolen´ı spr´avn´eho kompresn´ıho algoritmu z´avisl´e i na n´aroˇcnosti algoritm˚u na operaˇcn´ı pamˇeˇt. V [10] jsou porovn´av´any bezeztr´atov´e kompresn´ı algoritmy s ohle- dem na vyuˇzit´ı v embedded syst´emech, kter´e maj´ı omezenou kapacitu pamˇeti a menˇs´ı v´ypoˇcetn´ı v´ykon.

Velmi relevantn´ı publikace je [11] zab´yvaj´ıc´ı se, podobnˇe jako tato pr´ace, pˇred- bˇeˇzn´ym zak´odov´an´ım a n´aslednou kompres´ı algoritmy Bzip2, Lzma a Deflate, kde pr- votn´ı zak´odov´an´ı m´a zvˇetˇsit n´aslednou efektivitu kompresn´ıch algoritm˚u. Pˇredbˇeˇzn´e bezeztr´atov´e ˇci ztr´atov´e zak´odov´an´ı by mˇelo zmenˇsit velikost souboru jako takovou nebo transformovat data do co nejhomogennˇejˇs´ıho tvaru (vytvoˇren´ı co nejv´ıce za sebou zˇretˇezen´ych jedniˇcek ˇci nul), protoˇze takov´a data se kompresn´ım algoritm˚um l´epe komprimuj´ı. Dalˇs´ı pr´ace [12], kter´a se zab´yv´a touto problematikou, testuje

´

uˇcinky delta k´odov´an´ı, PPM metody [13] a Time based bezeztr´atov´eho k´odov´an´ı na kompresi dat z chytr´ych s´ıt´ı pomoc´ı Bzip2 a Lzma. V obs´ahl´e zpr´avˇe [7] Tcheou a kolektiv popisuj´ı velk´e mnoˇzstv´ı v pr˚umyslu vyuˇz´ıvan´ych druh˚u komprese vˇcetnˇe Lzma, Bzip2 a r˚uzn´ych druh˚u ztr´atov´eho i bezeztr´atov´eho k´odov´an´ı.

2.2.1 Bzip2

Bzip2 je open source kompresn´ı program vytvoˇren´y Julianem Sewardem v roce 1996.

Nejnovˇejˇs´ı verze programu vyˇsla 20. z´aˇr´ı 2010. Tento algoritmus dosahuje vˇetˇs´ı efektivity komprese neˇz Deflate nebo LZW, ale z´aroveˇn je pomalejˇs´ı. Bzip2 komprese trv´a v´yraznˇe d´ele neˇz Bzip2 dekomprese.[14]

Publikaci o bezeztr´atov´em k´odov´an´ı a kompresi dat se z´aznamy kvality elek- trick´e energie publikoval v roce 2009 t´ym z TUL.[15] Bzip2 zde v porovn´an´ı s Huff- manov´ym, aritmetick´ym a MiniLZO k´odov´an´ım dosahuje nejlepˇs´ıho CR jak pˇri ukl´ad´an´ı nezak´odovan´ych ˇc´ısel, tak pˇri ukl´ad´an´ı diferenci´alnˇe k´odovan´ych dat.

Postup Bzip2 algoritmu pˇri kompresi:

1. Run-length k´odov´an´ı (RLE)[16]

2. Burrowsova–Wheelerova transformace[17]

3. Move-to-front transformace[18]

4. Znovu Run-length k´odov´an´ı 5. Huffmanovo k´odov´an´ı[19]

(21)

6. Vybr´an´ı vhodn´eho Huffmanova stromu

7. Zak´odov´an´ı Huffmanova stromu do jedniˇckov´e soustavy

8. Delta zak´odov´an´ı bitov´ych d´elek Huffmanova k´odu a bitov´eho pole obsahuj´ıc´ıho pouˇzit´e symboly

Pˇri dekompresi je aplikov´an stejn´y postup, ale v opaˇcn´em smˇeru.[14]

2.2.2 Lzma

Dalˇs´ım bezeztr´atov´ym algoritmem je Lempel-Ziv-Markov chain algoritmus. Vyv´ıjen mezi lety 1996 aˇz 2001, Lzma byl v roce 2001 pˇrid´an do programu 7-zip. V roce 2004 byla publikov´ana prvn´ı verze Lzma source development kit (LZMA SDK).

Nejnovˇejˇs´ı verze 18.06 vyˇsla 30.12. 2018. Jedn´a se o vylepˇsenou verzi LZ77 al- goritmu upraven´eho tak, aby se maxim´alnˇe zvˇetˇsil stupeˇn komprese, udrˇzovala se vysok´a dekompresn´ı rychlost i n´ızk´e pamˇeˇtov´e n´aroky pro dekompresi.[20] Podrobn´a dokumentace s popisem algoritmu nen´ı k dispozici, ale slovy autora je algoritmus realizov´an kombinac´ı LZ77, Markovov´ych ˇretˇezc˚u a Intervalov´eho k´odov´an´ı (Range Coder).[21]

Kraus a kolektiv ve sv´e pr´aci zab´yvaj´ıc´ı se vyuˇzit´ım agregaˇcn´ıch, polynomi´aln´ıch a Spline model˚u s r˚uzn´ymi kompresn´ımi algoritmy zde [22] testovali Huffmanovo, aritmetick´e, intervalov´e k´odov´an´ı, ZIP, GZIP, Bzip2 a Lzma. Posledn´ı zm´ınˇen´e je vyhodnoceno jako nejefektivnˇejˇs´ı.

2.2.3 Deflate

Knihovna Zlib byla naps´ana Jean-loup Gaillyem a Markem Adlerem v roce 1995.

Nejnovˇejˇs´ı verze 1.2.11 vyˇsla 15. ledna 2017. Je abstrakc´ı Deflate algoritmu, kter´y je nejpouˇz´ıvanˇejˇs´ım algoritmem pro archivn´ı form´at ZIP. Souborov´y form´at Gzip (s .gz pˇr´ıponou) tak´e vyuˇz´ıv´a Deflate kompresi a pˇrid´av´a ke komprimovan´ym soubor˚um tzv. CRC data[23], kter´a pom´ahaj´ı odhalit poˇskozen´ı dat. Samotn´y Deflate algo- ritmus je kombinac´ı LZ77[24] a Huffmanova k´odov´an´ı[19]. Pˇredbˇeˇzn´y algoritmus zlepˇsuj´ıc´ı n´aslednou kompresi Deflate algoritmu je publikov´an v [25].

2.2.4 Implementace algoritm˚ u a ´ uvodn´ı porovn´ an´ı

Pˇri rozhodov´an´ı, jakou implementaci LZMA SDK pouˇziji k testov´an´ı, jsem se rozhodoval pˇredevˇs´ım mezi knihovnami SevenZipSharp a LZMA-SDK. Obˇe dvˇe jsou dostupn´e jako nuget package ve Visual Studiu, kde jsou nejpouˇz´ıvanˇejˇs´ımi bal´ıˇcky pro pr´aci s Lzma.

Kv˚uli porovn´an´ı jsem obˇe knihovny testoval na 113 CEA souborech a zazna- men´aval jejich stupeˇn komprese a ˇcasovou n´aroˇcnost. V prvn´ım testu jsem z kaˇzd´eho CEA souboru exportoval mˇeˇren´ı do bin´arn´ıho souboru a archivoval ho pomoc´ı obou knihoven. V druh´em testu jsem exportoval jednu veliˇcinu (pr˚umˇern´e napˇet´ı) do

(22)

Obr´azek 2.4: Porovn´an´ı LZMA-SDK a SevenZipSharp

Pro pˇrehlednost pˇrikl´ad´am pouze graf s pr˚umˇern´ymi hodnotami mˇeˇren´ı. Obˇe knihovny mˇely v podstatˇe totoˇzn´y stupeˇn komprese napˇr´ıˇc vˇsemi veliˇcinami. ˇCasov´a n´aroˇcnost byla podobn´a u soubor˚u s mˇeˇren´ım napˇet´ı, frekvence a proudu, nicm´enˇe u v´ykonu dos´ahlo LZMA-SDK v´yraznˇe horˇs´ıch v´ysledk˚u neˇz SevenZipSharp. V nˇeko- lika pˇr´ıpadech mˇela knihovna LZMA-SDK lepˇs´ı v´ysledky, ale vˇetˇsinou bylo rychlejˇs´ı SevenZipSharp. LZMA SDK je volnˇe staˇziteln´a i jako C# k´od od autora Lzma.

Tato implementace Lzma byla v m´em programu v´yraznˇe m´enˇe neefektivn´ı z hlediska ˇcasov´e n´aroˇcnosti a komprese s n´ı trvala oproti SevenZipSharp v pr˚umˇeru v´ıce neˇz dvakr´at d´ele. Proto jsem se k testov´an´ı rozhodl pouˇz´ıt SevenZipSharp.

Dvˇe nejpouˇz´ıvanˇejˇs´ı knihovny pro .NET platformu implementuj´ıc´ı Bzip2 kom- presi jsou SharpZipLib a SharpCompress. Podobnˇe jako u Lzma, i zde mˇely kni- hovny velmi podobn´e v´ysledky, nicm´enˇe SharpCompress mˇel probl´em s kompres´ı mal´ych soubor˚u pod 1MB a v´ysledn´e bz2 soubory byly pr´azdn´e. Vzhledem k funk- ˇcnosti SharpZipLib jsem se implementac´ı SharpCompress v´ıce nezab´yval a pro testo- v´an´ı jsem zvolil SharpZipLib.

.NET Framework obsahuje nˇekolik tˇr´ıd urˇcen´ych ke kompresi soubor˚u. Prvn´ı je DeflateStream, kter´a realizuje DEFLATE algoritmus. Druh´a tˇr´ıda, GzipStream, je t´emˇeˇr stejn´a jako DeflateStream, ale na rozd´ıl od n´ı generuje GZipStream i nˇekter´a metadata. Pokud data ukl´ad´ame jako .gz soubor, nˇekter´e kompresn´ı n´astroje jako napˇr. Winrar mohou tento soubor dekomprimovat nebo s n´ım jinak pracovat.[26] Od verze 4.5 pouˇz´ıv´a .NET k realizaci tˇechto tˇr´ıd zlib knihovnu.[27] Jelikoˇz mohu De-

(23)

flate algoritmus realizovat obˇema zp˚usoby, zkus´ım obˇe knihovny otestovat a posou- dit, kterou je v´yhodnˇejˇs´ı pouˇz´ıt.

Ze 113 CEA soubor˚u exportuji napˇet´ı, proud, frekvenci a ˇcinn´y v´ykon do bin´arn´ıch soubor˚u, kter´e zkomprimuji metodami, kter´e jsem vybral. Zaznamen´am ˇcasovou n´aroˇcnost s stupeˇn komprese. Ovˇeˇr´ım funkˇcnost m´eho testovac´ıho k´odu, porovn´am v´yˇse zm´ınˇen´e metody a kompresn´ı algoritmy pˇri pr´aci se soubory velk´ymi zhruba 340kB. (Velikost je d´ana poˇctem namˇeˇren´ych hodnot uloˇzen´ych v jednom CEA souboru.)

GZipStream tvoˇrila vˇzdy o 18 bajt˚u vˇetˇs´ı velikost souboru neˇz DeflateStream. Kromˇe tˇechto margin´aln´ıch dat byly soubory totoˇzn´e, coˇz se projevilo v testech t´emˇeˇr stejn´ymi v´ysledky GZipStreamu a DeflateStreamu jak ve stupni komprese, tak v ˇcaso- v´e n´aroˇcnosti (viz 2.5). Kv˚uli metadat˚um mˇely .zip soubory nepatrnˇe lepˇs´ı CR i ˇcasovou n´aroˇcnost (pohybuj´ıc´ı se na ´urovni statistick´e chyby). Jelikoˇz j´a tato data nepotˇrebuji, budu pouˇz´ıvat k testov´an´ı Deflate algoritmu tˇr´ıdu DeflateStream.

Obr´azek 2.5: ´Uvodn´ı porovn´an´ı kompresn´ıch algoritm˚u

LZMA mˇel v pr˚umˇeru nejlepˇs´ı CR pˇri kompresi soubor˚u s proudem, ˇcinn´ym v´ykonem a napˇet´ım. Z´aroveˇn mˇel ale nejvˇetˇs´ı n´aroky na ˇcas. Bzip2 se choval r˚uznorodˇe. Pˇri kompresi frekvence dosahoval jasnˇe nejvˇetˇs´ıho CR s malou ˇcasovou n´aroˇcnost´ı, u napˇet´ı skonˇcil tˇesnˇe druh´y, ale u ˇcinn´eho v´ykonu a proudu se jeho stupeˇn komprese propadl na podobnou ´uroveˇn jako Deflate (v pr˚umˇeru byl sice o 4% aˇz 6% nad n´ım, ale jeho v´ykon byl velmi nekonzistentn´ı). Deflate algoritmus komprimoval nejrychleji, nicm´enˇe jeho CR byl nejmenˇs´ı.

(24)

3 Archiv a archivovan´ e veliˇ ciny

3.1 CEA soubory

Posloupnosti mˇeˇren´ı elektrick´ych veliˇcin jsou uloˇzeny v CEA souborech identifiko- vateln´ych .cea pˇr´ıponou. Podrobn´emu popisu struktury CEA soubor˚u se vˇenuje Jan Moravec ve sv´e bakal´aˇrsk´e pr´aci Zpracov´an´ı a vizualizace dat analyz´ator˚u v OS An- droid.[28] CEA soubory maj´ı strukturu nˇekolika sloˇzek a soubor˚u komprimovan´ych pomoc´ı zip komprese. Struktura archivu je naˇcrtnuta na obr´azku 3.1. Mˇeˇren´ı jsou uloˇzena bin´arnˇe. Tento zp˚usob ukl´ad´an´ı dat je obvykl´y tak´e uvnitˇr mikroproce- sorov´ych mˇeˇr´ıc´ıch a monitorovac´ıch zaˇr´ızen´ı.[29]

Z tˇechto d˚uvod˚u budu exportovat namˇeˇren´a data z CEA do bin´arn´ıch soubor˚u a tyto soubory r˚uzn´ym zp˚usobem testovat.

Obr´azek 3.1: CEA soubor

3.2 Napˇ et´ı

V CEA archivu se vyskytuj´ı napˇet´ı dosahuj´ıc´ı nˇekolika stovek Volt˚u, vetˇsinou kol´ısaj´ıc´ı kolem 230-245V nebo 400V. Pr˚ubˇehy jsou ust´alen´e na konstantn´ı hodnotˇe, kolem kter´e kol´ısaj´ı a jejich velikost se pˇr´ıliˇs nemˇen´ı. Jak m˚uˇzeme vidˇet v obr´azku3.2, hod- nota jednoho napˇet´ı (U avg U1) se ve 113 CEA souborech pohybovala v naprost´e vˇetˇsinˇe pˇr´ıpad˚u mezi 230 a 248 Volty.

(25)

Obr´azek 3.2: Histogram U avg U1 C ze 113 CEA soubor˚u

3.3 Proud

Co se velikosti t´yˇce, proudy jsou velmi rozmanit´a skupina. Pr˚ubˇeh vypad´a tak, ˇze proud kol´ıs´a kolem nˇejak´e konstanty (a tato konstanta se m˚uˇze mˇenit napˇr. podle toho, jak´a je ˇc´ast dne nebo jestli je v´ıkend) a v´yjimeˇcnˇe se objev´ı extr´em dosahuj´ıc´ı nˇekolikan´asobn´e velikosti pˇredeˇsl´ych hodnot. Pˇri ukl´ad´an´ı hodnoty proudu je potom d˚uleˇzit´y hlavnˇe v´yskyt extr´em˚u pˇresahuj´ıc´ıch nomin´aln´ı hodnotu proudu. U proud˚u je tedy d˚uleˇzit´a informace, zda doˇslo k pˇrekon´an´ı urˇcit´e hodnoty nebo zda se zmˇenila konstanta, kolem kter´e proud kol´ıs´a.

Na obr´azku3.3je vidˇet kumulace hodnot kolem 1 Amp´eru a d´ale menˇs´ı mnoˇzstv´ı extr´em˚u, kter´e se v tomto mˇeˇren´ı pravidelnˇe vyskytovaly (viz uk´azka pr˚ubˇehu proudu v 3.3). Podobn´y pr˚ubˇeh se vyskytoval i u dalˇs´ıch mˇeˇren´ı proudu.

Obr´azek 3.3: Histogram a uk´azka pr˚ubˇehu I avg I1 C

(26)

3.4 Frekvence

CEA soubor obsahuje 3 frekvence: f avg, f max a f min. Vˇsechny tˇri veliˇciny maj´ı extr´emnˇe podobn´e pr˚ubˇehy a to natolik, ˇze se v grafu pˇrekr´yvaj´ı (viz 3.4).

Frekvence se udrˇzuj´ı na hladinˇe 50Hz a maj´ı velice mal´e odchylky nepˇresahuj´ıc´ı desetinu Hertze. (Pˇredpokl´ad´am, ˇze rozd´ıl byl zp˚usoben chybou mˇeˇren´ı, nikoliv rozd´ıln´ymi hodnotami).

Pro tuto veliˇcinu je opˇet d˚uleˇzit´e zaznamen´avat vˇetˇs´ı odchylky od konstanty (v tomto pˇr. 50Hz), pokud vezmu v´yˇse zm´ınˇen´e vlastnosti v potaz, pˇrijde mi dostateˇcn´e tuto veliˇcinu archivovat pouze jednou.

Obr´azek 3.4: Pr˚ubˇehy f avg f C, f min f C a f max f C

3.5 Harmonick´ y proud

Vlastnosti harmonick´ych proud˚u lich´eho poˇrad´ı se liˇsily od vlastnost´ı proud˚u sud´ych.

Prvn´ı lich´y harmonick´y proud je nejvˇetˇs´ı (pˇres 1A) a m´a podobn´y tvar jako norm´aln´ı proud, dalˇs´ı lich´e harmonick´e proudy se zmenˇsuj´ı a postupnˇe se bl´ıˇz´ı k nule (5. harmonick´y: cca 0,5A, 7. harmonick´y: cca 0,3A, 11. harmonick´y: cca 0,15A, ...).

Obr´azek 3.5: Uk´azka pr˚ubˇeh˚u lich´ych harmonick´ych sloˇzek I1

(27)

Sud´e harmonick´e proudy sice s lich´ymi sd´ılej´ı zmenˇsov´an´ı velikosti s poˇradov´ym ˇc´ıslem, tato vlastnost je zde ale nepatrn´a, jelikoˇz hned od prvn´ıch sloˇzek jsou jejich velikosti t´emˇeˇr nulov´e. Druh´y harmonick´y se pohybuje okolo 0,02A a dalˇs´ı jsou jeˇstˇe menˇs´ı.

Obr´azek 3.6: Uk´azka pr˚ubˇeh˚u sud´ych harmonick´ych sloˇzek I1

3.6 Harmonick´ e napˇ et´ı

Vlastnosti harmonick´ych napˇet´ı lich´eho poˇrad´ı se opˇet liˇsily od vlastnost´ı napˇet´ı sud´ych.

Prvn´ı lich´e harmonick´e napˇet´ı je nejvˇetˇs´ı (pˇres 240V) a m´a t´emˇeˇr stejn´y pr˚ubˇeh jako nomin´aln´ı napˇet´ı. Opˇet je dle m´eho n´azoru na m´ıstˇe uvaˇzovat o uchov´av´an´ı pouze jedn´e z tˇechto veliˇcin. Dalˇs´ı harmonick´a napˇet´ı se nepravidelnˇe zmenˇsuj´ı a bl´ıˇz´ı nule (U3: cca 1,3V, U21: cca 0,4V; U40: cca 0,07V).

Obr´azek 3.7: Uk´azka pr˚ubˇeh˚u lich´ych harmonick´ych sloˇzek U1

U sud´eho harm. napˇet´ı se opakuje efekt popsan´y u sud´ych harmonick´ych proud˚u.

Hodnoty jsou sestupn´e a v´yraznˇe menˇs´ı neˇz lich´e harmonick´e (v ˇr´adech desetin a setin Voltu).

(28)

Obr´azek 3.8: Uk´azka pr˚ubˇeh˚u sud´ych harmonick´ych sloˇzek U1

3.7 V´ ykon

CEA soubory obsahuj´ı mˇeˇren´ı ˇcinn´eho i jalov´eho v´ykonu.

Na rozd´ıl od ostatn´ıch veliˇcin obsahoval jalov´y v´ykon kromˇe kladn´ych i z´aporn´e hodnoty. Vyskytovaly se velk´e extr´emy v ˇr´adech stovek Watt˚u a nˇekter´e jeho pr˚ubˇehy byly velmi promˇenn´e. Pr˚ubˇehy mˇely ˇcasto podobn´y tvar jako pr˚ubˇehy proud˚u. Pˇr´ıkladem je P1 avg P1 a Q1 avg Q1, kter´e mˇely, stejnˇe jako proud I1 (viz obr. 3.3), opakuj´ıc´ı se extr´emy v jinak velmi ust´alen´em pr˚ubˇehu. Hodnoty se pohybovaly v ˇr´adu stovek aˇz tis´ıc Watt˚u. (Jalov´y v´ykon byl ˇcasto v jedin´em mˇeˇren´ı tvoˇren z´aporn´ymi hodnotami s extr´emy v kladn´ych hodnot´ach.)

Obr´azek 3.9: Uk´azka pr˚ubˇeh˚u jalov´eho v´ykonu

3.8 THD (celkov´ e harmonick´ e zkreslen´ı)

THD proudu a napˇet´ı se vyskytovaly ve trojic´ıch: pr˚umˇern´a, maxim´aln´ı a minim´aln´ı hodnota. Tyto grafy mˇely velmi podobn´e pr˚ubˇehy, kter´e mˇely od sebe urˇcit´y offset a z velk´e ˇc´asti se pˇrekr´yvaly (viz 3.10). U proudu se hodnoty pohybovaly v ˇr´adu des´ıtek procent, u napˇet´ı v jednotk´ach (viz 3.11).

(29)

Obr´azek 3.10: Uk´azka tˇr´ı pr˚ubˇeh˚u THD proudu

Obr´azek 3.11: Uk´azka tˇr´ı pr˚ubˇeh˚u THD napˇet´ı

3.9 Shrnut´ı

• V CEA souborech se nach´az´ı velk´e mnoˇzstv´ı r˚uzn´ych mˇeˇren´ı napˇet´ı, proudu, ˇ

cinn´eho a jalov´eho v´ykonu, frekvence, harmonick´ych sloˇzek napˇet´ı a proudu a THD napˇet´ı a proudu.

• Soubory nemaj´ı konstantn´ı mnoˇzstv´ı mˇeˇren´ı, tud´ıˇz i jejich velikosti jsou r˚uzn´e.

• Zat´ımco nˇekter´e veliˇciny, jako frekvence ˇci napˇet´ı, maj´ı vˇetˇsinou ust´alen´e pr˚ubˇehy, jin´e veliˇciny maj´ı pr˚ubˇehy ˇcasto velmi promˇenliv´e.

• Namˇeˇren´e hodnoty maj´ı promˇenliv´y poˇcet cifer a desetinn´ych m´ıst.

• Obsah archiv˚u je tedy znaˇcnˇe rozmanit´y a vhodn´e kompresn´ı algoritmy by tedy buˇd mˇely b´yt schopn´e efektivnˇe komprimovat velmi rozd´ıln´e druhy dat,

(30)

4 Komprimace soubor˚ u r˚ uzn´ e velikosti

Prvn´ı s´erie test˚u se zab´yv´a kompres´ı bin´arn´ıch soubor˚u r˚uzn´e velikosti obsahuj´ıc´ıch namˇeˇren´e hodnoty elektrick´ych veliˇcin. Pro testov´an´ı jsem pouˇzil vzorek 113 CEA soubor˚u. Jedno mˇeˇren´ı v testovan´ych CEA souborech obsahovalo kolem 86 tis´ıc hod- not, tud´ıˇz pˇri exportu do bin´arn´ıho souboru jako Single (4B) hodnoty mˇel soubor velikost kolem 340kB. Na tomto kvantitativn´ım rozdˇelen´ı ale nen´ı tˇreba lpˇet a pro efektivnˇejˇs´ı uchov´an´ı mˇeˇren´ı se m˚uˇze osvˇedˇcit jin´a velikost, kter´a bude po kompresi nˇekter´ym kompresn´ım algoritmem dosahovat vˇetˇs´ıho stupnˇe komprese. Mˇeˇren´ı jed- notliv´ych veliˇcin exportuji do stejnˇe velk´ych bin´arn´ıch soubor˚u. Testov´any budou tyto veliˇciny: Napˇet´ı, proud, frekvence, ˇcinn´y a jalov´y v´ykon, harmonick´e napˇet´ı a proud, THD napˇet´ı a proudu. Testy by mˇely pokr´yt ty nejd˚uleˇzitˇejˇs´ı elektrick´e veliˇciny vyskytuj´ıc´ı se v archivech.

Bin´arn´ı soubory archivuji pomoc´ı Lzma, Bzip2 a Deflate. Zaznamenal jsem dobu archivace a stupeˇn komprese [velikost pˇred kompres´ı/ velikost po kompresi].

Vˇsechny v´yˇse zm´ınˇen´e testy prov´ad´ım i pro nˇekolik r˚uzn´ych zp˚usob˚u z´apisu mˇeˇren´ı. Nejprve otestuji kompresi nezak´odovan´ych mˇeˇren´ı, n´asleduj´ı testy delta k´odov´an´ı a pevn´e ˇr´adov´e ˇc´arky.

4.1 Ukl´ ad´ an´ı hodnot jako Single

4.1.1 Popis test˚ u

Jelikoˇz maj´ı hodnoty v archivech ˇc´ısla za desetinnou ˇc´arkou, je pro norm´aln´ı z´apis moˇzn´e volit z datov´ych typ˚u Double nebo Single. Double (8B) je zbyteˇcnˇe velk´y a proto je nejlepˇs´ım ˇreˇsen´ım ukl´adat hodnoty bez zak´odov´an´ı jako Single.

4.1.2 V´ ysledky test˚ u

Efektivita komprese se u jednotliv´ych mˇeˇren´ı v´yraznˇe liˇsila. Nejvyˇsˇs´ıho CR al- goritmy dosahovaly pˇri kompresi frekvence. Bzip2 zde dos´ahl nejvyˇsˇs´ıho stupnˇe komprese tˇesnˇe pˇred LZMA, kter´y byl m´ırnˇe horˇs´ı. Oba algoritmy si vedly podobnˇe pˇri kompresi napˇet´ı, nicm´enˇe pˇri kompresi vˇsech ostatn´ıch veliˇcin dosahoval nej- lepˇs´ıch v´ysledk˚u LZMA. Bzip2 naopak zaost´aval. Bzip2 mˇel tak´e trvale menˇs´ı ˇcasovou n´aroˇcnost neˇz LZMA. Jako uk´azku pˇrikl´ad´am pr˚umˇern´e CR a ˇcas kom- prese napˇet´ı.(tab. 4.1) Je zˇrejm´e, ˇze Bzip2 komprimoval napˇet´ı dvakr´at aˇz tˇrikr´at rychleji nez Lzma.

(31)

Tabulka 4.1: Pr˚umˇern´e CR a ˇcas [CR/t] pro mˇeˇren´ı napˇet´ı

100kB 200kB 500kB 1MB 2MB

bz2 1,78/ 87ms 1,79/ 125ms 1,87/ 255ms 1,91/ 419ms 1,92/ 863ms 7z 1.86/ 122ms 1,87/ 211ms 1,88/ 563ms 1,89/ 1s 1,89/ 2,44s zip 1,44/ 19ms 1,44/ 37ms 1,45/ 96ms 1,45/ 162ms 1,44/ 346ms

Krom v´yjimek dosahoval Lzma nejvˇetˇs´ıho stupnˇe komprese. U veliˇcin pohy- buj´ıc´ıch se kolem nuly ˇci v jednotk´ach a u veliˇcin obsahuj´ıc´ıch vˇetˇs´ı extr´emy byl Lzma v´yraznˇe lepˇs´ı neˇz Bzip2 i Deflate a na rozd´ıl od Bzip2 mˇel dobr´e v´ysledky v podstatˇe u vˇsech druh˚u dat. Bzip2 se pˇri aplikaci na mal´a nebo promˇenliv´a data viditelnˇe zhorˇsoval a napˇr. u 40. harmonick´eho napˇet´ı, kter´e kol´ısalo kolem nuly, dosahoval stejn´eho CR jako Deflate, kter´y mˇel trvale nejmenˇs´ı dosaˇzen´e CR. Nejvˇetˇs´ı v´yhoda Deflate byla jeho velk´a rychlost. Jako uk´azka poslouˇz´ı tabulka v´ysledk˚u p´at´e harmonick´e (tab. 4.2), kter´a mˇela velikost zhruba 0,45A.

Tabulka 4.2: Pr˚umˇern´e CR a ˇcas [CR/t] pro 5. harmonick´y proud

100kB 200kB 500kB 1MB 2MB

bz2 1,32/ 59ms 1,29/ 202ms 1,27/ 334ms 1,26/ 428ms 1,26/ 977ms 7z 1.54/ 68ms 1,55/ 244ms 1,56/ 504ms 1,57/ 714ms 1,57/ 1,7s zip 1,26/ 9ms 1,26/ 32ms 1,26/ 67ms 1,26/ 97,8ms 1,26/ 231ms

Pˇri zmˇenˇe velikosti soubor˚u doch´azelo k mal´ym zmˇen´am v CR. Nejvˇetˇs´ı odezvu mˇel Bzip2 na frekvenci, kdy se mezi 100kB a 4MB soubory CR zvˇetˇsilo z 2,46 na 2,95.

Jinak se CR mˇenil minim´alnˇe a v pˇr´ıpadˇe Bzip2 ˇcasto i z´apornˇe. Stupeˇn komprese Lzma pˇri zvˇetˇsov´an´ı velikosti souboru pravidelnˇe rostl, ale opˇet velmi nev´yraznˇe.

Ani s vyuˇzit´ım Deflate se neprojevovaly velk´e zmˇeny. Ke zmˇenˇe nav´ıc doch´azelo u menˇs´ıch velikost´ı, tedy rozd´ıly mezi kompres´ı soubor˚u o velikosti 100 a 200kB byly vˇetˇs´ı, neˇz rozd´ıly mezi soubory s velikost´ı 1 a 4MB (viz 4.1.2).

Obr´azek 4.1: Pr˚umˇern´e v´ysledky komprese bin. soubor˚u s namˇeˇren´ymi hodnotami THD napˇet´ı pomoc´ı Lzma

(32)

4.2 Ukl´ ad´ an´ı hodnot jako Integer s pevnou ˇ r´ adovou ˇ c´ arkou

4.2.1 Popis k´ odov´ an´ı

Jelikoˇz mˇeˇren´ı elektrick´ych veliˇcin tvoˇr´ı desetinn´a ˇc´ısla, nejjednoduˇsˇs´ı zp˚usob jejich reprezentace v souborech je datov´y typ Single (4B). K ukl´ad´an´ı hodnot ale lze pouˇz´ıt i nˇekter´e z celoˇc´ıseln´ych datov´ych typ˚u. Pˇri ukl´ad´an´ı menˇs´ıch ˇc´ısel bl´ıˇz´ıc´ıch se nule nebo pˇri archivaci hodnot vyˇzaduj´ıc´ıch pˇresnost na desetinn´a m´ısta je ale nevhodn´e ztr´acet velkou ˇc´ast informace zaokrouhlov´an´ım hodnoty veliˇciny na cel´e ˇc´ıslo. V takov´em pˇr´ıpadˇe m˚uˇzeme nˇekolik cifer ˇc´ısla pˇriˇradit ˇc´ısl˚um za desetinnou ˇc´arkou a ukl´adat je jako fixed point. Podrobnˇejˇs´ım popisem se zab´yv´a sekce 2.1.4 v reˇserˇsi.

4.2.2 Popis test˚ u

C´ılem tˇechto test˚u bude porovn´an´ı komprese mˇeˇren´ı uloˇzen´ych do bin. soubor˚u jako Single a jako Int32. V obou pˇr´ıpadech budou ˇc´ısla zaokrouhlena na 4 desetinn´a m´ısta (Hodnota 1,23456 bude exportov´ana jako 1,2346 Single a 12346 jako Integer), dojde tedy k uloˇzen´ı stejn´eho mnoˇzstv´ı informace. C´ılem testu je porovnat tyto zp˚usoby k´odov´an´ı. Opˇet budu testy prov´adˇet na vzorku 113 CEA soubor˚u. U obou k´odov´an´ı porovn´am stupeˇn komprese a ˇcasovou n´aroˇcnost jednotliv´ych komprimaˇcn´ıch algo- ritm˚u pˇri jejich aplikaci na bin´arn´ı soubory r˚uzn´e velikosti.

K ovˇeˇren´ı test˚u otestuji i ukl´ad´an´ı hodnot jako Single a Integer s jednou de- setinnou ˇc´arkou, abych mohl l´epe urˇcit chov´an´ı kompresn´ıch algoritm˚u pˇri r˚uzn´ych stupn´ıch komprese a pokus´ım se o anal´yzu, jak´y m´a tato zmˇena efekt na CR a ˇcasovou n´aroˇcnost.

4.2.3 V´ ysledky test˚ u

Obecnˇe se d´a ˇr´ıci, ˇze CR se pˇri fixed point k´odov´an´ı zvˇetˇsilo. Nejvˇetˇs´ıho zvˇetˇsen´ı dosahoval Lzma, kter´y pˇredˇcil Bzip2 i Deflate u vˇsech veliˇcin kromˇe frekvence. Jako ilustraˇcn´ı graf poslouˇz´ı graf se soubory s napˇet´ım, jelikoˇz v minul´ych testech byly u t´eto veliˇciny algoritmy Lzma a Bzip2 pomˇernˇe vyrovnan´e. Na obr´azku4.2 je vidˇet kromˇe zvˇetˇsen´ı CR u obou algoritm˚u i zmˇena mezi Bzip2 a Lzma, kter´emu se stupeˇn komprese zv´yˇsil o nˇeco v´ıc.

(33)

Obr´azek 4.2: Single vs fixed point Integer: Napˇet´ı

Podrobn´e zmˇeny v CR a ˇcas. n´aroˇcnosti komprese jsou vyˇc´ısleny v tabulce4.3.

Tabulka 4.3: Pomˇery pr˚umˇer˚u CR a ˇcasov´e n´aroˇcnosti: soubory s INT/soubory se Single. ˇC´ıslo pˇred lom´ıtkem znaˇc´ı CR soubor˚u s Integery a soubor˚u se Singly.

(Pokud je ˇc´ıslo >1, stupeˇn komprese se ukl´ad´an´ım Integer˚u m´ısto Singl˚u zvˇetˇsil.) C´ıslo za lom´ıtkem znaˇˇ c´ı pomˇer ˇcasov´e n´aroˇcnosti komprese soubor˚u s Integery a sou- bor˚u se Singly ( Tedy pokud je ˇc´ıslo >1, soubory s Integery mˇely vˇetˇs´ı ˇcasovou n´aroˇcnost neˇz soubory se Singly).

200kB 500kB 1MB 4MB

Napˇet´ı: .bz2 1.12/ 0.9 1.0984/1.54 1.078/ 1.09 1.078/ 1.234 Napˇet´ı: .7z 1.14/ 0,95 1,1439/1.386 1.1417/0.991 1.1373/ 1.15 Napˇet´ı: .zip 1.13/ 1.64 1.13/ 2.23 1.1329/ 1.71 1.1325/ 1.925 Proud: .bz2 1.1827/ 1 1.1475/ 1.42 1.1351/ 1.19 1.128/ 2.189 Proud: .7z 1.2801/ 1.47 1.26/ 1.993 1.2546/ 1.662 1.2381/ 2.962 Proud: .zip 1.2012/ 2.4 1.1998/ 2.69 1.2019/ 2.56 1.2015/ 4.769 Frekv.: .bz2 1.1545/ 1.02 1.0996/ 0.97 1.0914/ 1.03 1.0799/ 2.265 Frekv.: .7z 1.2409/ 1.46 1.1865/ 1.36 1.1636/ 1.467 1.1342/ 3.77 Frekv.: .zip 1.0473/ 1.72 1.0418/ 1.59 1.0398/ 1.67 1.0384/ 4.279 Cinn´ˇ y v.: .bz2 1.02/ 0.83 0.988/ 1.07 0.968/0.81 0.963/ 1.808 Cinn´ˇ y v.: .7z 1.05/ 0.83 1.045/ 0.96 1.0435/ 0.8 1.0435/ 1.927 Cinn´ˇ y v.: .zip 1.0459/ 1.09 1.0444/ 1.26 1.0433/ 1.18 1.0431/ 1.835 Jalov´y v.: .bz2 1.0518/ 0.83 1.012/ 1.08 0.995/ 0.86 0.991/ 1.53 Jalov´y v.: .7z 1.1309/ 0.82 1.1164/ 0.96 1.1102/ 0.805 1.1038/ 1.254 Jalov´y v.: .zip 1.1162/ 1.4 1.1132/ 1.53 1.1112/ 1.43 1.1105/ 2.605

(34)

Soubory s hodnotami proudu jako Integery dosahovaly oproti soubor˚um se Singly o 10-20% vˇetˇs´ıho CR pˇri kompresi pomoc´ı Bzip2, o 20% lepˇs´ı u Deflate a mezi 20 a 30% pˇri kompresi pomoc´ı Lzma. ˇCinn´y a jalov´y v´ykon P1 a Q1 maj´ı podobn´y tvar pr˚ubˇehu jako proud I1, ale pohybuj´ı se ve stovk´ach Watt˚u (o 2 cifry vˇetˇs´ı ˇc´ısla). To se projevilo u Bzip2 zhorˇsen´ım CR u soubor˚u s Integery na zhruba stejnou ´uroveˇn jako u soubor˚u se Singly. Lzma mˇel zdaleka nejvˇetˇs´ı zlepˇsen´ı CR ( u proudu 28-23%, u frekvence 24-13%, ˇcinn´y v´ykon 5%, jalov´y v´ykon 10-13%) a oba dalˇs´ı algoritmy pˇredˇcil. Stupeˇn komprese Deflate algoritmu se s pouˇzit´ım fixed point zlepˇsil tak´e, jeho CR ale z˚ustal nejhorˇs´ı.

Pouˇz´ıv´an´ı Integer˚u ovlivnilo ˇcasovou n´aroˇcnost sp´ıˇse negativnˇe. Deflate algorit- mus kromˇe pravideln´eho zvˇetˇsen´ı CR zaznamenal i zvˇetˇsen´ı ˇcasu komprese. Toto zhorˇsen´ı bylo nejvˇetˇs´ı u soubor˚u o velikosti 4MB. Zmˇena ˇcasov´e n´aroˇcnosti u Bzip2 a Lzma byla znaˇcnˇe neline´arn´ı, v nˇekter´ych pˇr´ıpadech se zvˇetˇsila, nˇekdy zmenˇsila.

Hlavn´ım znakem ˇcasov´e d´elky, kter´y lze dobˇre pozorovat z tabulky 4.3 i z graf˚u 4.2 a4.3 je velk´e zhorˇsov´an´ı ˇcasov´e n´aroˇcnosti u soubor˚u vˇetˇs´ı velikosti (4MB).

Pˇri ukl´ad´an´ı pouze jednoho desetinn´eho m´ısta nam´ısto ˇctyˇr se rozd´ıly v CR mezi soubory s Integery a soubory se Singly nezmˇenily. Opˇet doch´azelo k zvˇetˇsen´ı CR.

U napˇet´ı 4-5% pˇri kompresi Bzip2 a 6% pˇri pouˇzit´ı Lzma. To je oproti pˇredeˇsl´ym test˚um jeˇstˇe menˇs´ı rozd´ıl viz4.3. Naopak u ˇcinn´eho v´ykonu doˇslo k zvˇetˇsen´ı rozd´ıl˚u, kdy Lzma byl o 10% a Bzip2 o 5% lepˇs´ı pˇri ukl´ad´an´ı Integer˚u. Deflate dosahoval podobn´ych v´ysledk˚u jako v pˇredchoz´ım testu. Dalˇs´ım d˚uleˇzit´ym poznatkem je, ˇze stejnˇe jako pˇri ukl´ad´an´ı hodnot jako Single, i zde zmˇena velikosti soubor˚u nemˇela velk´y vliv na stupeˇn komprese.

Obr´azek 4.3: Komprese napˇet´ı s jednou desetinnou ˇc´arkou

(35)

4.2.4 Z´ avˇ er

Uchov´av´an´ı mˇeˇren´ı jako Integer˚u mˇelo ve vˇetˇsinˇe pˇr´ıpad˚u za n´asledek zvˇetˇsen´ı CR, v nejhorˇs´ıch pˇr´ıpadech podobn´e v´ysledky jako ukl´ad´an´ı Single hodnot. Lzma dosa- hoval nejvˇetˇs´ıho zvˇetˇsen´ı pohybuj´ıc´ıho se od 4 do t´emˇeˇr 30%. CR zhorˇsoval nest´al´y pr˚ubˇeh veliˇcin, kter´y nejh˚uˇre sn´aˇsel Bzip2 ( u ˇcinn´eho v´ykonu doˇslo i k velmi mal´emu zhorˇsen´ı v CR oproti soubor˚um se Single hodnotami). Deflate se v CR zlepˇsovalo mezi 3-20%. S lepˇs´ım CR se ˇcasov´a n´aroˇcnost zhorˇsovala. U veliˇcin s mal´ym zvˇetˇsen´ım CR (ˇcinn´y proud atd.) lze pozorovat zlepˇsen´ı ˇcasov´e n´aroˇcnosti, u veliˇcin jako frekvence, napˇet´ı a proud se ˇcas. n´aroˇcnost zhorˇsovala. Nejvˇetˇs´ı rozd´ıl v CR byl mezi obˇema zp˚usoby k´odov´an´ı u mal´ych soubor˚u. Se zvˇetˇsuj´ıc´ı se velikost´ı souboru se rozd´ıly v CR zmenˇsovaly.

4.3 Diferenci´ aln´ı k´ odov´ an´ı

4.3.1 Popis

Diferenci´aln´ı k´odov´an´ı (popsan´e v sekci 2.1.3 v teoretick´e ˇc´asti t´eto pr´ace) budu ukl´adat opˇet nejdˇr´ıve jako Single se 4 desetinn´ymi m´ısty a pot´e jako Integer s prvn´ımi 4 ciframi pro desetinn´a m´ısta. Takto bude moˇzn´e efektivitu tohoto zp˚usobu archivace dat pˇr´ımo porovnat s pˇredeˇsl´ymi testy.

4.3.2 V´ ysledky

U jalov´eho i ˇcinn´eho v´ykonu a harmonick´ych sloˇzek napˇet´ı i proudu nejl´epe kompri- moval Lzma (I kdyˇz tˇesnˇe, s max. rozd´ıl v CR oproti Bzip2 byl 0.1). Z´aroveˇn si ale st´ale udrˇzoval nejvˇetˇs´ı n´arok na ˇcas. Deflate algoritmus se oproti dˇr´ıvˇejˇs´ım test˚um nezmˇenil, st´ale jednoznaˇcnˇe nejrychlejˇs´ı, ale s nejmenˇs´ım dosaˇzen´ym CR.

Obr´azek 4.4: Dif. k´odovan´y jalov´y v´ykon

Nejvˇetˇs´ıho CR dos´ahly vˇsechny algoritmy pˇri kompresi frekvence. Stupeˇn kom-

(36)

veliˇciny, kde mˇel Bzip2 lepˇs´ı v´ysledky, byly napˇet´ı i proud. Rozd´ıl v CR byl zhruba 0.1 ve prospˇech .bz soubor˚u. Bzip2 tak´e soubory zkomprimovalo v mnohem kratˇs´ım ˇcase(viz4.5).

Obr´azek 4.5: Dif. k´odovan´y proud

Ukl´ad´an´ı hodnot jako Single i jako fixed point Integer se uk´azalo jako v´yhodn´e, fixed point Integer dokonce jako nejv´yhodnˇejˇs´ı zp˚usob komprese ze vˇsech testo- van´ych zp˚usob˚u. U vˇsech testovan´ych veliˇcin dosahovalo delta zak´odov´an´ı fixed point Integer˚u vˇetˇs´ıho CR, neˇz delta k´odov´an´ı Single hodnot. Bzip2 a Lzma mˇely vy- rovnan´e v´ysledky ve stupni komprese. Frekvence, napˇet´ı, proud, harmonick´e sloˇzky napˇet´ı a proudu nejl´epe archivoval Bzip2, ˇcinn´y a jalov´y v´ykon ovl´adl Lzma. Bzip2 byl ale trvale rychlejˇs´ı neˇz Lzma a vzhledem k tomu, ˇze pˇri delta k´odov´an´ı dok´azal s Lzma drˇzet krok v kompresi vˇsech veliˇcin, oznaˇcil bych ho v tˇechto testech za nejvhodnˇejˇs´ı algoritmus.

(37)

4.4 Shrnut´ı

Testy proveden´e v t´eto kapitole mˇely naj´ıt rozd´ıly mezi ukl´ad´an´ım hodnoty jako In- tegery a jako Singly, mezi diferenci´aln´ım k´odov´an´ım a norm´aln´ım z´apisem mˇeˇren´ı, mezi jednotliv´ymi algoritmy a tak´e mezi r˚uzn´ymi velikostmi komprimovan´ych sou- bor˚u. V ilustraci4.6jsem na ˇctyˇrech r˚uzn´ych veliˇcin´ach vykreslil pr˚umˇern´e v´ysledky jednotliv´ych algoritm˚u a zp˚usobu z´apisu dat.

Obr´azek 4.6: Pr˚umˇern´e v´ysledky test˚u.

• Pouˇzit´ı diferenci´aln´ıho k´odov´an´ı (v grafu4.6znaˇceno jako Δ) se na stupni kom- prese podepsalo kladnˇe, stejnˇe tak jako ukl´ad´an´ı hodnot jako Integer s pevnou ˇr´adovou ˇc´arkou (v grafu ozn. jako Int). Kombinace tˇechto dvou technik proto dosahovala v testech nejlepˇs´ıch v´ysledk˚u. Vˇsechny kompresn´ı algoritmy tedy dosahovaly nejvyˇsˇs´ıho CR pˇri pouˇzit´ı kombinace delta k´odov´an´ı a pevn´e ˇr´adov´e ˇ

c´arky. CR kompresn´ıch algoritm˚u Bzip2 a Deflate se pˇri pouˇzit´ı t´eto techniky zlepˇsil u vˇsech veliˇcin zhruba o 30% oproti norm´aln´ımu ukl´ad´an´ı hodnot jako Single. CR u Lzma se tak´e zvˇetˇsil o 15 - 30%.

• Bzip2 komprimoval s nejvyˇsˇs´ım stupnˇem komprese homogenn´ı data (napˇr.

frekvence, kter´a vˇzdy kol´ısala tˇesnˇe kolem 50Hz). Z´aroveˇn komprimoval v´yraznˇe rychleji neˇz Lzma. Dosaˇzen´y CR byl ale velmi situaˇcn´ı a pˇri kompresi sou- bor˚u s promˇenlivˇejˇs´ımi hodnotami jeho velikost v´yraznˇe klesla (nˇekdy aˇz pod

´

uroveˇn Deflate algoritmu, viz CR jalov´eho v´ykonu v 4.6).

• Lzma byl daleko vˇsestrannˇejˇs´ı a dosahoval dobr´ych v´ysledk˚u na vˇsech testo-

(38)

• Deflate mˇel opaˇcn´e v´ysledky. Komprese soubor˚u prob´ıhala s pˇrehledem nej- rychleji ale s nejmenˇs´ım CR.

• Stupeˇn komprese jako takov´y se pˇri zmˇenˇe velikosti souboru z´asadnˇe nemˇenil.

Nejvˇetˇs´ı rozd´ıl se vyskytoval vˇzdy u soubor˚u menˇs´ıch velikost´ı (100 aˇz 500kB) a s pˇrib´yvaj´ıc´ı velikost´ı se zmenˇsoval (rozd´ıl mezi 1MB a 4MB byl zpravidla menˇs´ı neˇz rozd´ıl mezi 100kB a 500kB).

• Zmˇena ve stupni komprese u Lzma byla vˇzdy kladn´a, tedy ˇc´ım vˇetˇs´ı velikost souboru, t´ım lepˇs´ı stupeˇn komprese (viz 4.7). Naproti tomu zmˇena v CR u Bzip2 byla nˇekdy kladn´a, jindy se CR pˇri zv´yˇsen´ı velikosti soubor˚u zmenˇsilo (viz 4.8).

• Vzhledem k pˇredchoz´ım dvˇema bod˚um je moˇzn´e urˇcit konstantn´ı optim´aln´ı velikost souboru pouze pro Lzma. Pokud vezmu v potaz i fakt, ˇze CEA archivy obsahuj´ı pouze mal´e mnoˇzstv´ı mˇeˇren´ı frekvenc´ı (vˇetˇsinou 3) a mnohon´asobnˇe vˇetˇs´ı mnoˇzstv´ı mˇeˇren´ı napˇet´ı, proudu, v´ykonu a dalˇs´ıch veliˇcin, Bzip2 bude m´ıt pravdˇepodobnˇe slabˇs´ı v´ysledky, neˇz vypl´yv´a z obr. 4.6.

• Za nejvhodnˇejˇs´ı kompresn´ı algoritmus, kter´y m´a nejen vysok´y stupeˇn kom-prese, ale i stabiln´ı chov´an´ı u vˇsech druh˚u dat, bych oznaˇcil Lzma. Jelikoˇz se pro Lzma stupeˇn komprese zvyˇsoval hlavnˇe mezi 100kB a 1MB a d´ale uˇz stagnoval (viz 4.7), jako nejvhodnˇejˇs´ı ve- likost souboru bych oznaˇcil 1MB. Nakonec, jak jiˇz bylo ˇreˇceno, za nejefektivnˇejˇs´ı zp˚usob pˇredbˇeˇzn´eho zpracov´an´ı bych zvolil kombi- naci delta k´odov´an´ı a pevn´e ˇr´adov´e ˇc´arky pˇri ukl´ad´an´ı mˇeˇren´ı jako datov´y typ Int32.

Obr´azek 4.7: Pr˚umˇern´e v´ysledky algoritmu Lzma pˇri kompresi napˇet´ı

Obr´azek 4.8: Pr˚umˇern´e v´ysledky algoritmu Bzip2 pˇri kompresi ˇcinn´eho v´ykonu

(39)

5 Vyuˇ zit´ı tˇ r´ıdy pˇ resnosti

Nepˇresnost mˇeˇren´ı, kter´a je vyj´adˇrena tˇr´ıdou pˇresnosti mˇeˇr´ıc´ıho pˇr´ıstroje, lze vyuˇz´ıt k transformaci ukl´adan´ych hodnot, pakliˇze se data budou pohybovat v povolen´em p´asmu stanoven´em tˇr´ıdou pˇresnosti. To de facto znamen´a, ˇze v urˇcit´em p´asmu hodnot m˚uˇzeme namˇeˇren´e hodnoty zaokrouhlovat, zvˇetˇsovat i zmenˇsovat a ukl´adat je takov´ym zp˚usobem, abychom zlepˇsili n´aslednou kompresi nˇekter´ym kompresn´ım algoritmem. V praxi nen´ı vhodn´e pouˇz´ıvat cel´e p´asmo TP, abychom se vyhnuli probl´em˚um s hraniˇcn´ımi hodnotami. Pokud se vedle sebe vyskytuje hodnota u doln´ı hranice p´asma TP a hodnota u horn´ı hranice p´asma TP, m˚uˇze se st´at, ˇze rozd´ıl mezi tˇemito hodnotami bude vˇetˇs´ı, neˇz dovolen´a odchylka. Tento neˇsvar odstran´ıme zmenˇsen´ım povolen´eho p´asma, ve kter´em se lze pohybovat (napˇr. na desetinu p´asma tˇr´ıdy pˇresnosti). Pojem p´asmo tolerance (zkr. PT) budu v t´eto kapitole pouˇz´ıvat k oznaˇcen´ı ˇc´asti tˇr´ıdy pˇresnosti (zpravidla desetiny TP), ve kter´e se hodnoty budou moci pohybovat.

5.1 Komprese zaokrouhlov´ an´ım

Jedn´a se o jednoduch´y druh ztr´atov´e komprese, kter´ym jsem se zab´yval v m´em semestr´aln´ım projektu ve 2. roˇcn´ıku. Snaˇz´ıme se zmenˇsit poˇcet m´ıst za desetinnou ˇc´arkou na co nejmenˇs´ı poˇcet, kdy se zaokrouhlen´e ˇc´ıslo st´ale nach´az´ı v p´asmu tole- rance. Pokud se v souboru nach´azej´ı podobnˇe velk´a ˇc´ısla, zaokrouhl´ı se v nˇekter´ych pˇr´ıpadech stejnˇe. Hojnˇejˇs´ı v´yskyt stejn´ych ˇc´ısel, stejnˇe tak, jako zmenˇsen´ı celkov´eho poˇctu cifer ukl´adan´ych ˇc´ısel, povede ke zlepˇsen´ı stupnˇe komprese bezeztr´atov´ych kompresn´ıch algoritm˚u.

Tabulka 5.1: Porovn´an´ı zaokrouhlov´an´ı dle r˚uzn´ych PT PT 0 PT 0,05 PT 0,1 PT 0,2 PT 1 0,9185022 0,9185 0,919 0,92 0,92

16,8826 16,88 16,88 16,9 17

1244,416 1244 1244 1244 1244

(40)

5.2 Buffer pˇ redeˇ sl´ ych hodnot

Jeden ze zp˚usob˚u pˇredbˇeˇzn´eho zpracov´an´ı spoˇc´ıv´a ve sledov´an´ı, zda se velikost ukl´adan´eho ˇc´ısla ned´a v r´amci povolen´eho p´asma pozmˇenit na velikost ˇc´ısla, kter´e se v mˇeˇren´ı vyskytovalo jiˇz dˇr´ıve. T´ımto zp˚usobem se zvˇetˇs´ı poˇcet stejn´ych ˇc´ısel nach´azej´ıc´ıch se v souboru, coˇz zefektivn´ı n´aslednou kompresi bezeztr´atov´ymi algo- ritmy Bzip2, Lzma a Deflate. Buffer pˇredeˇsl´ych hodnot, na kter´e se budeme snaˇzit ukl´adan´e ˇc´ıslo zmˇenit, bude realizov´an jako datov´y typ fronta. Frontu budeme proch´azet od konce, aby se maximalizoval poˇcet zˇretˇezen´ych stejn´ych hodnot nach´a- zej´ıc´ıch se vedle sebe. Pˇri n´alezu prvn´ıho ˇc´ısla v bufferu, kter´e se nach´az´ı uvnitˇr povolen´eho p´asma ukl´adan´eho ˇc´ısla, se velikost ukl´adan´eho ˇc´ısla zmˇen´ı na velikost ˇc´ısla nalezen´eho v bufferu. N´aslednˇe ˇc´ıslo se uloˇz´ı do souboru a tak´e se pˇrid´a na konec bufferu.

5.3 Namodelovan´ e pr˚ ubˇ ehy pˇ ri r˚ uzn´ ych parametrech

Stupeˇn komprese a ˇcasov´a n´aroˇcnost se budou mˇenit podle zmˇeny v namodelo- van´em pr˚ubˇehu veliˇciny. Zmˇena v pr˚ubˇehu z´avis´ı na velikosti bufferu a velikosti povolen´eho p´asma. Jelikoˇz se jedn´a o ztr´atovou kompresi, je vhodn´e analyzovat i zmˇenu ukl´adan´e informace od t´e p˚uvodn´ı v z´avislosti na velikosti bufferu a p´asmu tolerance.

5.3.1 P´ asmo tolerance 0,1

Na obr. 5.1 je vidˇet rozd´ıl v ukl´adan´em mˇeˇren´ı pˇri r˚uznˇe zvolen´e d´elce bufferu (zvolen´a tˇr´ıda pˇresnosti je 1 -> povolen´e p´asmo je 0,1). Pˇri vyuˇzit´ı bufferu o d´elce 125 se d´ıky delˇs´ı pamˇeti vyskytuj´ı ˇcastˇeji stejn´e hodnoty a z´aroveˇn se zmenˇsuje poˇcet unik´atn´ıch velikost´ı veliˇciny, nicm´enˇe ˇcasov´a n´aroˇcnost se d´ıky proch´azen´ı delˇs´ıho bufferu zhorˇsuje.

Obr´azek 5.1: Pr˚ubˇehy napˇet´ı pˇri vyuˇzit´ı buffer˚u r˚uzn´e velikosti a PT 0,1

(41)

5.3.2 P´ asmo tolerance 0,05

Pˇri pouˇzit´ı dvakr´at menˇs´ıho p´asma tolerance doch´az´ı k nalezen´ı vhodn´e hodnoty v bufferu m´enˇe ˇcasto a tud´ıˇz se hodnoty v bufferu mˇen´ı ˇcastˇeji. Pr˚ubˇeh ve v´ysledku neobsahuje tolik stejn´ych hodnot. Nejvhodnˇejˇs´ı velikost bufferu se tedy mˇen´ı dle povolen´eho p´asma. Pˇri pouˇzit´ı mal´eho PT na promˇenlivou veliˇcinu se bude ˇcasto bezv´yslednˇe prohled´avat cel´y buffer a to povede k velk´e ˇcasov´e n´aroˇcnosti s pouze mal´ym zlepˇsen´ım ve stupni komprese.

Obr´azek 5.2: Pr˚ubˇehy napˇet´ı pˇri vyuˇzit´ı buffer˚u r˚uzn´e velikosti a PT 0,05

5.3.3 P´ asmo tolerance 0,025

Pˇri dalˇs´ım zmenˇsen´ı p´asma se efekt opakuje. ˇRetˇezce za sebou jdouc´ıch stejn´ych hodnot jsou kratˇs´ı a vz´acnˇejˇs´ı, proto se pˇri zachov´an´ı stejnˇe velk´e osy y a d´elky vzorku st´av´a tˇeˇzˇs´ı a tˇeˇzˇs´ı vidˇet rozd´ıly mezi bufferem o vel. 1 a 125.

(42)

5.3.4 Rozd´ıly mezi pr˚ ubˇ ehy

Odchylka od p˚uvodn´ıho pr˚ubˇehu se d´a popsat pomoc´ı stˇredn´ı kvadratick´e chyby (RMSE; viz sekce 2.1.5). Na obr´azku 5.4 jsou vykresleny zmˇeny t´eto veliˇciny pˇri r˚uzn´ych povolen´ych p´asmech.

Obr´azek 5.4: RMSE pro mˇeˇren´ı napˇet´ı o velikosti 86000 vzork˚u pˇri vyuˇzit´ı bufferu pˇredeˇsl´ych hodnot

Rozd´ıl mezi velikostmi bufferu je zn´azornˇen pˇreruˇsovanou ˇc´arou. S p´asmem pˇresnosti 0,1 dosahoval buffer o velikosti 125 o 0,0084 vˇetˇs´ıho RMSE neˇz pˇri velikosti 1. Tento rozd´ıl se s rostouc´ım p´asmem tolerance line´arnˇe zvyˇsoval a pˇri PT 0,025 dosahoval rozd´ıl v RMSE jiˇz 0,0112.

Dalˇs´ı ukazatel pouˇziteln´y k anal´yze odchylky od p˚uvodn´ıho pr˚ubˇehu je stˇredn´ı absolutn´ı odchylka (MSE; viz sekce 2.1.5). Pro stejn´y pr˚ubˇeh je MSE vynesena v grafu 5.5. V´ysledek je v tomto pˇr´ıpadˇe podobn´y RMSE: Pˇri zvˇetˇsen´ı p´asma tolerance doch´az´ı k line´arn´ımu zvˇetˇsen´ı stˇredn´ı absolutn´ı odchylky. Stoup´an´ı MSE je u bufferu s velikost´ı 125 m´ırnˇe strmˇejˇs´ı neˇz u bufferu o velikosti 1.

Obr´azek 5.5: MSE pro mˇeˇren´ı napˇet´ı o velikosti 86000 vzork˚u pˇri vyuˇzit´ı bufferu pˇredeˇsl´ych hodnot

(43)

Pokud spoˇc´ıt´ame RMSE a MSE pouze pro ty hodnoty, kter´e byly upraven´e (tedy ty, kter´e se oproti origin´aln´ımu mˇeˇren´ı zmˇen´ı), rozd´ıly mezi buffery se zminimalizuj´ı, viz obr. 5.6.

Obr´azek 5.6: MSE a RMSE pouze pro upravovan´e hodnoty pˇri vyuˇzit´ı bufferu pˇredeˇsl´ych hodnot

D˚uvodem je princip, na kter´em buffer funguje: v bufferu s vˇetˇs´ı kapacitou se podaˇr´ıˇcastˇeji naj´ıt vhodnou hodnotu a tud´ıˇz se oproti origin´alu zmˇen´ı vˇetˇs´ı mnoˇzstv´ı hodnot. Takto vznik´a odchylka od origin´alu a buffery s vˇetˇs´ı velikost´ı tedy budou m´ıt i vˇetˇs´ı odchylku (jak RMSE, tak MSE). Pokud ale mˇeˇr´ıme odchylky pouze na zmˇenˇen´ych datech, pomˇer upraven´ych a neupraven´ych hodnot je irelevantn´ı. Proto lze v grafu 5.6 pozorovat mezi buffery pouze minim´aln´ı rozd´ıly. Velikosti RMSE a MSE se podobaj´ı velikostem stejn´ych veliˇcin u bufferu s velikost´ı 125, protoˇze tam se ˇcastˇeji upravovaly hodnoty.

5.4 Popis testov´ an´ı CR a ˇ casov´ e n´ aroˇ cnosti

Otestuji vzorek 51 CEA soubor˚u (jin´e, neˇz soubory z minul´ych test˚u). Namˇeˇren´e veliˇciny z nich exportuji do bin´arn´ıch soubor˚u o velikosti 1MB a n´aslednˇe zkom- primuji do bz2, 7z a zip form´atu. K pˇredbˇeˇzn´emu zpracov´an´ı dat vyuˇziji buffer pˇredeˇsl´ych hodnot tak, jak je popsan´y v pˇredch´azej´ıc´ı ˇc´asti (5.2). Zvolen´e velikosti buffer˚u jsou 1, 125, 250 a 500. Tyto buffery r˚uzn´ych velikost´ı budu testovat na ˇctyˇrech tˇr´ıd´ach pˇresnosti (2,5; 1; 0,1; 0,05), nicm´enˇe maxim´aln´ı pˇrijateln´a zmˇena ve- likosti veliˇciny bude pouze desetina tˇr´ıdy pˇresnosti (0,25; 0,1; 0,01; 0,005). Podobnˇe

(44)

a Deflate. K urˇcen´ı ˇcasov´e n´aroˇcnosti buffer˚u budu pˇri ukl´ad´an´ı kaˇzd´eho ˇc´ısla sle- dovat ˇcasovou n´aroˇcnost metody proch´azej´ıc´ı buffer a hledaj´ıc´ı vhodnou velikost k uloˇzen´ı. V m´em C# programu je napsan´a n´asledovnˇe:

private f l o a t b u f f e r T P ( S i n g l e n a c t e n a h o d n o t a , S i n g l e pasmoTP ) {

S i n g l e v a l u e ;

f o r ( i n t i = b u f f e r . Count − 1 ; i >= 0 ; i −−) {

v a l u e = b u f f e r . ElementAt ( i ) ; i f ( v a l u e > n a c t e n a h o d n o t a &&

( n a c t e n a h o d n o t a + ( n a c t e n a h o d n o t a ∗pasmoTP ) ) > v a l u e ) {

n a c t e n a h o d n o t a = v a l u e ; break ;

} e l s e i f ( v a l u e < n a c t e n a h o d n o t a &&

( n a c t e n a h o d n o t a − ( n a c t e n a h o d n o t a ∗pasmoTP ) ) < v a l u e ) {

n a c t e n a h o d n o t a = v a l u e ; break ;

} }

i f ( a k t u a l n i d e l k a b u f f e r u < m a x v e l i k o s t b u f f e r u ) {

b u f f e r . Enqueue ( n a c t e n a h o d n o t a ) ; a k t u a l n i d e l k a b u f f e r u ++;

} e l s e {

b u f f e r . Dequeue ( ) ;

b u f f e r . Enqueue ( n a c t e n a h o d n o t a ) ; }

return n a c t e n a h o d n o t a ; }

References

Related documents

Zkoumanému podniku navrhujete změnu organizačního schématu společnosti na agilnější variantu v podobě společnosti orientované na projekty?. Myslíte, že tato změna bude

Hodnocen´ı navrhovan´ e vedouc´ım diplomov´ e pr´ ace: výborně Hodnocen´ı navrhovan´ e oponentem diplomov´ e pr´ ace: výborně.. Pr˚ ubˇ eh obhajoby diplomov´ e

Hodnocen´ı navrhovan´ e vedouc´ım bakal´ aˇ rsk´ e pr´ ace: výborně Hodnocen´ı navrhovan´ e oponentem bakal´ aˇ rsk´ e pr´ ace: velmi dobře?. Pr˚ ubˇ eh obhajoby bakal´

Bezprostˇrednˇ e po v´ ybˇ eru z´ akladov´ eho frameworku bylo nutn´ e vytvoˇrit koncept cel´ e architektury nov´ ych frameworkov´ ych souˇ c´ ast´ı, kter´ e umoˇ zn´ı

Není u tohoto dílu větší odpor vzduchu oproti hladkému

Které z navrhovaných doporučení bude mít podle Vašeho názoru větší vliv na zvýšení konkurenceschopnosti firmy..

Pˇredloˇ zen´ a disertaˇ cn´ı pr´ ace se zab´ yv´ a adaptac´ı existuj´ıc´ıho syst´ emu automatick´ eho rozpozn´ av´ an´ı ˇreˇ ci (ASR) pro dalˇs´ı jazyky.. Zamˇ eˇruje

Kromˇ e fin´ aln´ı verze, kter´ a komplexnˇ e zpracov´ av´ a veˇsker´ e dan´ e poˇ zadavky, vzni- kala souˇ casnˇ e i verze, kter´ a fungovala bez pouˇ zit´ı detektoru