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á slouit 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ø. umisováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura
[email protected]
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é kadý 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 zjednoduení textu), musíte poèítat s tím, e vdy 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. Protoe 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, vdy 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
3.1.1
Zobrazení èíslicového signálu z obr. 3.1 ve formì grafu
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ì, vdy 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 poadová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ì vdy ve svých pøísluných jednotkách. Na obr. 3.3 vidíte dva pøíklady tvorby signálù a jejich grafù, které naplòují takové poadavky. Pøísluný graf náleí vdy 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 uivatel 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
42
Pøíklady cejchování vodorovné osy èíslicového signálu 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 okamicí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ùleitá (è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 vdy, kdy máte k dispozici øadu èísel, jde o èíslicový signál jistý poèet èísel. Jejich úèelnost, vyuitelnost, 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 vak 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 kadou hodinu bìhem dne si budete zapisovat do tabulky dvì øady èísel teplotu a pøísluný è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, obsaená 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, pouité 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
A
Pøevod analogového signálu do èíslicové podoby 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 ua), avak poèet èísel je velký a proto se tento signál tváøí jako analogový. Tato finta je jedinou moností, jak pracovat s analogovými signály v MATLABu.
Obr. 3.5
Èíslicový signál z obr. 3.4 v podobì posloupnosti spolu s èasovou osou
3.1.2.1 Vzorkování 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 okamicích a v bìných pøípadech (ale ne ve vech) 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 T0 èi opakovací kmitoèet F0. U èíslicových signálù, vzniklých vzorkováním analogových signálù, je jedním z nejdùleitìjích parametrù vzorkovací perioda Tvz nebo vzorkovací kmitoèet Fvz. 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 = s1]. Tyto základní pojmy jsou ilustrovány na obr. 3.6. Symboly Tvz a Fvz 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 T0 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 T0, pak na základì znalosti Tvz nebo Fvz 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 Tvz, poèet vzorkù a T0, 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
7 ) = Y] [ − ] , 7Y] )
44
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
symbolem F0 oznaèujeme opakovací kmitoèet analogového periodického signálu a platí
) =
[+] ] 7
V teorii jsou definovány a uívány také normované velièiny, kdy platí:
) =
Obr. 3.6
A
) [− ] )Y]
a
7 =
7 [− ]. 7Y]
K pojmùm vzorkovací perioda a vzorkovací kmitoèet 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY
45
V pøípadì obr. 3.6 lze u prvního grafu vypoèítat: 7 ⋅ − = = = [ − ] − 7Y] ⋅
u druhého grafu
7 ⋅ − = = = [ − ] 7Y] ⋅ − Èí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
7 [ − ] 7Y] pak pøi zadání Tvz lze ihned dopoèítat T0 a naopak. Ukame 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 zjitìno, e poèet vzorkù v rámci jedné periody analogového signálu byl 100. Jaký byl pouitý vzorkovací kmitoèet a vzorkovací perioda, byl-li kmitoèet analogového signálu F0 = 400 Hz Øeení:
)Y] = [ − ] ⇒ )
)Y] = ⋅ ) )Y] = ⋅ )Y] = N+]
7Y] =
7Y] = 7Y] = ⋅ − 7Y] = µV )Y] ⋅
Poznámka: vzorkovací kmitoèet je dán pouitým pøevodníkem ADC. Nìkdy má uivatel monost 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? Øeení:
)Y] = [ − ] ⇒ )
46
)Y] = ⋅ ) )Y] = ⋅ )Y] = N+]
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 T0, v praxi mùe být proces vzorkování realizován rùzným zpùsobem; v koneèném dùsledku vak na konci procesu pøevodu budou pouhá èísla, bez dùkazù uveïme, aby byl proces vzorkování realizován korektnì, je tøeba dodret podmínku Fvz > 2 · F0, 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 jetì 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 nTvz (discrete-time), viz obr. 3.7. Rozdíl mezi spojitým a diskrétním èasem je zøejmý. Spojitý èas je spojitou velièinou, je tedy definován v kadém bodì sledovaného èasového intervalu. Diskrétní èas je definován pouze v okamicích vzorkù. D
Q>@
E
F
7Y]
Obr. 3.7
A
W>V@
7Y]7Y]
7Y] Q7Y]>V@
Rùzné velièiny na vodorovné ose grafu u vzorkovaných signálù: a) poøadí vzorkù, b) spojitý èas, c) diskrétní èas. 3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY
47
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 Fvz. Bez toho by nebylo zøejmé, s jakou èetností byla data získána a nebylo by moné 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
Monosti 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
48
Simulace analogových prùbìhù velkým zvìtením poètu vzorkù 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 vak 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 vak 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 vak umoní zabývat se tìmito signály a poukazovat na øadu jejich vlastností. MATLAB má vak jednu zajímavou vlastnost, která umoní zobrazovat analogové signály èi spojité velièiny bez toho, ani by uivatel musel explicitnì zvyovat 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, pouitý bez dalích parametrù, automaticky aproximuje prùbìh mezi definovanými body, e tedy zvyuje 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ù, pouijte 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
A
Vyuití pøíkazu plot k simulaci analogových prùbìhù
3 MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY
49