SROVNÁNÍ IMPLEMENTACÍ DISKRÉTNÍ WAVELETOVÉ TRANSFORMACE V JAVĚ A C/C++
|
|
- Romana Adéla Machová
- před 5 lety
- Počet zobrazení:
Transkript
1 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMMUNICATIONS SROVNÁNÍ IMPLEMENTACÍ DISKRÉTNÍ WAVELETOVÉ TRANSFORMACE V JAVĚ A C/C++ COMPARISON OF DISCRETE WAVELET TRANSFORM IMPLEMENTATIONS IN C AND JAVA DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE AUTHOR VEDOUCÍ PRÁCE SUPERVISOR Bc. KAMIL TALAVAŠEK Ing. JAN MALÝ BRNO 2008
2 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Diplomová práce magisterský navazující studijní obor Telekomunikační a informační technika Student: Talavašek Kamil Bc. ID: Ročník: 2 Akademický rok: 2007/2008 NÁZEV TÉMATU: Srovnání implementací diskrétní waveletové transformace v Javě a C/C++ POKYNY PRO VYPRACOVÁNÍ: Implementujte algoritmy pro výpočet dvourozměrné vlnkové transformace pro banku filtrů CDF 9/7 ve formě klasické konvoluce a fast lifting schématu. Využijte jazyka Java a C/C++, proveďte srovnání efektivity na konkrétních příkladech. DOPORUČENÁ LITERATURA: [1] Jansen A., Cour-Harbo A.: Ripples in Mathematics: The Discrete Wavelet Transform, Springer, ISBN [2] Herout P.: JAVA - bohatství knihoven. Kopp České Budějovice, s. ISBN [3] Václav K.: Učíme se programovat v Borland C++ Builder a jazyce C++, Computer Press, 2002, ISBN: Termín zadání: Termín odevzdání: Vedoucí práce: Ing. Jan Malý prof. Ing. Kamil Vrba, CSc. předseda oborové rady UPOZORNĚNÍ: Autor diplomové práce nesmí při vytváření diplomové práce porušit autorská práve třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb.
3 LICENČNÍ SMLOUVA POSKYTOVANÁ K VÝKONU PRÁVA UŽÍT ŠKOLNÍ DÍLO uzavřená mezi smluvními stranami: 1. Pan/paní Jméno a příjmení: Bc. Kamil Talavašek Bytem: Narozen/a (datum a místo): , Jihlava (dále jen "autor") a 2. Vysoké učení technické v Brně Fakulta elektrotechniky a komunikačních technologií se sídlem Údolní 244/53, Brno 2 jejímž jménem jedná na základě písemného pověření děkanem fakulty: prof. Ing. Kamil Vrba, CSc. (dále jen "nabyvatel") Článek 1 Specifikace školního díla 1. Předmětem této smlouvy je vysokoškolská kvalifikační práce (VŠKP): disertační práce diplomová práce bakalářská práce jiná práce, jejíž druh je specifikován jako... (dále jen VŠKP nebo dílo) Název VŠKP: Srovnání implementací diskrétní waveletové transformace v Javě a C/C++ Vedoucí/školitel VŠKP: Ing. Jan Malý Ústav: Ústav telekomunikací Datum obhajoby VŠKP:... VŠKP odevzdal autor nabyvateli v: tištěné formě - počet exemplářů 1 elektronické formě - počet exemplářů 1 2. Autor prohlašuje, že vytvořil samostatnou vlastní tvůrčí činností dílo shora popsané a specifikované. Autor dále prohlašuje, že při zpracovávání díla se sám nedostal do rozporu s autorským zákonem a předpisy souvisejícími a že je dílo dílem původním. 3. Dílo je chráněno jako dílo dle autorského zákona v platném znění.
4 4. Autor potvrzuje, že listinná a elektronická verze díla je identická. Článek 2 Udělení licenčního oprávnění 1. Autor touto smlouvou poskytuje nabyvateli oprávnění (licenci) k výkonu práva uvedené dílo nevýdělečně užít, archivovat a zpřístupnit ke studijním, výukovým a výzkumným účelům včetně pořizovaní výpisů, opisů a rozmnoženin. 2. Licence je poskytována celosvětově, pro celou dobu trvání autorských a majetkových práv k dílu. 3. Autor souhlasí se zveřejněním díla v databázi přístupné v mezinárodní síti ihned po uzavření této smlouvy 1 rok po uzavření této smlouvy 3 roky po uzavření této smlouvy 5 let po uzavření této smlouvy 10 let po uzavření této smlouvy (z důvodu utajení v něm obsažených informací) 4. Nevýdělečné zveřejňování díla nabyvatelem v souladu s ustanovením 47b zákona č. 111/1998 Sb., v platném znění, nevyžaduje licenci a nabyvatel je k němu povinen a oprávněn ze zákona. Článek 3 Závěrečná ustanovení 1. Smlouva je sepsána ve třech vyhotoveních s platností originálu, přičemž po jednom vyhotovení obdrží autor a nabyvatel, další vyhotovení je vloženo do VŠKP. 2. Vztahy mezi smluvními stranami vzniklé a neupravené touto smlouvou se řídí autorským zákonem, občanským zákoníkem, vysokoškolským zákonem, zákonem o archivnictví, v platném znění a popř. dalšími právními předpisy. 3. Licenční smlouva byla uzavřena na základě svobodné a pravé vůle smluvních stran, s plným porozuměním jejímu textu i důsledkům, nikoliv v tísni a za nápadně nevýhodných podmínek. 4. Licenční smlouva nabývá platnosti a účinnosti dnem jejího podpisu oběma smluvními stranami. V Brně dne: Nabyvatel Autor
5 ANOTACE Tato diplomová práce se zabývá diskrétní vlnkovou transformací dvourozměrného diskrétního signálu s použitím vlnky CDF9/7. Obsahuje teoretické principy diskrétní vlnkové transformace, popis konvolučního a Lifting principu výpočtu, vlastnosti vlnky CDF9/7, možnosti zpracování dvourozměrného vstupního signálu a s tím spojené řešení okrajových stavů. V rámci diplomové práce byly implementovány oba principy (konvoluce, Lifting) výpočtu dvourozměrné diskrétní vlnkové transformace s využitím vlnky CDF9/7 a to v programovacím jazyce C++ a Java. Vznikly tak čtyři aplikace, které byly nejprve podrobně popsány a poté vzájemně porovnány zejména z hlediska rychlosti výpočtu diskrétní vlnkové transformace. Závěrem byla provedena analýza získaných výsledků a zhodnocení celé práce. Klíčová slova: Diskrétní vlnková transformace, dvourozměrný diskrétní signál, vlnka CDF9/7, konvoluce, lifting, C++, Java, porovnání, výpočetní náročnost
6 ABSTRACT This thesis deals with discrete wavelet transform of a two dimensional discrete signal using the CDF9/7 wavelet. It contains theoretical principles of discrete wavelet transformation, a description of the convolution and Lifting calculation principle, characteristics of the CDF9/7 wavelet, the possibilities of processing a two dimensional input signal and boundary handling. Both principles (convolution, Lifting) of the calculation of two dimensional discrete wavelet transformation have been implemented within the thesis using the CDF9/7 wavelet in the C++ and Java programming languages. Four applications have been created that way which have been described in detail and then compared with one another especially in light of the calculation speed of discrete wavelet transformation. Finally an analysis of the acquired results and an evaluation of the whole thesis has been performed. Keywords: Discrete Wavelet Transform, two-dimensional discrete signal, wavelet CDF9/7, Convolution, Lifting, C++, Java, Comparation, calculation speed 2
7 PROHLÁŠENÍ Prohlašuji, že svou diplomovou práci na téma "Srovnání implementací diskrétní waveletové transformace v Javě a C/C++" jsem vypracoval samostatně pod vedením vedoucího diplomové práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené diplomové práce dále prohlašuji, že v souvislosti s vytvořením této diplomové práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení 152 trestního zákona č. 140/1961 Sb. V Brně dne (Podpis autora) 3
8 PODĚKOVÁNÍ Děkuji vedoucímu diplomové práce Ing. Janu Malému za velmi užitečnou metodickou pomoc a cenné rady při zpracování diplomové práce. V Brně dne (podpis autora) 4
9 OBSAH 1 ÚVOD TEORETICKÝ ÚVOD Vlnky MR-analýza Diskrétní vlnková transformace v diskrétním čase Dekompozice signálu Rekonstrukce signálu Lifting princip Laurentovy polynomy Polyfázové filtry Převod vlnky na koeficienty liftingu Banka filtrů CDF 9/ VÝPOČET 2D DISKRÉTNÍ VLNKOVÉ TRANSFORMACE Separabilní transformace 2D DWT Okrajové stavy Ořezání Periodizace Prodloužení IMPLEMENTACE DWT V MATLBU Konvoluční princip Dekompoziční část Funkce c=sym_conv(x,h,smer) Rekonstrukční část Lifting princip Dekompoziční část Rekonstrukční část IMPLEMENTACE DWT V C Všeobecná specifikace implementace DWT Specifikace implementace DWT Vstupní parametry a jejich formát Výstupy implementace Použitý datový typ Konvoluční princip Obecný popis algoritmu Deklarační část Třída imp_ch Třída mat_koef Třída mat_koef_rek
10 5.2.6 Funkce main Lifting princip Obecný popis algoritmu Deklarační část Třída mat_koef Třída mat_koef_rek Funkce main IMPLEMENTACE DWT V JAVĚ Programovací jazyk Java Původ jazyka Základní vlastnosti jazyka Java Výhody a nevýhody programovacího jazyka Java Implementace DWT v Javě SROVNÁNÍ IMPLEMENTACÍ DWT V PROGRAMOVACÍCH JAZYCÍCH C++ A JAVA Výpočetní náročnost DWT Asymptotická složitost DWT Časová složitost výpočtu DWT pomocí konvolučního principu Časová složitost výpočtu DWT pomocí lifting principu Porovnání časové složitosti konvolučního a lifting principu výpočtu DWT Skutečná časová složitost konvolučního principu výpočtu DWT Skutečná časová složitost lifting principu výpočtu DWT Porovnání skutečné časové složitosti konvolučního a lifting principu výpočtu DWT Porovnání skutečné časové složitosti výpočtu DWT v C++ a Javě Prostorová složitost výpočtu DWT Asymptotická prostorová složitost výpočtu DWT Skutečná a minimální prostorová složitost výpočtu DWT Srovnání obrazu Ukazatel PSNR Hodnoty PSNR implementace DWT ZÁVĚR LITERATURA
11 SEZNAM OBRÁZKŮ Obr DWT a IDWT pomocí kvadraturní banky zrcadlových filtrů Obr DWT a IDWT vyjádřena pomocí polyfázových flitrů Obr Schéma separabilní 2D DWT Obr Reprezentace výsledků 2D DWT Obr Třída mat_koef Obr Třída mat_koef_rek Obr Třída mat_koef Obr Časová složitost výpočtu DWT Obr Časová složitost výpočtu DWT konvoluční princip Obr Časová složitost výpočtu DWT lifting princip Obr Prostorová složitost výpočtu DWT SEZNAM TABULEK Tab Tabulka koeficientů impulsních charakteristik filtrů CDF 9/ Tab Tabulka lifting koeficientů a normalizace Tab Časová složitost výpočtu DWT s využitím konvolučního principu Tab Časová složitost výpočtu DWT s využitím lifting principu Tab Porovnání konvolučního a lifting principu výpočtu DWT Tab Porovnání časové složitosti výpočtu DWT v C++ a Javě Tab Skutečná prostorová složitost výpočtu DWT Tab Hodnoty PSNR
12 SEZNAM POUŽITÝCH ZKRATEK 2D-DWT (DWT2) dvourozměrná DWT B 1 Bajt (8 bitů) CDF 9/7 biortogonální vlnka Cohen-Daubechies-Feauveau C/C++ - programovací jazyk DP filtr typu dolní propust DWT diskrétní vlnková transformace FIR konečná impulzní odezva HotSpot Optimalizace zdrojového kódu v JVM HP filtr typu horní propust IDWT inversní (zpětná) diskrétní vlnková transformace IIR nekone_ná impulzní odezva Java programovací jazyk JIT - Just In Time, metoda překladu aplikací JPEG Joint Photographic Experts Group, obrazový formát založený na DWT JVM Java Virtual Machine, virtuální stroj Javy, interpreter MATLAB - programové prostředí a skriptovací programovací jazyk pro vědeckotechnické numerické výpočty MR MultiResolution, vícerozměrná MSE Mean Squared Error, střední kvadratická chyba OOP Objektově orientované programování px pixel, jednotka obrazové informace PSNR Peak Signal to Noise Ratio, špičkový odstup signál/šum QMF - Quadrature Mirror Filter, kvadraturní zrcadlový filtr SIMD Single Instruction Multiple Data, architektura paralelních systémů 8
13 1 ÚVOD Tato práce se zabývá diskrétní vlnkovou transformací. Jedná se o stále poměrně novou metodu transformace signálu, která má širokou škálu praktického použití. Od analýz signálu, přes odstranění šumů, až po kompresi dat, zejména dat obrazových. V úvodní části práce je vysvětlen matematický princip vlnkové transformace, definice mateřské vlnky a podmínky pro její vlastnosti. Dále pak postup, jak pomocí koeficientů translace a dilatace, získat z mateřské vlnky vlnky upravené a vztah těchto vlnek k diskrétní vlnkové transformaci. Další kapitola se zabývá výhradně diskrétní dyadickou vlnkovou transformaci. Její definicí a zejména možností převedení transformace na filtraci bankou kvadraturních zrcadlových filtrů a tím výrazně zjednodušit její použití. Dále je popsán princip liftingu, který ještě více zrychluje výpočet diskrétní vlnkové transformace. Z důvodu velkého rozšíření obrazových signálů, je zbývající část této práce věnována transformaci dvourozměrného diskrétního signálu pomocí banky filtrů CDF9/7, a to pomocí konvolučního i lifting principu. Jako součást této diplomové práce byly vytvořeny implementace diskrétní vlnkové transformace pro zpracování vstupního dvourozměrného signálu s použitím konvolučního a lifting principu výpočtu v programovacích jazycích Java a C++. Tyto implementace byly podrobně popsány a vzájemně porovnány z hledisky časové, prostorové složitosti výpočtu a kvality obrazu po provedené dekompozici obrazového signálu a jeho zpětné rekonstrukci. Zjištěné výsledky jsou přehledně shrnuty v závěru. 9
14 2 TEORETICKÝ ÚVOD Vlnková transformace je v dnešním době velmi využívaná metoda analýzy signálů. Umožňuje zpracování spojitých i diskrétních signálů a to jak jednorozměrných tak i vícerozměrných. Používá se k frekvenčně časové analýze, rekonstrukci zarušených či neúplných signálů a v neposlední řadě ke kompresi dat především obrazových signálů. 2.1 Vlnky Matematické vyjádření vlnek vychází z principu popsaných S. Mallatem [2]. Úvodní část byla převzata z disertační práce Mgr. Pavla Rajmice Ph.D [1]. Základem vlnkové transformace jsou, jak již samotný název napovídá, vlnky. Vlnka je funkce ψ L 2 ( R) patřící do prostoru L 2 ( R) všech komplexních funkcí, který je definován jako množina L 2 = 2 ( R) f : R C f ( x) dx <, (2.1) kde integrál je uvažován v Lebesgueově smyslu a R,C značí množinu reálných resp. komplexních čísel. Tyto funkce představují signály s konečnou energií. Normu, nebo-li vnitřní součin v L 2 ( R) definujeme f 2 ( x) dx, resp. f, g = f ( x) g( x dx = f ) kde g(x) značí funkci komplexně sdruženou k funkcí g (x) Aby byla funkce ψ vlnkou, musí splňovat podmínku přípustnosti (2.2) 0 < ψˆ ( ω) ω 2 < (2.3) kde ψˆ značí integrální Fourierovu transformaci funkce ψ. Podmínka přípustnosti je postačující podmínkou pro existenci inverzní integrální vlnkové transformace. Zároveň platí podmínka nulové střední hodnoty 10
15 ψ ( x) dx = 0 (2.4) Z této podmínky vyplívá, že vlnka musí mít oscilatorický charakter a jejich kmity musí být tlumeny směrem k ±. Vlnková transformace spojitého signálu f ( x) je definována vztahem W x b a ( f ; a, b) = f ( x) ψ dx, (2.5) kde a, b R a každá funkce f závisí na těchto dvou spojitých proměnných, avšak pro jednoznačnou existenci inverzní transformace, stačí brát v úvahu pouze některé x b z funkcí ψ. Definujeme tedy jen spočetné množství funkcí ψ j, k a ψ j j ( t) = 2 ( 2 t k ) 2 j, k ψ (2.6) Vlnku ( t) ψ označujeme jako vlnku mateřskou a koeficienty j, k Z, kde Z je množina celých čísel, jako koeficienty dilatace a translace. Energie vlnky odpovídá 2 kvadrátu plochy uzavřené pod vlnkovou funkcí, proto je nutné parametrem 2 j kompenzovat velikost vůči časové délce, aby plocha zůstala totožná a transformace neměnila energii signálu. Byly nalezeny funkce ψ takové, že { j, k } j k Z 2 libovolnou funkci f ( t) L ( R) f ( t) = f ( t) j, k Z, j, k ψ j, k ψ je ortonormální bází L 2 ( R) lze vyjádřit součtem vlnkové řady,. Pak ψ (2.7) kde c j k f j, k, =,ψ je j,k-tý vlnkový koeficient MR-analýza Použití vlnek s malou hodnotou dilatace j vede k analýze trendu signálu a naopak blíží-li se hodnota tzv. měřítková funkce φ L 2 ( R) lze rozložit L 2 ( R) j dochází k analýze detailů v signálu. Pokud existuje 11
16 ( R) V W W L, 2 L = (2.8) j j j+ 1 kde značí ortogonální součet prostorů a = ω k= ( t) ω( t) = s ψ ( t) W j j, k j, k, s j, k C (2.9) j = 1 V j x j kψ j i= k = ( t) x( t) = s ( t),, k, s j, k C (2.10) Prostory V W W K jsou navzájem ortogonální. Dvě funkce f, g jsou j, j, j+ 1, ortogonální pokud je jejich norma nulová f, g = 0. funkcí f 2 Každou funkci f L ( R) ( x) = a ( x ) + b ( x) l Z lze rozložit jako součet navzájem ortogonálních φ (2.11) 0l 1 j, kψ j, k k, j Z, j 0 kde a 0 l, b C jsou souřadnice funkce f v bázích prostorů V, W, 1 K j, k 0 0, W 2.2 Diskrétní vlnková transformace v diskrétním čase Z výše uvedeného vztahu (2.6) vyplívá, že můžeme změnou koeficientů j a k vytvořit nekonečné množství vlnek z vlnky mateřské a teoreticky tedy i nekonečné množství výstupních dat. Při práci s diskrétním signálem se proto využívají vlnky jejichž koeficienty dilatace a translace jsou mocninou dvojky. Takové vlnky označujeme jako vlnky dyadické a diskrétní vlnková transformace (DWT) rozkládá vstupní diskrétní signál právě do dyadických vlnek. Diskrétní vlnkovou transformaci lze vyjádřit pomocí ortogonální matice W řádu n n. Pokud je vstupní diskrétní signál [ n] pak jeho vlnkovou transformací je vektor ( ) T x uvažován jako vektor x = ( x x x ) T y = Zpětná diskrétní vlnková transformace y y y 1, 2,..., n definovaný rovnicí 1, 2,..., n y = Wx (2.12) 12
17 1 T x = W y = W y (2.13) Při výpočtu diskrétní vlnkové transformace je s výhodou využíto poznatků S. Mallata [2], kdy je násobení vstupního vektoru x s ortogonální maticí W převedeno na filtraci. Filtrace se provádí pomocí kvadraturní zrcadlové banky filtrů, skládající se ze dvou zrcadlových filtrů typu dolní propust (DP) dolní propust (DP) a HP HP. Tato banka filtrů je zobrazena na obrázku Obr Obr DWT a IDWT pomocí kvadraturní banky zrcadlových filtrů Dekompozice signálu Zrcadlové filtry jsou filtry, které mají zrcadlově převrácené modulové charakteristiky. Důležité je, aby příslušné zrcadlové filtry měli takové impulsní charakteristiky, aby byla splněna podmínka perfektní rekonstrukce. Signál x[n] vstupuje dvojice filtrů DP D a HP D v dekompoziční části, jsou tedy označeny indexem D. Na výstupu DP D se objeví filtrovaný signál, který má ovšem stejnou délku jako signál vstupní, a proto je provedeno podvzorkování (decimace) dvěma. Tímto procesem jsme získali aproximační koeficienty transformovaného signálu. Obdobně po průchodu vstupního signálu filtrem HP D a podvzorkováním výsledku dvěma, získáváme detailní koeficienty transformovaného signálu. Samotná filtrace je definována jako konvoluce vstupního signálu a koeficientů impulsní charakteristiky příslušného filtru. Při zahrnutí podvzorkování dvěma dostáváme rovnici pro dekompozici vstupních vzorků y [ n] = h[ n]* x[ n] (2.14) 13
18 a[ n] = h0 [ n]* x[2n] = h0 m= y [ m] x[2n m] d [ n] = g0 [ n]* x[2n] = g0 m= y [ m] x[2n m] (2.15) (2.16) kde y a [ n], y d [ n] jsou aproximační resp. detailní koeficienty a h 0 [ n], [ n] koeficienty impulsní charakteristiky filtru DP D resp. HP D. g 0 jsou Výše popsaný postup představuje jednu úroveň dekompozice diskrétní vlnkové transformace. Další úroveň dekompozice je získána opakováním stejného postupu s aproximačními koeficienty jako vstupním signálem a zachováním koeficientů detailních. Pokud je délka vstupního signálu 2 j, může být dekompozice provedena až do j-té úrovně. Toto je dyadický princip, tj. každá úroveň dekompozice je vzhledem k předchozí poloviční, resp. čtvrtinová v případě 2D-DWT Rekonstrukce signálu Rekonstrukce signálu probíhá obdobně jako jeho dekompozice. Aproximační a detailní koeficienty jsou nadvzorkovány dvěma a výsledný signál je filtrován pomocí dvojice rekonstrukčních filtrů DP R a HP R. Nadvzorkování se provádí vložením nulových hodnot mezi vzorky původního signálu, z důvodu zamezení výskytu nežádoucích složek ve výsledném nadvzorkovaném signálu následuje číslicový filtr typu DP, nebo se mezi vzorky nevkládají vzorky s nulovou hodnotou, ale s hodnotou aproximovanou např. z předcházejícího vzorku. Rekonstrukci lze tedy vyjádřit vztahem x [ n] = h + = 1 [ n]* ya[ n] g1[ n]* yd [ n] h1[ m] ya[ n m] + g1 m= m= [ m] y [ n m] d (2.17) kde y a [ n] a [ n] dvěma a h 1 [ n], [ n] y d jsou koeficienty aproximační a detailní nadvzorkované g 1 jsou koeficienty impulsní charakteristiky filtru DP R resp. HP R. Přirozeně může být i rekonstrukce prováděna ve více úrovních, musí se však použít aproximačních a detailních koeficientů vytvořených po provedení dekompozice stejné úrovně. 14
19 2.3 Lifting princip Při použití lifting metody k výpočtu DWT dochází k rozložení kvadraturní zrcadlové banky filtrů (QMF) na vetší množství odlišných filtrů uspořádaných v tzv. prediction a update krocích. Celý proces výpočtu DWT se výrazně zrychlí a to zejména při použití dlouhých vlnek Laurentovy polynomy Filtry s konečnou impulsní odezvou FIR, které jsou většinou použity k vytvoření banky QMF, mají tedy konečné množství hodnot v impulsní charakteristice a obrazem její Z-transformace je Laurentův polynom q h h z (2.18) k k ( z ) = k = p Laurentův polynom se od normálního polynomu liší tak, že může obsahovat záporné exponenty a jeho řád je dán h = q p (2.19) Součet nebo rozdíl dvou Laurentových polynomů je opět Laurentův polynom a součin polynomu řádu a, b je polynom o řádu a+b. přesné dělení většinou není možné, ale dělení se zbytkem vždy. Tedy pokud existují dva nenulové polynomy a(z) a b(z) řádu a( z) b( z) bude vždy existovat Laurentův polynom q(z) řádu q( z) = a( z) b( z) a polynom r(z) s řádem menším než je řád polynomu b(z) a ( z) = b( z) q( z) + r( z) (2.20) Polyfázové filtry Rozepíšeme-li konvoluci ve vztahu (2.15), který udává výsledný signál po průchodu vstupního signálu dekompozičním filtrem DP D, aproximační koeficienty lze zapsat pomocí rovnice [ n] = h [ ] x[ 2n] + h [ 1] x[ 2n 1] + h [ 2] x[ 2 2] + L n y a (2.21) Oddělíme-li sudé a liché vzorky dostáváme [ n] = h [ ] x[ 2n] + h [ 2] x[ 2n 2] + L+ h [ 1] x[ 2n 1] + h [ 3] x[ 2n 3]L y a (2.22) 15
20 Označíme-li impulsní odezvy sudých vzorků obdobně, získáváme rovnici y [ n] = h n]* x [ n] + h [ n]* x [ n 1] h 0 s a lichých h 0 l a vzorky samotné a 0s[ s 0l l (2.23) Z rovnice je zřejmé, že se jedná o dva různé filtry, jejichž vstupní signál tvoří posloupnosti sudých a lichých vzorků původního signálu, tyto filtry označujeme jako polyfázové. Aplikujeme-li tento rozklad na všechny filtry v bance QMF. Dostáváme jednostupňovou dekompozici a rekonstrukci DWT vyjádřenou pomocí polyfázových filtrů. Blokové schéma je zobrazeno na obrázku Obr Obr DWT a IDWT vyjádřena pomocí polyfázových flitrů [3] P0(z) Zapíšeme-li dekompoziční a rekonstrukční častí jako polyfázové matice P1(z) a P0 ( z) P1 ( z) H = H G = G 0, s 1, s 0, s 1, s H H G G 0, l 1, l 0, l 1, l (2.24) (2.25) Z podmínky perfektní rekonstrukce dostáváme rovnici, k P0 ( z) P1 ( z) = z I (2.26) 16
21 která představuje skutečnost, že výsledek součinu polyfázových matic, dekompoziční a rekonstrukční časti, se musí rovnat jednotkové matici I s konstantním zpožděním, představující člen k z. Z této rovnice lze vyvodit podmínky pro jednotlivé filtry v rekonstrukční a dekompoziční části H H 0 ( 1 z k z) = z G ( ) (2.27) 1( 0 z k z) = z G ( ) (2.28) V případě, že H 0 (z)=g 0 (z) a H 1 (z)=g 1 (z) jedná se o ortogonální vlnkovou transformaci, v opačném případě jde o biortogonální vlnkovou transformaci [3]. Z toho vyplívá, že pokud mají rekonstrukční a dekompoziční přenosové charakteristiky odlišný počet prvků, jedná se o biortogonální vlnkovou transformaci např. CDF9/ Převod vlnky na koeficienty liftingu Pokud dekompoziční matici P ( ) rozložíme na součin dvou matic podle 0 z 1 0 P ( z) = P 0 ( S( z) 1 0 z ) (2.29) Pak z rovnic H H ( z) H ( z) H ( z) S( z) = (2.30) 1, s 1, s + 0, s ( z) H ( z) H ( z) S( z) = (2.31) 1, l 1, l + 0, l lze určit funkci S(z) tak, aby rovnice (2.30)-(2.31) platili zároveň. Tento postup se nazývá primal lifting neboli update krok. Obdobný způsobem lze zavést funkci T (z), pak mluvíme o dual liftingu nebo prediction kroku. Matice P ( ) je opět rozložena na součin dvou matic dle 0 z 1 T ( z) P ( z) = P 0 ( z ) (2.32) Funkci T (z) lze opět vyjádřit z rovnic 17
22 H H ( z) H ( z) H ( z) T ( z) = (2.33) 0, s 0, s + 1, s ( z) H ( z) H ( z) T ( z) = (2.34) 0, l 0, l + 1, l Sloučením obou přístupů k rozkladu matice vznikne metoda výpočtu vlnkové transformace zvaná lifting. Pokud se nepodaří rozložit přenosové funkce do součinu matic primal a dual liftingu, může za sebou následovat takových kroků více, dokud z původní matice nezůstane pouze matice s konstantami na hlavní diagonále. V takové případě se postupně střídají primal a dual lifting. Jedna dvojice primal a dual liftingu se nazývá jeden krok liftingu. Pomocí matic se spojení m kroků liftingu zapíše jako P ( z) = z 0 j K K 2 m i= 1 1 Si ( z) Ti ( z) 1 (2.35) kde konstanty K 1 a K 2 zajišťují normalizaci hodnot z důvodu zachování energie. 2.4 Banka filtrů CDF 9/7 Rodina vlnek CDF M/N, nebo-li Cohen-Daubechies-Feauveau, je historický první rodinou biortogonálních vlnek. Jejich autorem je Ingrid Daubechies. Banka filtrů CDF 9/7 je požívána při ztrátové kompresi u formátu JPEG2000 a využívá principu liftingu. Číslo 9/7 udává počet koeficientů dekompozičního/rekonstrukčního filtru. Dekompoziční filtr je vyjádřen pomocí rovnic ( z) = H 4 ( z + z ) + H 2 ( z + z ) H 0 H s + (2.36) 2 1 ( z) = H ( z + z ) + H ( z 1) H l (2.37) Koeficienty zbytků Laurentových polynomů jsou 18
23 r 0 = H 0 2 H 4 H H 1 3 (2.38) r 1 = H 2 H 4 H 4 H H 1 3 (2.39) s 0 = H 1 H 3 H 3 r r 0 1 (2.40) t 0 r0 2r1 Pak jsou definovány konstanty = (2.41) α = H H (2.42) 4 / 3 β = H r (2.43) 3 / 1 γ = r s (2.44) 1 / 0 δ = s t (2.45) 0 / 0 ς = t = (2.46) 0 Po lifting rozkladu dostáváme sérii polyfázvých matic 1 ( 1 z ) 1 α + P = 0 ( z) β ( 1+ z) 1 ( 1 z ) 0 1 γ δ 0 ς ( 1+ z) 1 0 1/ ς 0 (2.47) která může být vyjádřena pomocí rovnic vhodných k implementaci 19
24 (0) s j x2 j = (2.48) d (2.49) (0) j = x2 j+ 1 (0) (0) ( s + s ) d α (2.50) (1) (0) j = d j + j j+ 1 (1) (1) ( d + d ) s β (2.51) (1) (0) j = s j + j j= 1 (1) (1) ( s + s ) d γ (2.52) (2) (1) j = d j + j j+ 1 (2) (2) ( d + s ) s δ (2.53) (2) (1) j = s j + j j 1 s = ς (2.54) (2) j s j Kde s j představuje aproximační koeficienty, d j detailní koeficienty a x j vstupní diskrétní signál. Číslo v závorce v horním indexu koeficientů udává pořadí liftingu kroku. d = /ς (2.55) (2) j d j 20
25 3 VÝPOČET 2D DISKRÉTNÍ VLNKOVÉ TRANSFORMACE K transformaci dvourozměrného diskrétního signálu, např. digitálních obrazových dat, se využívá dvourozměrné vlnkové transformace s diskrétním časem, označovanou jako 2D-DWT. 3.1 Separabilní transformace 2D DWT Separabilní transformace je založena na principu převodu dvourozměrného signálu na více signálu jednorozměrných, které jsou transformovány pomocí jednorozměrné diskrétní vlnkové transformace. Transformace probíhá následujícím způsobem. Nejprve jsou provedeny transformace jednotlivých řádků a výsledek je podvzorkován dvěma. Vznikají tak dvě matice obsahující aproximační (L) a detailní (H) koeficienty transformovaného signálu po řádcích. Obě matice jsou dále transformovány po sloupcích a výsledek je opět podvzorkován dvěma. Vznikají tak čtyři matice LL1, LH1, HL1, HH1. Číslo označuje úroveň dekompozice. Celý postup je zobrazen na obrázku Obr Obr Schéma separabilní 2D DWT 21
26 Výsledek je možné reprezentovat pomocí matice sestavené ze čtyř výsledných matic podle následujícího obrázku Obr Obr Reprezentace výsledků 2D DWT Dvourozměrná diskrétní vlnková transformace může být prováděna ve více úrovních. Na základě dyadického principu obsahuje další úroveň dekompozice 4x méně vzorků, než bylo v úrovni předcházející. Vstupním signálem je vždy matice LL předcházející úrovně. Tato matice obsahuje pouze aproximační koeficienty. Celkový výsledek víceúrovňové dekompozice má stejný počet prvků, jako signál původní, avšak úplně jiné rozložení energie. Ta je koncentrována do aproximačních koeficientů, tedy především do podmatice LL v nejvyšší úrovni dekompozice. 3.2 Okrajové stavy Je-li transformován konečný signál, vzniká na jeho koncích (okrajích) problém okrajového stavu. Jak konvoluční tak i lifting princip potřebuje k vypočtení okrajových hodnot vycházet z nedefinovaných hodnot původního signálu. Existuje několik řešení toho problému Ořezání Při použití metody ořezávání, jsou nedefinované hodnoty, potřebné k výpočtu, nahrazeny nulou. Výsledný signál je pak ořezán na velikost očekávaného signálu. Tento princip nesplňuje podmínku perfektní rekonstrukce a tak při rekonstrukci signálu vzniká chyba v okolí okrajů Periodizace Další možnou metodou ošetření okrajových stavů je periodizace. Při použití této metody nejsou nedefinované hodnoty nahrazeny nulovými hodnotami, jak tomu bylo u metody ořezání, ale jsou nahrazeny periodickým prodloužením signálu. Výsledek je 22
27 opět ořezán na očekávanou velikost. Metoda splňuje podmínku perfektní rekonstrukce a je poměrně rychlá a jednoduchá Prodloužení Poslední metoda řešení okrajových jevů, je metoda prodloužení. Zaklaní princip je obdobný jako u metod periodizace a ořezání. Signál je rozšířen různými hodnotami, výsledek po transformaci není ořezán jako u předcházejících dvou metod, ale ponechán prodloužený. Druhy možného rozšíření jsou následující: - Nulové (zero-padding) signál je doplněn nulovými hodnotami podobně jako u metody ořezání - Symetrické Vkládané hodnoty jsou zrcadlově obrácené hodnoty z okraje signálu - Periodické Vkládané hodnoty jsou hodnoty, obdobně jako u metody periodizace, periodického prodloužení signálu - Hladké Prodloužení je realizováno první nebo druhou derivací několika posledních prvků signálu. 23
28 4 IMPLEMENTACE DWT V MATLBU K implementaci bylo použito nástroje Matlab umožňující jednoduchou práci s maticemi a snadnou interpretaci výsledků. K implementaci byla zvolena banka filtrů CDF 9/7 a to jak s použitím konvoluce, tak i s použitím lifingu. 4.1 Konvoluční princip Program je realizován pomocí funkce y=dwt_cdf97_konv(x,level), jak je vidět funkce má dva vstupní parametry x a level. X představuje vstupní 2D signál reálných hodnot a level požadovanou úroveň dekompozice nebo rekonstrukce zadanou pomocí celého čísla. Pokud zadané číslo bude kladné pak bude prováděna dekompozice vstupního signálu a pokud záporné tak jeho rekonstrukce. Nejprve definujeme koeficienty impulsních charakteristik filtrů v bance QMF pro CDF 9/7. Použité koeficienty jsou zapsány v tabulce Tab n DP D h 0 [ n] HP D g 0 [ n] DP R h 1 [ n] HP R [ n] -4 0, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , g 1 Tab Tabulka koeficientů impulsních charakteristik filtrů CDF 9/7 Dále je podle zadaného parametru level rozhodnuto zda se bude jednat o dekompozici nebo rekonstrukci. 24
29 4.1.2 Dekompoziční část Vstupní signál je v této části podroben filtraci pomocí DP D h 0 [ n] a HP D [ n] g 0. Nejprve ve směru sloupců a po podvzorkování dvěma ve směru řádků. Vznikají tak podmatice LL, HL, LH a HH, které jsou uloženy na patřičná místa ve výstupní matici y a pokud je to možné, je celý postup opakován, ale tentokrát je vstupní signál podmatice LL. Filtrace je zajištěna pomocí funkce c=sym_conv(x,h,smer) Funkce c=sym_conv(x,h,smer) Tato funkce zajišťuje filtraci signálu se zadanou impulsní charakteristikou a směrem v jakém bude prováděna tato filtrace. Vstupními parametry tedy jsou x, h, smer, kde x je vstupní signál, h koeficienty impulsní charakteristiky a smer může nabývat hodnot radek nebo sloupec. V této funkci je také zahrnuta metoda ošetření okrajových stavů a to symetrického prodloužení. Před vlastní konvolucí vstupního signálu jsou jednotlivé řádky resp. sloupce prodlouženy o polovinu hodnot (zaokrouhleno směrem dolů) impulsní charakteristiky na každou stranu řádku resp. sloupce. Hodnoty jsou zrcadlově obrácené vzorky, které zůstanou po podvzorkování. Samotná konvoluce je zajištěna pomocí vnitřní funkce Matlabu conv2(x,h), která realizuje konvoluci dvou matic. V našem případě se jedná o vstupní symetricky prodloužený signál a řádkový resp. sloupcový vektor hodnot impulsní charakteristiky filtrů. Výsledný signál je na závěr ořezán na požadovanou velikost Rekonstrukční část Tato část zajišťuje rekonstrukci vstupního signálu. Nejprve dojde k nalezení matic LL i, HL i, LH i a HH i, kde i značí úroveň dekompozice signálu. Nadvzorkováním sloupců a následnou filtrací těchto matic, pomocí funkce sym_conv(x,h,smer) v řádcích, dostáváme transformované matice. Sečtením příslušných dvojic těchto matic, při jejich současném nadvzorkování v řádcích, získáváme dvě matice L i a H i, jejichž součet je matice LL i-1. Tato matice je stejným postupem transformována, až je rekonstruován původní signál. 4.2 Lifting princip Obdobně jako u konvolučního principu je program realizován pomocí funkce y=dwt_cdf97_lift(x,level), opět se vstupními parametry x a level, zajišťující funkci popsanou výše. 25
30 4.2.1 Dekompoziční část Výpočet je prováděn podle rovnic (2.48)-(2.55) použitím konstant definovaných rovnicemi (2.42)-(2.46). Na počátku programu jsou definovány používané konstanty dle tabulky Tab lift(2,4) scale Tab Tabulka lifting koeficientů a normalizace (zaokrouhleno na 4 desetinná místa) Při dekompozici je oblast signálu, definována pomocí proměnných s1 a s2, rozdělena na liché a sudé vzorky. Toto rozdělení tvoří lifting kroky definované rovnicemi (2.48)-(2.49) k realizaci dalších kroku je nutné vyjádřit člen: Z rovnice (0) (0) ( s j s ) + j+ 1 k tomuto účelu použijeme funkci Matlabu y=filter(b,a,x,zi,dim). Výsledek funkce je definován vztahem Y ( z) α (4.1) (0) (0) ( s + s ) d α (4.2) b = (1) (0) j = d j + j j+ 1 1 ( 1) + b( 2) z + + b( nb + 1) 1 1+ a( 2) z + K + a( na + 1) z nb K z (4.3) X na S počátečními podmínkami zi nad dimenzí dim. Pokud dosadíme za α=b=[b(1),b(2)]=lift[:,1], a=1, dim =1, a za X(z) posloupnost posunutou o jeden vzorek (0) vpřed, což je v Z transformaci X ( z) Z{ s j } = z = + ( z) 1 dostáváme 1 α + αz (0) (0) ( z) z = αz + α = α( z + 1) = Z{ α( )} Y = s j s j 1 (4.4) 26
31 (1) Obdobně pokud za X(z) dosadíme X ( z) Z{ d } = 1 po provedení funkce y=filter(b,a,x,zi,dim). = j a b=β dostáváme výsledek Y 1 β + βz 1 1 (1) (1) ( z) 1 = β + βz = β (1 + z ) = Z{ β ( d j + d )} = j 1 1 (4.5) Jsme tak schopni vyřešit rovnici (1) (1) ( d + d ) s β (4.6) (1) (0) j = s j + j j= 1 Ostatní rovnice v jednotlivých lifting krocích jsou jen obdobou dvou výše popsaných. Jsme tedy schopni vypočítat celkový výsledek po průchodu všemi lifting kroky. Tento výpočet je, obdobně jako u programu využívajícího princip konvoluce, prováděn nejprve ve sloupcích a poté po řádcích. Po provedení lifting kroku je výsledek uložen do paměti na místo vstupních hodnot pro tento lifting krok. Po provedení posledního lifting kroku, který zajišťuje normalizaci koeficientů, obsahuje vstupní matice výsledný transformovaný signál. Jeli potřeba provést další úroveň dekompozice jsou konstanty s1 a s2 sníženy na polovinu a celý postup je opakován Rekonstrukční část Při rekonstrukci je nejdříve nalezena matice představující výsledky poslední úrovně dekompozice. Samotný výpočet je podobný jako při dekompozici. Pořadí lifting kroků je opačné a nejprve je výpočet prováděn po řádcích a až poté po sloupcích. Výsledný signál je opět uložen na patřičné místo ve vstupní matici a celý postup se opakuje, až není signál plně rekonstruován. 27
32 5 IMPLEMENTACE DWT V C++ Protože cílem této práce je porovnání implementací diskrétní vlnkové transformace s využitím konvolučního a lifting principu výpočtu za pomoci programovacích jazyků C++ a Java, bylo nutné nejprve tyto implementace vytvořit. Tato a následující kapitola se zabývá popisem jednotlivých implementací, vytvořených pomocí programovacího jazyku C++ resp. Java. 5.1 Všeobecná specifikace implementace DWT Specifikace implementace DWT Veškeré implementace byly vytvořeny jako konzolové aplikace. Mohou být spuštěny v případě C++ na jakékoliv platformě, pro kterou byly zkompilovány a v případě jazyku Java na jakékoliv platformě obsahující JVM (Java Virtual Machine). Jedná se tedy o spustitelné soubory s příponami.exe (C++) a archivy.jar (Java). Nastavení funkčnosti implementací se provádí pouze pomocí vstupních parametrů (argumentů), předávaných při spuštění jednotlivých programů. Při implementaci bylo využito objektově orientovaného programování (OOP) Vstupní parametry a jejich formát Pro správný běh programu jsou vyžadovány následující vstupní parametry: a) Vstupní soubor Název vstupního souboru pokud je uložen ve stejném adresáři jako právě spouštěná aplikace nebo jeho absolutní cesta pokud se nachází v adresáři jiném. Tento vstupní soubor musí obsahovat textovou reprezentaci jednotlivých koeficientů vstupního diskrétního signálu zapsaných tak, že jednotlivé koeficienty jsou odděleny mezerou a každý řádek tohoto vstupního textového souboru představuje příslušný řádek v matici vstupního diskrétního signálů. Jednotlivé koeficienty mohou být zapsány i jako desetinná čísla, ovšem jako oddělovač desetinných míst musí být použita tečka. Při zapisování desetinných čísel je možné využít i tzv. vědecký formát zápisu, kdy je zvlášť zapisována mantisa a exponent desetinného čísla a k jejich vzájemnému oddělení se používá znak E. K vytvoření vstupního souboru ve správném formátu ze souboru představujícího vstupní dvourozměrný diskrétní signál 28
33 (obrázky, fotky) lze využít m-file preved(vstupni_cesta, vystupni_cesta), jehož vstupní parametry jsou cesta k souboru představující obrazový signál a cesta k souboru představující výstupní textový soubor koeficientů. Z důvodu zjednodušení algoritmu je zpracováván signál reprezentující pouze stupně šedi o rozměrech libovolných mocnin čísla 2 pixelů. b) Výstupní soubor Výstupní soubor je parametr obdobný vstupnímu souboru. Udává cestu, kde bude vytvořen výstupní soubor se zadaným názvem. Formát výstupního souboru je stejný jako formát vstupního souboru a veškeré koeficienty jsou zapisovány ve vědeckém formátu desetinného čísla. c) Úroveň požadované dekompozice/rekonstrukce Tento parametr udává úroveň, do jaké se má provést dekompozice nebo rekonstrukce vstupního signálu. Zadává se ve formátu celého čísla a to tak, že pokud bude zadané číslo kladné, bude se provádět dekompozice vstupního signálu a při zadání záporného čísla, bude prováděna rekonstrukce vstupního signálu. Dekompozice nebo rekonstrukce je prováděna až do úrovně odpovídající absolutní hodnotě zadaného parametru. Pokud je absolutní hodnota zadaného parametru vetší něž úroveň možné dekompozice či rekonstrukce, provede se pouze do této maximální hodnoty Výstupy implementace Výstupem implementace je matice koeficientů, vypočtených po provedení dekompozice nebo rekonstrukce do požadované úrovně. Tato matice je uložena do výstupního souboru ve formátu popsaném výše Použitý datový typ Pro reprezentaci a veškerou práci s koeficienty je použit datový typ double. Jedná se o typ využívající plovoucí řádovou čárku a oproti datovému typu float má dvojitou přesnost. K zapsání čísla v datovém typu double je využito 8 bajtů, tedy 64 bitů, kdy jeden bit plní funkci znaménkového bitu, 11 bitů je použito k vyjádření hodnoty exponentu a zbývajících 52 bitů představuje mantisu. 29
34 5.2 Konvoluční princip Obecný popis algoritmu Algoritmus je implementován přesně podle výše uvedeného teoretického principu. Vypočet prvků DWT je realizován pomocí separabilní transformace, přičemž je využito možnosti převedení transformace na filtraci pomocí kvadraturní banky zrcadlových filtrů QMF. Koeficienty impulsních charakteristik těchto číslicových filtrů jsou zapsány tabulce Tab Řešení okrajových stavů je zajištěno metodou symetrického prodloužení Deklarační část V deklarační časti jsou definovány použité hlavičkové soubory, konstanty, globální proměnné, jednotlivé třídy a jejich metody. Program využívá ke své činnosti následující hlavičkové soubory: iostream, conio.h a math.h. Dále jsou zde definovány konstanty, představující koeficienty impulsních charakteristik jednotlivých filtrů, globální proměnné vstup_s a vystup_s, jenž jsou ukazateli na objekt typu FILE. A konečně jsou zde definovány třídy: imp_ch, mat_koef a mat_koef_rek Třída imp_ch Třída imp_ch představuje číslicový filtr. V instanci této třídy jsou uloženy koeficienty impulsní charakteristiky příslušného číslicového filtru. Tato třída obsahuje proměnou delka celočíselného datového typu integer a dále jednorozměrné pole hodnoty datového typu double. Konstruktor imp_ch(double *pole, int pocet_hodnot) provede inicializaci pole hodnoty, uloží do něj příslušný počet hodnot (definováno vstupním parametrem pocet_hodnot) ze vstupního parametru pole a nastaví proměnou delka (tridy imp_ch) tak, aby odpovídala počtu prvků v poli hodnoty. Funkce int get_delka() vrací počet prvků v poli hodnoty a funkce double get_data(int pozice) vrací hodnotu prvku na pozici definované pomocí vstupního parametru pozice Třída mat_koef Třída mat_koef představuje dvourozměrný diskrétní signál resp. její instance obsahuje matici koeficientů tohoto signálu. Jsou v ní definovány funkce potřebné k načtení, úpravám, rozložení do jednotlivých podmatic a vypsaní příslušného signálu. Obecně tedy definuje veškeré funkce potřebné k provedení DWT. 30
35 a) Složení třídy mat_koef Třída mat_koef je znázorněna na obrázku Obr. 5.1 Obr Třída mat_koef Z obrázku Obr. 5.1 je zřejmé, že v datové časti třídy mat_koef jsou zapouzdřeny, dvě proměnné datového typu integer p_r, p_s, sloužící k uchování počtu řádku a sloupců matice koeficientů. A dále ukazatel data, což je ukazatel na pole ukazatelů na datový typ double, který slouží k adresaci libovolného dvourozměrného pole s prvky typu double. V tomto poli jsou uloženy samotné koeficienty příslušné instance třídy mat_koef. Tyto proměnné se často označují jako atributy třídy. Třída dále obsahuje deklarace metod, které využívá. Lze je podle jejich funkce rozdělit do několika níže uvedených skupin. b) Konstruktory a destruktor třídy mat_koef Třída mat_koef obsahuje tři konstruktory a jeden destruktor. mat_koef() jedná se o prázdný konstruktor mat_koef(int radky, int sloupce) tento konstruktor inicializuje dvourozměrné pole data na velikost, udanou pomocí vstupních parametrů radky a sloupce, a nastaví proměnné p_r a p_s na příslušné hodnoty. 31
36 mat_koef(file * vstupni) vstupním parametrem tohoto konstruktoru je objekt typu FILE, představující v C++ soubor. V konstruktoru se provede volání procedury nacti_ze_souboru(vstupni). Tato procedura bude popsána dále. ~mat_koef() destruktor třídy mat_koef provede dealokaci dvourozměrného pole data v paměti. c) Getters and setters metody třídy mat_koef Protože atributy jsou z důvodu zapouzdření z vně třídy nepřístupné (bývají uvozeny klíčovými slovy private nebo protected), veškerá práce s nimi je realizována pomocí veřejných metod (klíčové slovo public) označovaných jako getters and setters. Z jejich názvu je zřejmé, že metody, označené jako getters, slouží k získání hodnoty atributu a naopak metody, označené setters, provádí nastavení atributu na požadovanou hodnotu. Tohoto principu je s výhodou využito při ošetřovaní okrajových stavů. int get_p_radku() funkce vrátí počet řádků dvourozměrného pole data data int get_p_sloupcu() funkce vrátí počet sloupců dvourozměrného pole double gethodn(int i,int j) funkce vrátí hodnotu prvku v poli data na pozici dané vstupními parametry i,j, tedy hodnotu data[i][j]. Pokud hodnoty i, j ukazují na pozici mimo pole data, je vrácen prvek odpovídající symetrickému prodloužení tohoto pole. Takto jsou ošetřeny případné okrajové stavy při výpočtu DWT. void sethodn(int i, int j,double hodnota) procedura nastaví hodnotu prvku v poli data na pozici, určenou vstupními parametry i, j, na hodnotu definovanou vstupním parametrem hodnota. d) Metody pro výpočet konvoluce Do další skupiny metod třídy mat_koef lze zařadit metody, používané při výpočtu konvoluce mezi koeficienty signálu a příslušné impulsní charakteristiky filtru. Jedná se nejdůležitější metody třídy, protože zajišťují samotnou diskrétní vlnkovou transformaci. double konv (int i, int j,imp_ch * imp_char, int smer) tato funkce tvoří jádro vypočtu konvoluce. Vypočítá konvoluci prvku na pozici i, j (vstupní 32
37 parametry i,j) s koeficienty impulsní charakteristiky imp_char (vstupní parametr, ukazatel na instanci třídy imp_ch) ve směru sloupců nebo řádků. Zda se bude konvoluce provádět ve směru sloupců nebo řádků, záleží na vstupním parametru smer. V případě že jeho hodnota je nulová, bude konvoluce prováděna ve směru sloupců, a naopak pokud bude jeho hodnota různá od nuly, bude konvoluce prováděna ve směru řádků. Vlastní konvoluce je prováděna podle známého vztahu: [ n] = h0 [ n]* x[ n] = h0 m= y [ m] x[ n m] (5.1) mat_koef* sym_konv(imp_ch * imp_char,int smer, int offset) funkce vypočítá konvoluci pro všechny prvky v poli data, které zůstanou po podvzorkování dvěma v zadaném směru, při použití zadané impulsní charakteristiky. Ukazatel na instanci třídy imp_ch, který definuje použitou impulsní charakteristiku, je opět vstupním parametrem funkce, obdobně jako parametr smer, určující směr provádění konvoluce tak, jak bylo popsáno výše. Posledním vstupním parametrem je offset, definující požadovaný posun signálu při provádění konvoluce. Pokud bude nulový, bude konvoluce počítána pro sudé vzorky, pokud bude nenulový, bude konvoluce počítána pro liché vzorky. Před prováděním výpočtu jednotlivých konvolucí voláním funkce double konv (int i, int j,imp_ch * imp_char, int smer) pro požadovaný prvek, je vytvořena nová instance třídy mat_koef a do této třídy jsou ukládány výsledky jednotlivých konvolucí, vypočtených pro příslušné prvky. Hodnoty v poli data instance třídy mat_koef, ze které byla volána funkce sym_konv, zůstávají nezměněny a samotná funkce sym_konv vrací ukazatel na nově vytvořenou instanci třídy mat_koef, která obsahuje v poli data hodnoty po vypočtení konvoluce a podvzorkování dvěma. e) Metody pro zpracování výsledků void sloz_vysledek(mat_koef * LL,mat_koef * HL,mat_koef * LH,mat_koef * HH) procedura sloužící k sestavení výsledné matice ze čtyř podmatic LL, HL, LH a HH podle principu separabilní transformace viz. Obr Vstupními parametry jsou ukazatele na třídu mat_koef. 33
38 void vypis(file * vystupni) procedura provede výpis pole data do souboru definovaného pomocí vstupního parametru vystupni, který je ukazatelem na objekt FILE. Hodnoty jsou uloženy v textové formě, s použitím vědeckého zápisu desetinného čísla tak, že vždy řádek matice tvoří řádek výstupního textového souboru a jednotlivé hodnoty jsou odděleny mezerou. void nacti_ze_souboru(file * vstupni) - Vstupním parametrem procedury je ukazatel na soubor. Tento soubor je otevřen a nejprve je zjištěn počet řádku vyhledáním počtu specifických znaků, které značí konec jednotlivých řádků ( \n ). Zjištěný počet řádků je uložen do proměnné p_r. Dále je zjištěn počet sloupců tak, že jsou hledány bloky znaků, jiných než je znak pro mezeru, až do nalezení znaku pro ukončení řádku. Počet takto nalezených bloků, udává počet sloupců a je opět uložen po proměnné p_s. V dalším kroku se inicializuje pole data na rozměr daný hodnotami v proměnných p_r a p_s. Soubor je procházen od jeho počátku a pomocí funkce fscanf (vstup_s,"%e",&n) s uvedenými parametry, jsou jednotlivé koeficienty z textového souboru převedeny na datový typ double a následně uloženy na odpovídající místo ve dvourozměrném poli data Třída mat_koef_rek Třída mat_koef_rek slouží, obdobně jako třída mat_koef, k reprezentaci dvourozměrného diskrétního signálu. Jsou v ní ovšem definovány metody potřebné k rekonstrukci původního signálu z koeficientů DWT, umožňuje tak provést zpětnou diskrétní vlnkovou transformaci (IDWT). a) Složení třídy mat_koef_rek Mat_koef_rek je dceřiná třída třídy mat_koef. Protože při dědění bylo použito klíčové slovo public a třída mat_koef neobsahuje žádné atributy či metody deklarované jako private, dědí třída mat_koef_rek veškeré atributy i metody třídy mat_koef. Třída mat_koef_rek tedy obsahuje stejné metody jako třída mat_koef a je zbytečné je zde znovu popisovat. Popsány budou pouze metody nové nebo přetížené. Přetížením metody se v tomto případě rozumí předeklarovaní metody zděděné z nadřazené třídy. Struktura třídy mat_koef_rek včetně zděděných metod a atributů z třídy mat_koef je zobrazena na obrázku 0. 34
39 Obr Třída mat_koef_rek b) Konstruktory a destruktor třídy mat_koef_rek Konstruktory ani destruktory se nedědí a proto je třeba je deklarovat znovu. Deklarace jsou stejné jako u třídy mat_koef. Navíc je deklarován nový konstruktor. mat_koef_rek (mat_koef_rek * A, mat_koef_rek * B, int smer, int offset) Tento konstruktor slouží k vytvoření rekonstrukční matice ze dvou 35
Příloha 1. Náleţitosti a uspořádání textové části VŠKP
Příloha 1 Náleţitosti a uspořádání textové části VŠKP Náležitosti a uspořádání textové části VŠKP je určeno v tomto pořadí: a) titulní list b) zadání VŠKP c) abstrakt v českém a anglickém jazyce, klíčová
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL FAMILY OWNED COMPANY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV FACULTY OF BUSINESS AND MANAGEMENT INSTITUT OF NÁVRH STRATEGIE ROZVOJE MALÉ RODINNÉ FIRMY THE DEVELOPMENT OF SMALL
Bakalářská práce bakalářský studijní obor Teleinformatika
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací Bakalářská práce bakalářský studijní obor Teleinformatika Student: Bílek Petr ID: 78462 Ročník: 3
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV MIKROELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF
Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací
Metodický pokyn č. 1/09 pro odevzdávání, ukládání a zpřístupňování vysokoškolských závěrečných prací Článek I. Úvodní ustanovení (1) Pro účely této směrnice se vysokoškolskými závěrečnými pracemi rozumí
DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování
Magisterský studijní obor 2. ročník ELEKTRONIKA A SDĚLOVACÍ TECHNIKA Akademický rok 2011/2012 FEKT VUT v Brně DIPLOMOVÁ PRÁCE (MMSE) Pokyny pro vypracování 1. Diplomová práce musí být svázána v pevných
NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV FINANCÍ FACULTY OF BUSINESS AND MANAGEMENT INSTITUTE OF FINANCES NÁVRH ŘEŠENÍ FLUKTUACE ZAMĚSTNANCŮ VE SPOLEČNOSTI
Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004
Dokumentace k projektu č. 2 do IZP Iterační výpočty 24. listopadu 2004 Autor: Kamil Dudka, xdudka00@stud.fit.vutbr.cz Fakulta Informačních Technologií Vysoké Učení Technické v Brně Obsah 1. Úvod...3 2.
Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:
Čtvrtek 8 prosince Pascal - opakování základů Struktura programu: 1 hlavička obsahuje název programu, použité programové jednotky (knihovny), definice konstant, deklarace proměnných, všechny použité procedury
SMĚRNICE REKTORA Č. 9/2007
Vysoké učení technické v Brně Rozdělovník: rektor, děkani fakult, ředitelé dalších součástí Zpracoval: doc. RNDr. Miloslav Švec, CSc. SMĚRNICE REKTORA Č. 9/2007 ÚPRAVA, ODEVZDÁVÁNÍ A ZVEŘEJŇOVÁNÍ VYSOKOŠKOLSKÝCH
Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace
Vektory a matice Aplikovaná matematika I Dana Říhová Mendelu Brno Obsah 1 Vektory Základní pojmy a operace Lineární závislost a nezávislost vektorů 2 Matice Základní pojmy, druhy matic Operace s maticemi
Vektorový prostor. Př.1. R 2 ; R 3 ; R n Dvě operace v R n : u + v = (u 1 + v 1,...u n + v n ), V (E 3 )...množina vektorů v E 3,
Vektorový prostor Příklady: Př.1. R 2 ; R 3 ; R n...aritmetický n-rozměrný prostor Dvě operace v R n : součet vektorů u = (u 1,...u n ) a v = (v 1,...v n ) je vektor u + v = (u 1 + v 1,...u n + v n ),
KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni
KTE/TEVS - Rychlá Fourierova transformace Pavel Karban Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni 10.11.011 Outline 1 Motivace FT Fourierova transformace
1 Mnohočleny a algebraické rovnice
1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem
II. Úlohy na vložené cykly a podprogramy
II. Úlohy na vložené cykly a podprogramy Společné zadání pro příklady 1. - 10. začíná jednou ze dvou možností popisu vstupních dat. Je dána posloupnost (neboli řada) N reálných (resp. celočíselných) hodnot.
základní vlastnosti, používané struktury návrhové prostředky MATLAB problém kvantování koeficientů
A0M38SPP - Signálové procesory v praxi - přednáška 4 2 Číslicové filtry typu FIR a IIR definice operace filtrace základní rozdělení FIR, IIR základní vlastnosti, používané struktury filtrů návrhové prostředky
Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:
3 Maticový počet 3.1 Zavedení pojmu matice Maticí typu (m, n, kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru: a 11 a 12... a 1k... a 1n a 21 a 22...
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STAVEBNÍ ÚSTAV POZEMNÍCH KOMUNIKACÍ FACULTY OF CIVIL ENGINEERING INSTITUTE OF ROAD STRUCTURES PŘELOŽKA SILNICE II/150 DOMAŽELICE BYSTŘICE
Interpolace, ortogonální polynomy, Gaussova kvadratura
Interpolace, ortogonální polynomy, Gaussova kvadratura Petr Tichý 20. listopadu 2013 1 Úloha Lagrangeovy interpolace Dán omezený uzavřený interval [a, b] a v něm n + 1 různých bodů x 0, x 1,..., x n. Nechť
AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION OF ORDERING SYSTEM ERRORS
VYSOKÉ UENÍ TECHNICKÉ V BRN BRNO UNIVERSITY OF TECHNOLOGY FAKULTA PODNIKATELSKÁ ÚSTAV INFORMATIKY FACULTY OF BUSINESS AND MANAGEMENT INSTITUT OF INFORMATICS AUTOMATIZACE CHYB OBJEDNÁVKOVÉHO SYSTÉMU AUTOMATION
PSK1-9. Číslicové zpracování signálů. Číslicový signál
Název školy: Autor: Anotace: PSK1-9 Vyšší odborná škola a Střední průmyslová škola, Božetěchova 3 Ing. Marek Nožka Princip funkce číslicové filtrace signálu Vzdělávací oblast: Informační a komunikační
FOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth
FOURIEROVA ANALÝZA 2D TERÉNNÍCH DAT Karel Segeth Motto: The faster the computer, the more important the speed of algorithms. přírodní jev fyzikální model matematický model numerický model řešení numerického
MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH. Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky
MĚŘENÍ A ANALÝZA ELEKTROAKUSTICKÝCH SOUSTAV NA MODELECH Petr Kopecký ČVUT, Fakulta elektrotechnická, Katedra Radioelektroniky Při návrhu elektroakustických soustav, ale i jiných systémů, je vhodné nejprve
Integrální transformace obrazu
Integrální transformace obrazu David Bařina 26. února 2013 David Bařina Integrální transformace obrazu 26. února 2013 1 / 74 Obsah 1 Zpracování signálu 2 Časově-frekvenční rozklad 3 Diskrétní Fourierova
Číslicová filtrace. FIR filtry IIR filtry. ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická Ing. Radek Sedláček, Ph.D., katedra měření K13138 Číslicová filtrace FIR filtry IIR filtry Tyto materiály vznikly za podpory Fondu rozvoje
Číslicové filtry. Honza Černocký, ÚPGM
Číslicové filtry Honza Černocký, ÚPGM Aliasy Digitální filtry Diskrétní systémy Systémy s diskrétním časem atd. 2 Na co? Úprava signálů Zdůraznění Potlačení Detekce 3 Zdůraznění basy 4 Zdůraznění výšky
Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty
Data v počítači Informační data (elementární datové typy) Logické hodnoty Znaky Čísla v pevné řádové čárce (celá čísla) v pohyblivé (plovoucí) řád. čárce (reálná čísla) Povelová data (instrukce programu)
MATICE. a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij]
MATICE Matice typu m/n nad tělesem T je soubor m n prvků z tělesa T uspořádaných do m řádků a n sloupců: a 11 a 12 a 1n a 21 a 22 a 2n A = = [a ij] a m1 a m2 a mn Prvek a i,j je prvek matice A na místě
Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy
Ústav radioelektroniky Vysoké učení technické v Brně Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy Přednáška 8 doc. Ing. Tomáš Frýza, Ph.D. listopad 2012 Obsah
SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY
SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY TEMATICKÉ OKRUHY Signály se spojitým časem Základní signály se spojitým časem (základní spojité signály) Jednotkový skok σ (t), jednotkový impuls (Diracův impuls)
IB112 Základy matematiky
IB112 Základy matematiky Řešení soustavy lineárních rovnic, matice, vektory Jan Strejček IB112 Základy matematiky: Řešení soustavy lineárních rovnic, matice, vektory 2/53 Obsah Soustava lineárních rovnic
SIGNÁLY A LINEÁRNÍ SYSTÉMY
SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické či jiné
Lineární a adaptivní zpracování dat. 3. SYSTÉMY a jejich popis ve frekvenční oblasti
Lineární a adaptivní zpracování dat 3. SYSTÉMY a jejich popis ve frekvenční oblasti Daniel Schwarz Osnova Opakování: systémy a jejich popis v časové oblasti Fourierovy řady Frekvenční charakteristika systémů
Transformace obrazu Josef Pelikán KSVI MFF UK Praha
Transformace obrazu 99725 Josef Pelikán KSVI MFF UK Praha email: Josef.Pelikan@mff.cuni.cz WWW: http://cgg.ms.mff.cuni.cz/~pepca/ Transformace 2D obrazu dekorelace dat potlačení závislosti jednotlivých
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Vektory Definice 011 Vektorem aritmetického prostorur n budeme rozumět uspořádanou n-tici reálných čísel x 1, x 2,, x n Definice 012 Definice sčítání
UNIVERZITA PARDUBICE Směrnice č. 13/2007 ve znění dodatku č. 1 Pravidla pro zveřejňování závěrečných prací a jejich základní jednotnou formální úpravu
Věc: Působnost pro: Účinnost od: 1. října 2007 Číslo jednací: Předkládá: UNIVERZITA PARDUBICE Směrnice č. 13/2007 ve znění dodatku č. 1 Pravidla pro zveřejňování závěrečných prací a jejich základní jednotnou
Programování v C++ 3, 3. cvičení
Programování v C++ 3, 3. cvičení úvod do objektově orientovaného programování 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Dokončení spojového
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV MECHANIKY TĚLES, MECHATRONIKY A BIOMECHANIKY Komentovaný metodický list č. 1/4 Vytvořil: Ing. Oldřich Ševeček & Ing. Tomáš Profant, Ph.D.
8 Třídy, objekty, metody, předávání argumentů metod
8 Třídy, objekty, metody, předávání argumentů metod Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost třídám a objektům, instančním
Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic
Přednáška třetí (a pravděpodobně i čtvrtá) aneb Úvod do lineární algebry Matice a soustavy rovnic Lineární rovnice o 2 neznámých Lineární rovnice o 2 neznámých Lineární rovnice o dvou neznámých x, y je
Aplikovaná numerická matematika - ANM
Aplikovaná numerická matematika - ANM 3 Řešení soustav lineárních rovnic iterační metody doc Ing Róbert Lórencz, CSc České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových
Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně
Lineární a adaptivní zpracování dat 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně Daniel Schwarz Investice do rozvoje vzdělávání Osnova Opakování: signály a systémy Vlastnosti systémů Systémy
0.1 Úvod do lineární algebry
Matematika KMI/PMATE 1 01 Úvod do lineární algebry 011 Lineární rovnice o 2 neznámých Definice 011 Lineární rovnice o dvou neznámých x, y je rovnice, která může být vyjádřena ve tvaru ax + by = c, kde
SIGNÁLY A LINEÁRNÍ SYSTÉMY
SIGNÁLY A LINEÁRNÍ SYSTÉMY prof. Ing. Jiří Holčík, CSc. holcik@iba.muni.cziba.muni.cz II. SIGNÁLY ZÁKLADNÍ POJMY SIGNÁL - DEFINICE SIGNÁL - DEFINICE Signál je jev fyzikální, chemické, biologické, ekonomické
Úlohy nejmenších čtverců
Úlohy nejmenších čtverců Petr Tichý 7. listopadu 2012 1 Problémy nejmenších čtverců Ax b Řešení Ax = b nemusí existovat, a pokud existuje, nemusí být jednoznačné. Často má smysl hledat x tak, že Ax b.
Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně
Čísla v plovoucířádovéčárce INP 2008 FIT VUT v Brně Čísla v pevné vs plovoucí řádové čárce Pevnářádováčárka FX bez desetinné části (8 bitů) Přímý kód: 0 až 255 Doplňkový kód: -128 až 127 aj. s desetinnou
ALGEBRA. Téma 4: Grupy, okruhy a pole
SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 4: Grupy, okruhy a pole Základní pojmy unární operace, binární operace, asociativita,
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech
7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,
1 Mnohočleny a algebraické rovnice
1 Mnohočleny a algebraické rovnice 1.1 Pojem mnohočlenu (polynomu) Připomeňme, že výrazům typu a 2 x 2 + a 1 x + a 0 říkáme kvadratický trojčlen, když a 2 0. Číslům a 0, a 1, a 2 říkáme koeficienty a písmenem
OBSAHOVÁ STRÁNKA DP, BP
OBSAHOVÁ STRÁNKA DP, BP Obsahová stránka BP i DP se řídí: 1. Směrnicí rektora č. 9/2007 Úprava, odevzdávání a zveřejňování vysokoškolských kvalifikačních prací na VUT v Brně 2. Směrnicí děkana č. 2/2007
X37SGS Signály a systémy
X7SGS Signály a systémy Matlab minihelp (poslední změna: 0. září 2008) 1 Základní maticové operace Vytvoření matice (vektoru) a výběr konkrétního prvku matice vytvoření matice (vektoru) oddělovač sloupců
APLIKACE DWT PRO POTLAČENÍ ŠUMU V OBRAZE
APLIKACE DWT PRO POTLAČENÍ ŠUMU V OBRAZE J.Švihlík ČVUT v Praze Fakulta elektrotechnická Katedra radioelektroniky Abstrakt Šum je v obraze prakticky vždy přítomen což způsobuje degradaci obrazu. Existuje
1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5
Obsah Obsah 1 Programovací jazyk Pascal 1 1.1 Struktura programu v Pascalu.................... 1 2 Proměnné 2 2.1 Vstup a výstup............................ 3 3 Operátory a některé matematické funkce 5
Semestrální projekt. Vyhodnocení přesnosti sebelokalizace VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Semestrální projekt Vyhodnocení přesnosti sebelokalizace Vedoucí práce: Ing. Tomáš Jílek Vypracovali: Michaela Homzová,
Funkce komplexní proměnné a integrální transformace
Funkce komplexní proměnné a integrální transformace Fourierovy řady I. Marek Lampart Text byl vytvořen v rámci realizace projektu Matematika pro inženýry 21. století (reg. č. CZ.1.07/2.2.00/07.0332), na
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY
VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY Jan Krejčí 31. srpna 2006 jkrejci@physics.ujep.cz http://physics.ujep.cz/~jkrejci Obsah 1 Přímé metody řešení soustav lineárních rovnic 3 1.1 Gaussova eliminace...............................
Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly
Počítačové systémy Zobrazení čísel v počítači Miroslav Flídr Počítačové systémy LS 2007-1/21- Západočeská univerzita v Plzni Vážený poziční kód Obecný předpis čísla vyjádřeného v pozičním systému: C =
Teorie měření a regulace
Ústav technologie, mechanizace a řízení staveb Teorie měření a regulace 22.z-3.tr ZS 2015/2016 2015 - Ing. Václav Rada, CSc. TEORIE ŘÍZENÍ druhá část tématu předmětu pokračuje. oblastí matematických pomůcek
13 Barvy a úpravy rastrového
13 Barvy a úpravy rastrového Studijní cíl Tento blok je věnován základním metodám pro úpravu rastrového obrazu, jako je např. otočení, horizontální a vertikální překlopení. Dále budo vysvětleny různé metody
VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu
VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632
Téma 2: Pravděpodobnostní vyjádření náhodných veličin
0.025 0.02 0.015 0.01 0.005 Nominální napětí v pásnici Std Mean 140 160 180 200 220 240 260 Std Téma 2: Pravděpodobnostní vyjádření náhodných veličin Přednáška z předmětu: Pravděpodobnostní posuzování
Základy matematické analýzy
Základy matematické analýzy Spojitost funkce Ing. Tomáš Kalvoda, Ph.D. 1, Ing. Daniel Vašata 2 1 tomas.kalvoda@fit.cvut.cz 2 daniel.vasata@fit.cvut.cz Katedra aplikované matematiky Fakulta informačních
maticeteorie 1. Matice A je typu 2 4, matice B je typu 4 3. Jakých rozměrů musí být matice X, aby se dala provést
Úlohy k zamyšlení 1. Zdůvodněte, proč třetí řádek Hornerova schématu pro vyhodnocení polynomu p v bodě c obsahuje koeficienty polynomu r, pro který platí p(x) = (x c) r(x) + p(c). 2. Dokažte, že pokud
Programování v C++ 2, 4. cvičení
Programování v C++ 2, 4. cvičení statické atributy a metody, konstruktory 1 1 Fakulta jaderná a fyzikálně inženýrská České vysoké učení technické v Praze Zimní semestr 2018/2019 Přehled Přístupová práva
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ
VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ Michal Kořenář 1 Abstrakt Rozvoj výpočetní techniky v poslední době umožnil také rozvoj výpočetních metod, které nejsou založeny na bázi
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy
Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy Lukáš Havrlant Univerzita Palackého 10. ledna 2014 Primární zdroj Jiří Adámek: Foundations of Coding. Strany 137 160. Na webu ke stažení, heslo:
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE FAKULTA STAVEBNÍ OBOR GEODÉZIE A KARTOGRAFIE KATEDRA VYŠŠÍ GEODÉZIE název předmětu úloha/zadání název úlohy Základy fyzikální geodézie 3/19 Legendreovy přidružené funkce
příkladů do cvičení. V textu se objeví i pár detailů, které jsem nestihl (na které jsem zapomněl) a(b u) = (ab) u, u + ( u) = 0 = ( u) + u.
Několik řešených příkladů do Matematiky Vektory V tomto textu je spočteno několik ukázkových příkladů které vám snad pomohou při řešení příkladů do cvičení. V textu se objeví i pár detailů které jsem nestihl
Algoritmizace prostorových úloh
INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Úlohy nad rastrovými daty Daniela
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)
Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného) 1 Obecný popis metody Particle Image Velocimetry, nebo-li zkráceně PIV, je měřící
2.6. VLASTNÍ ČÍSLA A VEKTORY MATIC
.6. VLASTNÍ ČÍSLA A VEKTORY MATIC V této kapitole se dozvíte: jak jsou definována vlastní (charakteristická) čísla a vektory čtvercové matice; co je to charakteristická matice a charakteristický polynom
Návod k programu TRANSTOS v1.0
Návod k programu TRANSTOS v1.0 Konzolový program TRANSTOS v1.0 je určen k transformaci souřadnic do systému S-JTSK (Systém Jednotné Trigonometrické sítě Katastrální). Vstupem mohou být souřadnice ETRS-
Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),
1 LINEÁRNÍ ALGEBRA 1 Lineární algebra Slovo ALGEBRA pochází z arabského al-jabr, což znamená nahrazení. Toto slovo se objevilo v názvu knihy islámského matematika Hisab al-džebr val-muqabala ( Věda o redukci
Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru. Kvadratická forma v n proměnných je tak polynom n proměnných s
Kapitola 13 Kvadratické formy Definice 13.1 Kvadratická forma v n proměnných s koeficienty z tělesa T je výraz tvaru f(x 1,..., x n ) = a ij x i x j, kde koeficienty a ij T. j=i Kvadratická forma v n proměnných
I. D i s k r é t n í r o z d ě l e n í
6. T y p y r o z d ě l e n í Poznámka: V odst. 5.5-5.10 jsme uvedli příklady náhodných veličin a jejich distribučních funkcí. Poznali jsme, že se od sebe liší svým typem. V příkladech 5.5, 5.6 a 5.8 jsme
Waveletová transformace a její použití při zpracování signálů
Waveletová transformace a její použití při zpracování signálů BÍLOVSKÝ, Petr 1 1 Katedra elektrických měření, VŠB-TU Ostrava, 17. listopadu, Ostrava - Poruba, 708 33, petr.bilovsky@vsb.cz Abstrakt: Wavelet
ALGEBRA. Téma 5: Vektorové prostory
SLEZSKÁ UNIVERZITA V OPAVĚ Matematický ústav v Opavě Na Rybníčku 1, 746 01 Opava, tel. (553) 684 611 DENNÍ STUDIUM Téma 5: Vektorové prostory Základní pojmy Vektorový prostor nad polem P, reálný (komplexní)
Základy maticového počtu Matice, determinant, definitnost
Základy maticového počtu Matice, determinant, definitnost Petr Liška Masarykova univerzita 18.9.2014 Matice a vektory Matice Matice typu m n je pravoúhlé (nebo obdélníkové) schéma, které má m řádků a n
Výuka odborného předmětu z elektrotechniky na SPŠ Strojní a Elektrotechnické
Jihočeská univerzita v Českých Budějovicích Pedagogická fakulta Oddělení celoživotního vzdělávání Závěrečná práce Výuka odborného předmětu z elektrotechniky na SPŠ Strojní a Elektrotechnické Vypracoval:
Mikroprocesorová technika (BMPT)
Mikroprocesorová technika (BMPT) Přednáška č. 10 Číselné soustavy v mikroprocesorové technice Ing. Tomáš Frýza, Ph.D. Obsah přednášky Číselné soustavy v mikroprocesorové technice Dekadická, binární, hexadecimální
2 Datové typy v jazyce C
1 Procedurální programování a strukturované programování Charakteristické pro procedurální programování je organizace programu, který řeší daný problém, do bloků (procedur, funkcí, subrutin). Původně jednolitý,
Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně
Lineární a adaptivní zpracování dat 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně Daniel Schwarz Investice do rozvoje vzdělávání Osnova Opakování: signály a systémy Vlastnosti systémů Systémy
[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici
[1] Determinant je číslo jistým způsobem charakterizující čtvercovou matici det A = 0 pro singulární matici, det A 0 pro regulární matici používá se při řešení lineárních soustav... a v mnoha dalších aplikacích
p(x) = P (X = x), x R,
6. T y p y r o z d ě l e n í Poznámka: V odst. 5.5-5.10 jsme uvedli příklady náhodných veličin a jejich distribučních funkcí. Poznali jsme, že se od sebe liší svým typem. V příkladech 5.5, 5.6 a 5.8 jsme
ZÁKLADNÍ METODY REFLEKTOMETRIE
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV RADIOELEKTRONIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF
Báze a dimenze vektorových prostorů
Báze a dimenze vektorových prostorů Buď (V, +, ) vektorový prostor nad tělesem (T, +, ). Nechť u 1, u 2,..., u n je konečná posloupnost vektorů z V. Existují-li prvky s 1, s 2,..., s n T, z nichž alespoň
Programy na PODMÍNĚNÝ příkaz IF a CASE
Vstupy a výstupy budou vždy upraveny tak, aby bylo zřejmé, co zadáváme a co se zobrazuje. Není-li určeno, zadáváme přirozená čísla. Je-li to možné, používej generátor náhodných čísel vysvětli, co a jak
Numerické metody a programování
Projekt: Inovace výuky optiky se zaměřením na získání experimentálních dovedností Registrační číslo: CZ.1.7/2.2./28.157 Numerické metody a programování Lekce 4 Tento projekt je spolufinancován Evropským
Pravidla a metodické pokyny pro zpracování a odevzdání bakalářské/diplomové práce
Pravidla a metodické pokyny pro zpracování a odevzdání bakalářské/diplomové práce Vedoucí základních součástí (kateder/ústavů) jsou povinni seznámit studenta se všemi okolnostmi pro vypracování a odevzdání
FORTANNS. havlicekv@fzp.czu.cz 22. února 2010
FORTANNS manuál Vojtěch Havlíček havlicekv@fzp.czu.cz 22. února 2010 1 Úvod Program FORTANNS je software určený k modelování časových řad. Kód programu má 1800 řádek a je napsán v programovacím jazyku
Učební texty k státní bakalářské zkoušce Matematika Skalární součin. študenti MFF 15. augusta 2008
Učební texty k státní bakalářské zkoušce Matematika Skalární součin študenti MFF 15. augusta 2008 1 10 Skalární součin Požadavky Vlastnosti v reálném i komplexním případě Norma Cauchy-Schwarzova nerovnost
Funkce a lineární funkce pro studijní obory
Variace 1 Funkce a lineární funkce pro studijní obory Autor: Mgr. Jaromír JUŘEK Kopírování a jakékoliv další využití výukového materiálu je povoleno pouze s uvedením odkazu na www.jarjurek.cz. 1. Funkce
Metoda konečných prvků Charakteristika metody (výuková prezentace pro 1. ročník navazujícího studijního oboru Geotechnika)
Inovace studijního oboru Geotechnika Reg. č. CZ.1.07/2.2.00/28.0009 Metoda konečných prvků Charakteristika metody (výuková prezentace pro 1. ročník navazujícího studijního oboru Geotechnika) Doc. RNDr.
Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.
Vyhledávání doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava Prezentace ke dni 21. září 2018 Jiří Dvorský (VŠB TUO) Vyhledávání 242 / 433 Osnova přednášky
Polynomy. Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1.1 Teorie Zavedení polynomů Operace s polynomy...
Polynomy Obsah Mgr. Veronika Švandová a Mgr. Zdeněk Kříž, Ph. D. 1 Základní vlastnosti polynomů 2 1.1 Teorie........................................... 2 1.1.1 Zavedení polynomů................................
Čísla a číselné soustavy.
Čísla a číselné soustavy. Polyadické soustavy. Převody mezi soustavami. Reprezentace čísel. Tomáš Bayer bayertom@natur.cuni.cz Katedra aplikované geoinformatiky a kartografie, Přírodovědecká fakulta UK.
transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím [1]
[1] Afinní transformace je posunutí plus lineární transformace má svou matici vzhledem k homogenním souřadnicím využití například v počítačové grafice Evropský sociální fond Praha & EU. Investujeme do
NOVÉ METODY HODNOCENÍ OBRAZOVÉ KVALITY
NOVÉ METODY HODNOCENÍ OBRAZOVÉ KVALITY Stanislav Vítek, Petr Páta, Jiří Hozman Katedra radioelektroniky, ČVUT FEL Praha, Technická 2, 166 27 Praha 6 E-mail: svitek@feld.cvut.cz, pata@feld.cvut.cz, hozman@feld.cvut.cz
Circular Harmonics. Tomáš Zámečník
Circular Harmonics Tomáš Zámečník Úvod Circular Harmonics Reprezentace křivky, která je: podmonožinou RxR uzavřená funkcí úhlu na intervalu Dále budeme hovořit pouze o takovýchto křivkách/funkcích
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová. 5. Statistica
Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Jarkovský, L. Dušek, M. Cvanová 5. Statistica StatSoft, Inc., http://www.statsoft.com, http://www.statsoft.cz. Verze pro Mac i PC, dostupná