Vážení zákazníci, dovolujeme si Vás upozornit, že na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, že ukázka má sloužit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, že není dovoleno tuto ukázku jakýmkoliv zpùsobem dále šíøit, veøejnì èi neveøejnì napø. umis ováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura redakce@ben.cz
Programový balík MATLAB je software a pro práci s ním jej musíte nainstalovat na disk poèítaèe. Soudobé poèítaèe, dnes zøejmì nejèastìji stolní osobní poèítaèe PC èi notebooky, jsou poèítaèi èíslicovými. To znamená, že pracují s èísly. Proto také každý takový software, MATLAB nevyjímaje, je primárnì nástrojem, urèeným pro práci se signály v èíselné podobì. Chcete-li pracovat v prostøedí MATLAB se signály, resp. jejich modely (dále již budeme používat souhrnný název signál pro zjednodušení textu), musíte poèítat s tím, že vždy budete pracovat se signály v podobì èísel. To platí jak pro pøípady, kdy signály pøímo v MATLABu tvoøíte, tak pro pøípady, kdy signály do MATLABu naèítáte z jiných zdrojù, napø. mìøicích zaøízení. V této kapitole se zamyslíme nad nìkterými dùsledky, které èíselná podoba signálù v prostøedí MATLAB pøináší a upozorníme na vybrané odborné termíny a zajímavosti, které se v této souvislosti používají a jimž je vhodné vìnovat pozornost. 3.1 Èíslicové signály a jejich zobrazení Pojem èíslicový signál byl zaveden a objasnìn v kapitole 2.3.1, pøíklady jsou na obr. 2.6d, obr. 2.8e, obr. 2.9g. Protože MATLAB je urèen primárnì pro práci s èísly, bude èíslicový signál ten nejvhodnìjší a nejpøirozenìjší pro práci v jeho prostøedí. Na obr. 3.1 a obr. 3.2 vidíte jednoduchý pøíklad tvorby èíslicového signálu a jeho zobrazení ve formì posloupnosti èísel, obr. 3.1 a ve formì grafu, obr. 3.2. Podrobnìji budou tvorba a generování signálù rozebrány v kapitole 4. Obr. 3.1 Pøíklad tvorby èíslicového signálu a jeho zobrazení ve formì posloupnosti èísel Pøi pohledu na obr. 3.1 a obr. 3.2 mùžete vidìt, že signál Tlak je tvoøen 10 èísly. Jde tedy o posloupnost èísel. Termínem posloupnost tedy budeme rozumìt prostý výèet hodnot signálu, tedy soubor èísel, které jej tvoøí (vektor). Bude-li signál Tlak zobrazen ve formì grafu, napø. pøíkazem stem, pak bude patrné, že èíslicový signál je signálem diskrétním na ose nezávisle promìnné. Na této ose, tedy vodorovné ose, je vlastnì vyneseno pouhé poøadí jednotlivých èísel vzorkù. Logicky vás jistì nepøekvapí, že mezi tìmito poøadovými èísly není nic, pøesnìji není signál vùbec definován. I kdybychom zvýšili poèet èísel v signálu Tlak mnohonásobnì více, vždy to bude stejné. Mimo své vzorky nebude signál definován. Vzdálenost mezi èísly grafu je konstantní. Je to pochopitelné, nebo jde o poøadové hodnoty jednotlivých èísel. Shròme si tedy, že èíslicový signál je tvoøen øadou èísel. Výpis tìchto èísel mùžete provádìt ve formì posloupnosti èísel nebo ve formì grafické (èi jiné). 40 KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR A
Obr. 3.2 Zobrazení èíslicového signálu z obr. 3.1 ve formì grafu 3.1.1 Cejchování vodorovné osy grafu Na svislé ose grafu z obr. 3.2 jsou hodnoty jednotlivých prvkù signálu, napø. tlaku v Pascalech Tlak [Pa], na vodorovné pak poøadový index èísel v signálu, oznaèený symbolem n [ ]. Svislá osa grafu, tedy osa závisle promìnné, mùže nabývat libovolných hodnot. Je to pøirozené, nebo velikost tlaku v Pascalech mùže být v principu jakákoli. Tato osa je tedy spojitá, resp. souvislá. Èísla, která tvoøí signál, mohou nabývat libovolných hodnot nebo být také definována diskrétnì, vždy to budou èísla a jejich zobrazení bude provádìno naprosto stejnì. Pøi práci se signály v jednotlivých technických èi vìdních oborech mùže být požadováno, aby na vodorovné ose grafu èíslicového signálu nebyla vynášena velièina, odpovídající poøadí jednotlivých èísel vzorkù. Podle povahy signálu zde mùže být napø. èas, jas, poloha, teplota, intenzita apod. pochopitelnì vždy ve svých pøíslušných jednotkách. Na obr. 3.3 vidíte dva pøíklady tvorby signálù a jejich grafù, které naplòují takové požadavky. Pøíslušný graf náleží vždy pod pøíklad jeho tvorby. Z obr. 3.3 je zøejmé, aby mohla být vodorovná osa cejchovaná jinak, než jako prosté poøadí èísel vzorkù, je tøeba ji pøed kreslením grafu vytvoøit. Taková osa (Teplota, Èas) bude opìt øadou (vektorem) èísel a poèet jejich vzorkù musí být logicky stejný, jako poèet vzorkù na svislé ose. Tedy, poèet hodnot na obou osách musí být shodný. Vzdálenost mezi vzorky bude na vodorovné ose vizuálnì stále stejná, pokud bude tato osa lineární. Pøi volbì logaritmické osy pak již nikoliv. Obì osy jsou tedy tvoøeny øadou èísel, jsou tedy vektory o stejném poètu prvkù neboli stejné délce. Pøitom je zcela lhostejné, jakou fyzikální povahu onìm èíslùm na obou osách pøisoudíme. U èíslicových signálù to nehraje žádnou roli, MATLAB prostì pracuje s èísly. Pokud uživatel nebude mít vektor vodorovné osy k dispozici, bude se muset spokojit se základním zobrazením v podobì poøadového èísla vzorkù na této ose nebo s prostým výpisem hodnot, tedy s posloupností. A 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY 41
Obr. 3.3 Pøíklady cejchování vodorovné osy èíslicového signálu 42 KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR A
Jistì vás napadne øada pøíkladù, kdy mìøíte èi jinak vytváøíte èíslicový signál a to bez zvláštních velièin na vodorovné ose nebo s nimi. Mùžete mìøit obvody stromù v lese, kdy nás vodorovná osa nezajímá, vážit dìti ve škole, nebo mìøit teplotu vzduchu v nìkolika èasových okamžicích po sobì. V tomto pøípadì je k dispozici také velièina na vodorovné ose èas již z principu mìøení. Vidíte, že nìkdy je velièina na vodorovné ose dùležitá (èas mìøení teploty), jindy nás nezajímá (mìøení obvodu stromù pro úèely výpoètu prùmìrného obvodu). Shròme, že vždy, když máte k dispozici øadu èísel, jde o èíslicový signál jistý poèet èísel. Jejich úèelnost, využitelnost, fyzikální význam èi dopad tìmto èíslùm pøisuzujeme my lidé. 3.1.2 Vzorkování a diskrétní èas Jak jsme již pøedeslali výše, na vodorovné ose grafù èíslicových signálù mohou být rùzné velièiny. Jedna velièina se však vyskytuje obzvláštì èasto a tou je èas. Øada èíslicových signálù je totiž získávána mìøením èi výpoètem èasových prùbìhù záznamù signálù a to analogových nebo pøímo èíslicových. Pøi mìøení teploty každou hodinu bìhem dne si budete zapisovat do tabulky dvì øady èísel teplotu a pøíslušný èas. Takový signál je již èíslicový a hodnoty èasu na vodorovné ose jsou již tímto mìøením dány. Jiná situace nastane, když bude mìøen signál analogový a do èíslicové podoby bude pøeveden pomocí pøevodníkù A/D, èasto nazývaných obvody ADC (Analog to Digital Converter pøevodník z analogové do digitální podoby). Na výstupu obvodu ADC má tedy signál již èíslicovou podobu. Èísla, obsažená v tomto signálu jistì souvisejí s pùvodním analogovým signálem. Ilustraèní pøíklad vzniku èíslicového signálu z analogového ukazuje obr. 3.4 (signál není kvantován). Obrázek vlevo ukazuje pøíkazy, použité k vytvoøení pravého grafického prùbìhu, který byl poté pøímo v menu obrázku dotvoøen (název, popisky apod.). Z èasového prùbìhu je vidìt, že pokud pøevedete analogový signál na èíslicový, nabude podobu prosté posloupnosti èísel. Vodorovná osa je vytvoøena a velièina na ní má vý- Obr. 3.4 Pøevod analogového signálu do èíslicové podoby A 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY 43
znam èasu. Pøi pohledu na oba signály, analogový i èíslicový, je patrné, že èíslicový signál je tvoøen vzorky analogového signálu v urèitých, pravidelnì se opakujících èasových intervalech, daných vektorem èasové osy. Na obr. 3.5 je èíslicový signál z obr. 3.4 ukázán v podobì posloupnosti. V horním øádku jsou èísla, odpovídající svislé ose (funkèní hodnoty signálu), druhý øádek pøedstavuje vodorovnou osu grafu (èas). Z obr. 3.4 plyne, že tzv. analogový signál je ve skuteènosti také tvoøen koneènou øadou èísel (vektor u a ), avšak poèet èísel je velký a proto se tento signál tváøí jako analogový. Tato finta je jedinou možností, jak pracovat s analogovými signály v MATLABu. Obr. 3.5 3.1.2.1 Vzorkování Èíslicový signál z obr. 3.4 v podobì posloupnosti spolu s èasovou osou Na základì pøedchozího pøíkladu mùžeme napsat, že pokud èíslicový signál vznikl z analogového, pak pøedstavuje vzorky pùvodního analogového prototypu. Z hlediska vodorovné osy, èasu, jde tedy o vzorky, vzniklé procesem vzorkování. Vzorkování je tedy procesem, kterým z analogového signálu získáme jeho vzorky na èasové ose. Tyto vzorky jsou definovány jen v urèitých èasových okamžicích a v bìžných pøípadech (ale ne ve všech) jsou podél èasové osy rozprostøeny pravidelnì. O periodických signálech jsme psali v kapitole 2.3.2. Odtud víme, že jedním z parametrù tìchto signálù je opakovací perioda T 0 èi opakovací kmitoèet F 0. U èíslicových signálù, vzniklých vzorkováním analogových signálù, je jedním z nejdùležitìjších parametrù vzorkovací perioda T vz nebo vzorkovací kmitoèet F vz. Vzorkovací perioda je doba mezi jednotlivými vzorky, tedy vzdálenost mezi nimi v sekundách [s]. Pøevrácená hodnota vzorkovací periody je vzorkovacím kmitoètem v jednotkách Hertz [Hz = s 1 ]. Tyto základní pojmy jsou ilustrovány na obr. 3.6. Symboly T vz a F vz na obr. 3.6 oznaèují vzorkovací periodu a vzorkovací kmitoèet èíslicových vzorkù. Jde tedy o parametry, vztahující se k vlastním vzorkùm. Symbolem T 0 je v grafech oznaèena perioda pùvodního analogového periodického signálu, tedy spojité obálky. Pokud znáte vzorkovací periodu, tedy vzdálenost vzorkù a poèet vzorkù v rámci periody pùvodního analogového signálu, snadno vypoètete jeho pùvodní periodu. A naopak, je-li známa pùvodní perioda T 0, pak na základì znalosti T vz nebo F vz lze vypoèítat poèet vzorkù v rámci jedné periody pùvodního analogového signálu. Jinými slovy, namísto toho, abychom definovali tøi parametry, tedy T vz, poèet vzorkù a T 0, lze definovat pouze dva a ten tøetí dopoèítat, bude-li to potøeba. Pøi práci se signály se velmi èasto používá pomìr ) ) [ ] =, 44 KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR A
symbolem F 0 oznaèujeme opakovací kmitoèet analogového periodického signálu a platí [ ] ) = +] V teorii jsou definovány a užívány také normované velièiny, kdy platí: ) ) ) = [ ] a [ ] =. Obr. 3.6 K pojmùm vzorkovací perioda a vzorkovací kmitoèet A 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY 45
V pøípadì obr. 3.6 lze u prvního grafu vypoèítat: u druhého grafu = = = [ ] = = = [ ] Èísla 10 a 20 jsou tedy poèty vzorkù v rámci jedné periody pùvodního analogového signálu (obálky). Výhodou je, že znáte-li uvedené pomìry [ ] pak pøi zadání T vz lze ihned dopoèítat T 0 a naopak. Ukažme si to v následujících pøíkladech. & Pøíklad 3.1 Periodický analogový signál byl pøevodníkem ADC pøeveden do èíslicové podoby a naèten do souboru na pevném disku poèítaèe. Bylo zjištìno, že poèet vzorkù v rámci jedné periody analogového signálu byl 100. Jaký byl použitý vzorkovací kmitoèet a vzorkovací perioda, byl-li kmitoèet analogového signálu F 0 = 400 Hz Øešení: ) [ ] ) ) ) ) N+] ) = = = = = = = = µ V ) Poznámka: vzorkovací kmitoèet je dán použitým pøevodníkem ADC. Nìkdy má uživatel možnost jej mìnit, jindy je pevnì vázán na daný typ pøevodníku èi zaøízení. & Pøíklad 3.2 U signálu z pøíkladu 3.1 potøebujeme zajistit, aby v rámci jedné periody analogového signálu byl dvojnásobnì vyšší poèet vzorkù. Jaký vzorkovací kmitoèet je potøebné zvolit? Øešení: ) [ ] ) ) ) ) N+] ) = = = = 46 KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR A
Pouèení: je jistì zøejmé, že zvýšení vzorkovacího kmitoètu na dvojnásobek zpùsobí dvojnásobný nárùst poètu vzorkù v rámci jedné periody analogového signálu. Poznámky: n n n pokud vzorkovaný signál není periodický, nemá smysl používat symbol periody T 0, v praxi mùže být proces vzorkování realizován rùzným zpùsobem; v koneèném dùsledku však na konci procesu pøevodu budou pouhá èísla, bez dùkazù uveïme, aby byl proces vzorkování realizován korektnì, je tøeba dodržet podmínku F vz > 2 F 0, tedy je tøeba nejménì dvou vzorkù na periodu analogového periodického harmonického signálu (podrobnosti v kapitole 5.3.2.1). 3.1.2.2 Diskrétní èas Podívejme se ještì jednou na obr. 3.2 a obr. 3.3. Na vodorovné ose 2D grafu mohou být tøi velièiny. Jde o prosté poøadí vzorkù n, spojitý èas t (continuous-time) a tzv. diskrétní èas nt vz (discrete-time), viz obr. 3.. Rozdíl mezi spojitým a diskrétním èasem je zøejmý. Spojitý èas je spojitou velièinou, je tedy definován v každém bodì sledovaného èasového intervalu. Diskrétní èas je definován pouze v okamžicích vzorkù. D Q>@ E F W>V@ Q >V@ Obr. 3. Rùzné velièiny na vodorovné ose grafu u vzorkovaných signálù: a) poøadí vzorkù, b) spojitý èas, c) diskrétní èas. A 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY 4
Je zøejmé, že pokud bude potøeba mít na vodorovné ose èas, bude tøeba informaci o nìm nìkde získat. Napø. u souborù zvukového formátu *.wav, používaném v operaèním systému Windows, je kromì vlastních zvukových vzorkù pøítomna informace o vzorkovacím kmitoètu F vz. Bez toho by nebylo zøejmé, s jakou èetností byla data získána a nebylo by možné je stejnou rychlostí pøehrát, viz napø. pøíklad 5.5 v kapitole 5.3.2.5. Èísla bez dalších informací jsou pouhými èísly. 3.2 Možnosti práce s analogovými signály Z hlediska jisté komplexnosti se nelze vyhnout práci s analogovými signály a to zejména v kapitolách 4 a 5, které jsou vìnovány tvorbì signálù a jejich analýze. Obr. 3.8 Simulace analogových prùbìhù velkým zvìtšením poètu vzorkù 48 KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR A
Jak jsme zmínili v kapitole 3.1.2, pravé spojité (souvislé) velièiny v MATLABu používat nelze. Lze však analogové signály jistým zpùsobem simulovat tím, že k jejich zobrazování budeme používat velký poèet hodnot tak, že se ve výsledku budou tváøit jako analogové, viz obr. 3.8 a obr. 3.9. Na druhém grafu obr. 3.8 je ukázána simulace analogových prùbìhù tím, že se velkou mìrou zvýší poèet vzorkù. Graf takového prùbìhu se tváøí jako spojitý v obou osách. Vy však již budete vìdìt, že je to jistým zpùsobem napodobení pravých analogových prùbìhù. Tento zpùsob nám však umožní zabývat se tìmito signály a poukazovat na øadu jejich vlastností. MATLAB má však jednu zajímavou vlastnost, která umožní zobrazovat analogové signály èi spojité velièiny bez toho, aniž by uživatel musel explicitnì zvyšovat poèet vzorkù. Staèí použít pøíkaz plot pøi vykreslování grafù bez dalších parametrù, viz obr. 3.9. Srovnáte-li obr. 3.9 s prvním pøípadem na obr. 3.8 shledáte, že pøíkaz plot, použitý bez dalších parametrù, automaticky aproximuje prùbìh mezi definovanými body, že tedy zvyšuje poèet vzorkù. Tímto jednoduchým zpùsobem lze efektivnì kreslit grafy analogových signálù a platí to i v pøípadì dvourozmìrných signálù, viz napø. pøíkazy plot3, mesh a surf. Budete-li chtít zvýraznit èíslicový, tedy diskrétní charakter signálù, použijte k vykreslení nejlépe pøíkaz stem, viz napø. obr. 3.2, nebo pøíkaz plot podle prvního grafu na obr. 3.8. Obr. 3.9 Využití pøíkazu plot k simulaci analogových prùbìhù A 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY 49