KAREL ZAPLATÍLEK A BOHUSLAV DOÒAR
MATLAB ZAÈÍNÁME SE SIGNÁLY
Praha 2006
Karel Zaplatílek a Bohuslav Doòar
MATLAB zaèínáme se signály Bez pøedchozího písemného svolení nakladatelství nesmí být kterákoli èást kopírována nebo rozmnoována jakoukoli formou (tisk, fotokopie, mikrofilm nebo jiný postup), zadána do informaèního systému nebo pøenáena v jiné formì èi jinými prostøedky. Autoøi a nakladatelství nepøejímají záruku za správnost titìných materiálù. Pøedkládané informace jsou zveøejnìny bez ohledu na pøípadné patenty tøetích osob. Nároky na odkodnìní na základì zmìn, chyb nebo vynechání jsou zásadnì vylouèeny. Vechny registrované nebo jiné obchodní známky pouité v této knize jsou majetkem jejich vlastníkù. Uvedením nejsou zpochybnìna z toho vyplývající vlastnická práva. Vekerá práva vyhrazena © Doc. Ing. Karel Zaplatílek, Ph.D a Ing. Bohuslav Doòar, CSc., Praha 2006 Nakladatelství BEN technická literatura, Vìínova 5, Praha 10 Karel Zaplatílek, Bohuslav Doòar: MATLAB zaèínáme se signály BEN technická literatura, Praha 2006 1. vydání
ISBN 80-7300-200-0
OBSAH O KNIZE ............................................................................ 9 1
ÚVOD .............................................................................. 11
1.1
Proè jsme knihu napsali a pro koho je urèena ........................... 12
1.2
Co je potøeba k práci ..................................................................... 13
1.3
Opakování aneb co byste mìli znát ............................................. 14
1.3.1 Pracovní prostøedí systému MATLAB ......................................................... 14 1.3.2 Základní zpùsob práce se systémem MATLAB .......................................... 15 1.3.3 Pouití helpù ................................................................................................ 17
1.4
Práce s literaturou ......................................................................... 19
1.5
Licenèní politika tvùrcù systému MATLAB ................................. 20
2
SIGNÁLY A JEJICH MODELY........................................ 21
2.1
Pojem signál ................................................................................... 22
2.1.1 Praktické pøíklady signálù ............................................................................ 22 2.1.2 Zajímavé souvislosti, vztahující se k pojmu signál ...................................... 24
2.2
Modely signálù ............................................................................... 25
2.2.1 Skuteèný, reálnì existující signál ................................................................ 25 2.2.2 Modely signálù ............................................................................................. 27
2.3
Klasifikace signálù a jejich modelù ............................................. 30
2.3.1 Signály se spojitým a diskrétním prùbìhem velièin ..................................... 30
A
MATLAB
ZAÈÍNÁME SE SIGNÁLY
3
2.3.2 Signály periodické a aperiodické ................................................................. 31 2.3.2.1 Periodické signály ................................................................................. 32 2.3.2.2 Aperiodické signály .............................................................................. 34 2.3.3 Signály deterministické a stochastické ........................................................ 34 2.3.3.1 Deterministické signály ........................................................................ 35 2.3.3.2 Stochastické signály ............................................................................. 35 2.3.4 Signály jednorozmìrné a vícerozmìrné ...................................................... 37
3
MATLAB NÁSTROJ PRO PRÁCI S ÈÍSLY ................ 39
3.1
Èíslicové signály a jejich zobrazení ............................................. 40
3.1.1 Cejchování vodorovné osy grafu ................................................................. 41 3.1.2 Vzorkování a diskrétní èas .......................................................................... 43 3.1.2.1 Vzorkování ............................................................................................. 44 3.1.2.2 Diskrétní èas .......................................................................................... 47
3.2
Monosti práce s analogovými signály ....................................... 48
3.3
Shrnutí pouívaných termínù a symbolù .................................... 50
4
TVORBA A ZÍSKÁVÁNÍ SIGNÁLÙ V PROSTØEDÍ MATLAB ......................................................................... 53
4.1
Vektory a matice jako èíslicová reprezentace signálù ............... 55
4.1.1 Tvorba jednoduchých signálù a práce s nimi .............................................. 55 4.1.2 Tvorba a vyuití vícerozmìrných matic ....................................................... 57 4.1.3 Tvorba a vyuití pole bunìk (Cell Arrays) .................................................... 57 4.1.4 Práce se strukturami .................................................................................... 60 4.1.5 Práce s rùznými formáty èísel ..................................................................... 61
4.2
Ukládání a naèítání promìnných .................................................. 62
4.2.1 Ukládání dat do souboru ............................................................................. 62 4.2.1.1 Ukládání dat v ASCII podobì ............................................................... 62
4
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
4.2.1.2 Ukládání dat v binární podobì ............................................................. 67 4.2.2 Ètení dat ze souboru ................................................................................... 68 4.2.2.1 Ètení dat v ASCII podobì ..................................................................... 68 4.2.2.2 Ètení dat v binární podobì ................................................................... 71 4.2.3 Interaktivní podpora práce s promìnnými ................................................... 74 4.2.3.1 Práce s panelem Workspace ............................................................ 75 4.2.3.2 Práce s oknem Import Wizard .......................................................... 77
4.3
Signal Processing Toolbox základní modul pro práci se signály ....................................................................................... 79
4.4
Pouití vestavìných generátorù signálù ..................................... 80
4.4.1 Generování harmonických signálù .............................................................. 81 4.4.1.1 Práce s pøíkazy sin a cos ............................................................... 81 4.4.1.2 Harmonický signál s promìnným kmitoètem .................................... 81 4.4.1.3 Napìovì øízený oscilátor (vco) ........................................................... 82 4.4.2 Generování obdélníkových signálù ............................................................. 84 4.4.2.1 Generování periodických obdélníkových signálù ................................ 84 4.4.2.2 Generování aperiodických obdélníkových signálù ........................... 85 4.4.3 Diskrétní jednotkový impulz a diskrétní jednotkový skok ............................ 86 4.4.4 Generování pilovitých signálù ..................................................................... 87 4.4.4.1 Generování periodických pilovitých signálù ...................................... 87 4.4.4.2 Generování aperiodických pilovitých signálù .................................... 89 4.4.5 Generování Gaussovsky modulovaného harmonického signálu ................ 89 4.4.5.1 Generování periodických prùbìhù ...................................................... 89 4.4.5.2 Generování aperiodických prùbìhù .................................................... 91 4.4.6 Funkce pro periodické opakování vybraných aperiodických prùbìhù ........ 92 4.4.7 Generování signálù s prùbìhem tvaru sinc .............................................. 94 4.4.8 Generování modulovaných signálù ............................................................. 95 4.4.8.1 4.4.8.2 4.4.8.3 4.4.8.4
Amplitudová modulace (AM) s potlaèenou nosnou .......................... 96 Kmitoètová modulace (FM) .................................................................. 97 Pulzní íøková modulace (PWM) .......................................................... 99 Pulzní polohová modulace (PPM) ........................................................ 99
4.4.9 Demodulace modulovaných signálù ............................................................ 99 4.4.9.1 Demodulace signálu AM s pøenáenou nosnou ................................ 99 4.4.9.2 Demodulace signálu FM ..................................................................... 101
A
MATLAB
ZAÈÍNÁME SE SIGNÁLY
5
4.4.9.3 Demodulace signálu PWM .................................................................. 101 4.4.10Generování náhodných signálù ................................................................. 102 4.4.10.1 4.4.10.2 4.4.10.3 4.4.10.4
Struèné shrnutí teorie ......................................................................... 102 Diskrétní náhodné velièiny ................................................................. 103 Spojité náhodné velièiny .................................................................... 105 Generování signálù s rovnomìrným rozdìlením hustoty pravdìpodobnosti ............................................................................... 106 4.4.10.5 Generování signálù s normálním rozdìlením hustoty pravdìpodobnosti ............................................................................... 108 4.4.10.6 Výpoèet støední hodnoty a smìrodatné odchylky ........................... 110 4.4.10.7 Výpoèet mediánu .................................................................................. 111 4.4.11 Generování zaumìných signálù .............................................................. 112 4.4.11.1 Struèné shrnutí teoretických základù ............................................... 112 4.4.11.2 Generování harmonického signálu, zaumìného aditivním umem ................................................................................. 114 4.4.12Generování harmonického signálu s definovaným harmonickým zkreslením ........................................................................... 115 4.4.13Práce v interaktivním prostøedím SPTOOL ............................................... 117 4.4.13.1 Prohlíení signálù, jejich export a import ......................................... 119 4.4.13.2 Práce s filtry ......................................................................................... 120 4.4.13.3 Spektrální analýza signálu ................................................................. 122
4.5
Získávání dat z externích zdrojù ................................................ 122
4.5.1 Pøenos dat s podporou rozhraní RS-232 ................................................... 123 4.5.2 Pøenos dat s podporou protokolu FTP ...................................................... 129 4.5.3 Pøenos dat pomocí systému DDE v prostøedí operaèního systému MS Windows® ................................................................................................. 134
4.6
Pouití uivatelských funkcí jako zdroje dat ............................. 137
4.6.1 Pøíklady m-souborù s vyuitím pøíkazù systému MATLAB ........................ 138 4.6.2 Pøíklady m-souborù pro definici vlastních funkèních závislostí ................. 141
5
ANALÝZA SIGNÁLÙ .................................................... 145
5.1
Rozdìlení metod analýzy ............................................................ 149
5.2
Analýza signálù v originální (èasové) oblasti ........................... 150
6
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
5.2.1 Základní charakteristiky signálù ................................................................ 151 5.2.2 Globální a dalí charakteristiky signálù ..................................................... 156 5.2.2.1 5.2.2.2 5.2.2.3 5.2.2.4 5.2.2.5 5.2.2.6 5.2.2.7 5.2.2.8 5.2.2.9 5.2.2.10 5.2.2.11
Mohutnost impulzu ............................................................................. 156 Støední hodnota ................................................................................... 157 Smìrodatná odchylka ......................................................................... 159 Medián .................................................................................................. 160 Okamitý výkon impulzu .................................................................... 161 Èinný výkon (støední výkon, výkon impulzu) ................................... 162 Efektivní hodnota ................................................................................ 162 Energie impulzu ................................................................................... 163 Vzájemná energie dvou impulzù ........................................................ 163 Derivace ................................................................................................ 165 Integrace ............................................................................................... 166
5.2.3 Výpoèet konvoluce .................................................................................... 168 5.2.3.1 Lineární diskrétní konvoluce .............................................................. 168 5.2.3.2 Kruhová (cyklická) diskrétní konvoluce ........................................... 173 5.2.3.3 Vyuití algoritmu FFT pro výpoèet kruhové konvoluce rychlá konvoluce ................................................................................. 175 5.2.3.4 Výpoèet lineární konvoluce pomocí algoritmu FFT ......................... 176 5.2.4 Korelaèní analýza ...................................................................................... 178 5.2.4.1 Korelace a kovariance ........................................................................ 178 5.2.4.2 Korelaèní a kovarianèní funkce ......................................................... 181 5.2.4.3 Pøíklady uití korelaèních funkcí ........................................................ 188
5.3
Spektrální analýza ....................................................................... 193
5.3.1 5.3.1.1 5.3.1.2 5.3.1.3 5.3.2 5.3.2.1 5.3.2.2 5.3.2.3 5.3.2.4 5.3.2.5 5.3.3 5.3.3.1 5.3.3.2
5.4
A
Spektrální analýza analogových signálù .......................................... 196 Spektrum harmonického signálu ...................................................... 197 Spektrum neharmonických periodických signálù ........................... 204 Spektrum aperiodických signálù ....................................................... 215 Spektrální analýza deterministických èíslicových signálù ............. 225 Spektrum vzorkovaného signálu, vzorkovací pouèka .................... 226 Fourierova transformace diskrétních signálù .................................. 229 Spektrální analýza periodických signálù .......................................... 236 Spektrální analýza aperiodických signálù ........................................ 238 Dùsledky aplikace algoritmu DFT ...................................................... 238 Spektrální analýza stochastických èíslicových signálù .................. 251 Odhad výkonových spekter jednotlivých procesù .......................... 254 Vzájemná spektra dvojice procesù ................................................... 255
Èasovì frekvenèní analýza ...................................................... 258
MATLAB
ZAÈÍNÁME SE SIGNÁLY
7
6
ZÁVÌR .......................................................................... 261
LITERATURA A ODKAZY PRO DALÍ STUDIUM .............. 263 WEBOVÉ STRÁNKY TVÙRCE SYSTÉMU MATLAB ......... 264 PØEHLED POUITÝCH SYMBOLÙ A ZKRATEK ............... 265 REJSTØÍK ............................................................................ 266
8
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A
O knize V letech 2003 (druhé vydání 2005) a 2004 jsme v nakladatelství BEN technická literatura Praha vydali dvì knihy o systému MATLAB. První z nich je urèena pro naprosté zaèáteèníky, druhá pro mírnì pokroèilé uivatele. S jejich pomocí je moné v pomìrnì krátké dobì zaèít s MATLABem smysluplnì pracovat, vyznat se v jeho prostøedí, pochopit základní filozofii a monosti vestavìných nástrojù a dokonce zaèít programovat vlastní aplikace s podporou grafiky a vyuitím internetu. Tìmito dvìma knihami se orientujeme na zejména ty ètenáøe a uivatele systému MATLAB, kteøí jsou zaèáteèníky, pøíleitostnými uivateli nebo tìmi, kteøí chtìjí pracovat bez èasto nadbyteèných informací. Pøitom sled kapitol, výbìr obrázkù a pøíkladù k vyzkouení a ovìøení byly peèlivì voleny na základì naí dlouholeté zkuenosti tak, aby i nepøíli objemné publikace vedly ètenáøe rychle k cíli. Pøedkládaná kniha je pomyslným tøetím dílem naí malé série o systému MATLAB. Jejím hlavním cílem je nauèit uivatele základùm práce se signály. Naí snahou je, aby ètenáø uivatel systému byl k tomuto cíli veden pøímo, pouze s nezbytným mnostvím názorných a peèlivì vybraných informací rùzného druhu. Naím pøáním je, aby se kniha stala prùvodcem ve svìtì signálù jak mírnì pokroèilým zaèáteèníkùm, tak uivatelùm s hlubími znalostmi a nároky. Pracovat se signály lze v MATLABu na rùzných úrovních. Poèínaje jednoduchou tvorbou vektorù a matic, kreslením jednodue vytvoøených dat rùznými typy grafù pøes nároènìjí typy analýzy a po sloité sofistikované matematické postupy a algoritmy. Je zøejmé, e kadá úroveò bude vyadovat od uivatele jinou íøi a hloubku znalostí. Pouité postupy se také budou liit podle cíle, se kterými uivatel k systému MATLAB pøistupuje. Je jistì rozdíl v pøístupu studenta støední koly èi uèilitì, který se se systémem seznamuje a zkouí si jeho monosti èi øeí jednoduí úkoly a vysokokoláka, jen stojí pøed úkolem vypracovat roèníkový projekt, bakaláøskou èi diplomovou práci s podporou MATLABu nebo doktoranda, uèitele a vìdce, pracujícího na vìdeckém úkolu. Z uvedených dùvodù bylo naím nejsloitìjím úkolem navrhnout vhodnou strukturu knihy tak, aby si v ní nael ve potøebné co nejirí okruh zájemcù. V èeské republice i zahranièí existuje øada kvalitních knih a publikací, vìnujících se teorii signálù. Ta je ve své podstatì pomìrnì iroká. Mimoto, k dispozici je podobnì mnoho knih o systému MATLAB. Skloubit obì oblasti, tedy teorii a aplikace, bylo také jedním z naich hlavních cílù. Není to vak úkol snadný, nebo tam kde pøidáte prostor jednomu, nebude se jej dostávat druhému. Na základì naich zkueností jak s prací se systémem MATLAB, tak pøedevím s výukou zpracování signálù na vysokých kolách jsme navrhli øeení, vtìlené v této publikaci. Stìejní kapitoly jsou vdy uvozeny struèným teoretickým úvodem, sestávajícím z matematického aparátu s pøísluným
A
MATLAB
ZAÈÍNÁME SE SIGNÁLY
9
komentáøem. Následující øada pøíkladù je pak vdy v souladu s touto teorií a tam, kde je to potøebné, jsou výsledky øeených pøíkladù ve svém závìru vdy rozebrány a komentovány pro hlubí porozumìní. Uvedený pøístup ke struktuøe knihy má mnoho pøedností. Umoòuje naèerpat èi zopakovat nezbytné teoretické partie a souèasnì si je procvièit v praxi s pomocí algoritmù MATLABu. Nevýhodou je pak skuteènost, e teoretické pasáe nejsou vyèerpávající èi jsou úmyslnì zjednoduené. V tom pøípadì na toto budete upozornìni, stejnì jako na odkazy na dostupnou literaturu, kde lze nastudovat øadu dalích podrobností èi zpøesnìní. Opìt platí, e pochopí-li ètenáø uivatel princip, je vyhráno a mùe poté ji tvoøit relativnì samostatnì. A pøesnì o to nám v knize jde; s co nejmení námahou dosáhnout co nejvíce znalostí a dovedností. Váení ètenáøi, pokud vám nechybí chu èi motivace do práce, seit na vlastní poznámky a v ideálním pøípadì sputìný poèítaè s legálními licencemi na systém MATLAB a jeho Signal Processing Toolbox, mùete se pustit do práce. Dìkujeme naim kolegùm, studentùm, ètenáøùm a dále vem, kteøí se nám stali zdrojem inspirace a chuti do kadodenní práce s MATLABem a psaní pøedkládané knihy.
Brno, srpen 2006
10
Autoøi
KAREL ZAPLATÍLEK, BOHUSLAV DOÒAR
A