MATLAB & Simulink Návrh digitálních filtrů pro úpravu signálů a analýza obrazu Jaroslav Jirkovský jirkovsky@humusoft.cz www.humusoft.cz info@humusoft.cz www.mathworks.com 1
Obsah Úvod Zpracování signálu Měření reálných signálů a jejich přenos do MATLABu Spektrální analýza signálu Návrh digitálních filtrů Návrh a simulace kompletního algoritmu pro zpracování signálu Automatické generování kódu pro cílovou platformu (DSP, FPGA ) Zpracování obrazu Snímání živých obrazových dat Analýza a úprava snímků, detekce objektů Tvorba kompletní aplikace pro zpracování obrazu 2
Co je MATLAB 3 Integrované prostředí pro vědeckotechnické výpočty Grafické a výpočetní nástroje Intuitivní uživatelské rozhraní MATLAB Desktop Rychlé výpočetní jádro Programovací jazyk 4. Generace více než 1 000 funkcí objektově orientované programování Grafická uživatelská rozhraní (GUI) Rozsáhlá HTML nápověda prohlížeč funkcí Systém MATLAB je: modulární toolboxy otevřený uživatel může zobrazit i upravovat funkce
Co je Simulink Nadstavba MATLABu Modelování, simulace a analýza dynamických systémů Prostředí blokových schémat předdefinované knihovny bloků systém práce drag and drop tvorba vlastních funkčních bloků Prvky pro tvorbu algebraických a diferenciálních rovnic Otevřené rozhraní pro tvorbu aplikací začlenění kódu z programů MATLAB, C, Fortran Platforma pro Model Based Design následně může být automaticky generován kód pro cílovou platformu 4
Struktura systému MATLAB Aplikace v reálném čase, µp, DSP, FPGA, PLC Blocksety (knihovny bloků) Samostatně spustitelné aplikace Toolboxy (knihovny funkcí) Simulink Simulace a modelování dynamických systémů MATLAB Výpočty, programování, vizualizace... 5
Tok informací a dat v MATLABu Vstupy Řešení Výstupy Soubory/Data Dokumentace Analýza dat a modelování Programy Vývoj algoritmů Návrh/Výrobek Vývoj aplikací Hardware Samostatné aplikace 6 Automatizace procesu
Vývojový cyklus - Tradiční Požadavky a specifikace Návrh Implementace Textová forma - Nedovoluje pružné ladění a aktualizace Testy a Verifikace Fyzické prototypy - Drahé, nekompletní - Časově náročné Ruční programování - Náchylné na chyby - Neefektivní Tradiční testování - Chyby odhaleny pozdě vzhledem ke struktuře vývojového procesu 7
Vývojový cyklus - Model Based Design Požadavky a specifikace Modely prostředí Návrh Modely chování systému Spustitelný model - Jednoznačné - Pouze jedna pravda Simulace Modely prostředí Modely fyzických komponent Algoritmy - Snižuje potřebu fyzických prototypů - Umožňuje systematickou what if analýzu C, C, C++ MCU Algoritmy DSP Automatické generování kódu VHDL, Verilog FPGA - Redukce času a úsilí - Minimalizace chyb při programování Implementace ASIC Testy a Verifikace Hardware-in-the-Loop Processor-in-the-Loop 8
Měření a výstup reálných signálů Propojení s HW pro měření a výstup signálů měřící I/O karty do PC analogové i digitální porty zvukové karty Rozsáhlá podpora zařízení http://www.mathworks.com/products/ daq/supportedio.html Možnosti ovládání příkazy z příkazové řádky MATLABu GUI interface v MATLABu bloky v Simulinku Data Acquisition Toolbox 9
Zpracování signálu a návrh filtrů Návrh filtrů a filtrace signálu digitální i analogové filtry typu FIR a IIR výpočet charakteristik filtrů generování bloků filtru do Simulinku Statistické zpracování signálu spektrální analýza signálu korelace, kovariance, Speciální transformace diskrétní cosinová, Hilbertova, Funkce příkazové řádky Komplexní GUI pro návrh filtrů Signal Processing Toolbox 10
Pokročilé zpracování signálu Návrh a analýza pokročilých digitálních filtrů rozšíření návrhu FIR a IIR filtrů adaptivní filtry 30 různých algoritmů multirate a multistage filtry Stream-based zpracování signálu v MATLABu 80 algoritmů pro System objekty založeno na OOP MATLABu Návrh fixed-point filtrů Generování VHDL a Verilog kódu pro fixed-point filtry DSP system Toolbox, Fixed Point Toolbox, Filter Design HDL Coder 11
System objekty Přináší stream processing do MATLABu Objektově orientovaná implementace algoritmů snadná integrace do skriptů a funkcí v MATLABu System objekty automaticky pracují se stavovou informací, indexováním a ukládáním do bufferů užitečné pro iterativní stream data processing umožňuje efektivní zpracování rozsáhlých dat System objekty podporují: fixed-point aritmetiku generování C kódu Začlenění System objektů do Simulinku přes blok MATLAB Function Algoritmy DSP System Toolbox, Computer Vision System Toolbox, Communications System Toolbox, Phased Array System Toolbox Dávkové Stream zpracování 12
Zpracování signálu v Simulinku Začlenění do vývojového cyklu Model-Based Design Simulace algoritmů pro zpracování signálu v Simulinku filtrace digitální, analogové, adaptivní filtry,... transformace Fourierova, cosinová, statistika stř. hodnota, rozptyl, korelace, histogram spektrální odhad Frame-based zpracování dat DSP system Toolbox 13
Návrh komunikačních systémů Návrh a analýza algoritmů pro fyzickou vrstvu komunikačních systémů Knihovny bloků pro simulaci fyzické vrstvy komunikačních systémů v Simulinku modelování drátových i bezdrátových systémů a jejich polovodičových komponent Nástroje pro analýzu BER Communications System Toolbox 14
Návrh RF systémů Návrh, analýza a vizualizace sítí radiofrekvenčních zařízení Využití v oblasti bezdrátových komunikací radarů v analýze integrity signálů Modelování v Simulinku: radio-frekvenční (RF) filtry přenosové cesty zesilovače směšovače Pomoc při implementaci bezdrátových komunikačních systémů a jejich polovodičových součástek RF Toolbox, SimRF 15
Návrh a simulace phased array systémů 16 Algoritmy a nástroje pro návrh, simulaci a analýzu phased array systemů Tyto systémy používají prostorové a časové charakteristiky šíření vlnového pole k získání informací o zdroji nebo zdrojích vln Toolbox obsahuje algoritmy pro: generování vln tvarování vyzařovací charakteristiky odhad směru příchodu signálu (DOA) detekci cílů a jiné Algoritmy jsou ve formě funkcí MATLABu a System objektů Oblasti využití radar, sonar, lékařská ultrasonografie, zobrazovací metody ve zdravotnictví nebo mobilní komunikace. Phased Array System Toolbox
Generování kódu pro cílové platformy 17 Jeden ze základních kroků vývojového cyklu Model-Based Design Významně urychluje proces nasazení aplikace do reálného provozu Kód je možné generovat z modelů v Simulinku diagramů Stateflow algoritmů z podmnožiny jazyka MATLAB Generování kódu je plně automatické Zaměřeno na různé cílové platformy µp, DSP, FPGA, PLC Několik jazyků jazyk C HDL kód strukturovaný text Podpora výpočtů v pevné řádové čárce
Generování kódu v jazyce C Překlad modelů a algoritmů do jazyka C pro implementaci na µp a DSP univerzální zdrojový text, bohaté komentáře optimalizace z hlediska rychlosti a velikosti široké možnosti nastavení kódu Pro vybrané platformy knihovny bloků v Simulinku konfigurace časování aplikace obsluha onchip periferií podporované platformy zahrnují Infineon C166, ST10 Freescale MPC5xx TI2000, TI55xx, TIC6000 Microchip PIC24, PIC30, PIC32, PIC33 18
Generování kódu v jazyce C Kosimulační rozhraní propojuje MATLAB & Simulink s vývojovými prostředími embedded software (IDE) návrh, testování a optimalizace embedded kódu návrh prototypu produkce verifikace kódu spuštěného na embedded procesoru simulátoru instrukční sady v daném IDE skripty v MATLABu a modely v Simulinku jako testovací procedury při processor-inthe-loop testování MATLAB Coder, Simulink Coder, Embedded Coder Embedded Target for PIC 19
Generování HDL kódu Pro implementaci algoritmů na: programovatelná hradlová pole (FPGA) zákaznické integrované obvody (ASIC) Generování kódu v jazycích VHDL Verilog Možnost automaticky vytvořit HDL test bench pro rychlou verifikaci výsledného kódu Simulink HDL Coder 20 Kosimulační rozhraní obousměrné spojení mezi prostředím MATLAB & Simulink a HDL simulátory firem Mentor Graphics, Cadence a Synopsys EDA Simulator Link
Výpočty v pevné řádové čárce Práce s datovými typy a aritmetikou s pevnou řádovou čárkou návrh fixed-point algoritmů s použitím syntaxe MATLABu tvorba systémů pro řízení a zpracování signálu pracujících s fixed-point aritmetikou v Simulinku Převod do fixed-point aritmetiky manuální s využitím automatických nástrojů Využití posouzení vlivu fixed-point aritmetiky generování kódu pro embedded procesory a FPGA Fixed Point Toolbox, Simulink Fixed- Point 21
Snímání reálného obrazu Propojení s HW pro snímání obrazu web kamery framegrabbery Rozsáhlá podpora zařízení http://www.mathworks.com/products/i maq/supportedio.html Možnosti ovládání příkazy z příkazové řádky MATLABu GUI interface v MATLABu blok v Simulinku zpracování živého videa v Simulinku Image Acquisition Toolbox 22
Zpracování obrazu a videa Reprezentace obrazu a videa v MATLABu snímek video: binární: matice logických hodnot (0,1) šedá škála: matice (int8, int16, double) truecolor: 3-D pole tři matice složek R, G, B indexový: matice obrazu a matice s definicí indexů (colormap) struktura o N položkách každá položka jeden snímek (RGB, index) Načítání a ukládání obrazových dat v řadě formátů tiff, bmp, jpg, gif, png avi, mpg, wmv Čtení a zápis DICOM souborů Pro některé analýzy připravené grafické nástroje a uživatelská rozhraní 23
Zpracování obrazu a videa Funkce pro zpracování obrazu Prostorové transformace velikost, rotace, obecné 2-D a N-D transformace registrace snímků Návrh a implementace lineárních 2-D filtrů Transformace fft, dct, radon, fanbeam Morfologické operace dilatace, eroze, otevření, uzavření Analýza snímků informace o pixelech, histogram detekce objektů a analýza jejich vlastností Barvy redukce barev, konverze mezi barevnými prostory Image Processing Toolbox 24 Stream-based zpracování obrazu v MATLABu algoritmy pro System objekty založeno na OOP MATLABu Computer Vision System Toolbox
Grafické uživatelské rozhraní (GUI) Tvorba grafického rozhraní pro snadné ovládání algoritmů uživateli Veškeré standardní ovládací prvky tlačítko, slider, textové pole, editovatelné pole, seznam, menu Vhodné pro tvorbu stand-alone aplikací GUIDE editor pro tvorbu GUI layout editor editor funkcí property inspector object browser menu editor, toolbar editor V základním MATLABu 25
Samostatně spustitelné aplikace Sdílení kódu mezi uživateli v MATLABu Sdílení aplikací s koncovými uživateli, kteří nemají MATLAB Vytvoření samostatně spustitelné aplikace, C nebo C++ sdílené knihovny Vytvoření softwarové komponenty doplněk pro Excel třída v jazyce Java komponenta.net nebo COM MATLAB Compiler MATLAB Builder EX, JA, NE MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE.exe.dll.lib Java 26
Samostatně spustitelné aplikace Toolboxy 3 1 MATLAB Desktop Počíta tač koncového uživatele 2 MATLAB Compiler.exe 27
Zpracování obrazu a videa v Simulinku Začlenění do vývojového cyklu Model- Based Design Přirozené prostředí pro zpracování videa Knihovny bloků vstup a zobrazení videa filtrace geometrické a frekvenční transformace morfologické operace statistické funkce analýza a vylepšení obrazu Computer Vision System Toolbox 28
Přehled nástrojů 29
Nástroje pro zpracování signálu Měření a výstup reálných signálů Data Acquisition Toolbox Zpracování signálu a návrh digitálních filtrů Signal Processing Toolbox DSP System Toolbox Filter Design HDL Coder Návrh komunikačních systémů Communications System Toolbox RF Toolbox RF Blockset Návrh phased array systémů Phased Array System Toolbox 30
Nástroje pro zpracování obrazu Snímání reálného obrazu Image Acquisition Toolbox Zpracování obrazu a videa Image Processing Toolbox Computer Vision System Toolbox 31
Nástroje pro generování kódu Automatické generování C kódu MATLAB Coder Simulink Coder Embedded Coder Automatické generování HDL kódu Simulink HDL Coder EDA Simulator Link Filter Design HDL Coder Automatické generování strukturovaného textu Simulink PLC coder Aritmetika v pevné řádové čárce Fixed Point Toolbox Simulink Fixed-Point 32
Nástroje pro tvorbu kompletních aplikací Grafické uživatelské rozhraní MATLAB Samostatně spustitelné aplikace MATLAB Compiler MATLAB Builder EX MATLAB Builder JA MATLAB Builder NE 33
Další produkty HUMUSOFT 34
HUMUSOFT MF 624 a AD 622 35 AD 622 levná měřicí karta pro PC MF 624 Osm single-ended 14-bitových analogových vstupů Osm 14-bitových analogových výstupů 8 digitálních vstupů, 8 digitálních výstupů multifunkční vstupně-výstupní karta Osm single-ended 14-bitových analogových vstupů Osm 14-bitových analogových výstupů 8 digitálních vstupů, 8 digitálních výstupů 4 vstupy inkrementálních snímačů (diferenciální) 4 čítače/časovače Společné vlastnosti Nízká spotřeba Krátká doba A/D převodu Ovladače pro Real Time Toolbox, Real-Time Windows Target Windows, 32 i 64-bitové aplikace
Humusoft HeavyHorse 36 Procesory AMD Opteron jeden, dva nebo čtyři procesory 8 až 48 výpočetních jader frekvence CPU 2.2 až 3.1 GHz 8 až 128 GB RAM Grafická karta ATI Radeon HD 6000 Na přání grafická karta NVidia TESLA C2050 pro GPU výpočty Operační systém podle přání Microsoft Windows 64-bit Linux 64-bit Možnost předinstalace aplikací MATLAB Parallel Computing Toolbox MATLAB Distributed Computing Server COMSOL Multiphysics
COMSOL Multiphysics 37 Řešení parciálních diferenciálních rovnic (PDE) metodou konečných prvků řešení ve 2D a 3D Rozsáhlý modulární systém AC/DC Module RF Module MEMS Module Plasma Module Structural Mechanics Module Acoustics Module CFD Module Heat Transfer Module Chemical Reaction Engineering Module Batteries & Fuel Cells Module Earth Science Module
Zdroje informací Internetové stránky www.humusoft.cz domovská stránka firmy Humusoft s.r.o. www.mathworks.com domovská stránka firmy The MathWorks, Inc. MATLAB central prostor pro vzájemnou komunikaci mezi uživateli a příznivci systému MATLAB/Simulink (otevřená platforma pro prezentaci vlastních aplikací, výměnu souborů, názorů i zkušeností) www.mathworks.com/matlabcentral/ 38
Zdroje informací Www semináře (webinars) on-line semináře zdarma probíhající na internetu v reálném čase v daný den a hodinu videa webových seminářů, které již proběhly, jsou ke stažení v angličtině (The MathWorks), češtině, slovenštině Workshopy www.humusoft.cz/wwwseminare workshopy nabízí možnost praktického seznámení s programy MATLAB & Simulink a COMSOL Multiphysics účastníci mají k dispozici PC, kde si mohou prezentované příklady za asistence přednášejícího sami vyzkoušet Školení www.humusoft.cz/workshop/ Firma HUMUSOFT provádí školení na MATLAB, Simulink, Stateflow, Real Time Workshop, fyzikální modelování zhruba 1x za dva měsíce, termíny jsou vyhlašovány 3 týdny předem www.humusoft.cz/skoleni 39
Zdroje informací Knihy a publikace CZ/SK knihy a publikace využívající nebo popisující systém MATLAB/Simulink www.humusoft.cz/produkty/matlab/knihy kompletní seznam knih a publikací využívajících nebo popisujících systém MATLAB/Simulink www.mathworks.com/support/books Konference Technical Computing Prague příspěvky uživatelů o využití systému MATLAB/Simulink v praxi www.humusoft.cz/akce/matlab09 Diskusní skupiny Česká a slovenská skupina uživatelů MATLABu (CSMUG) www.humusoft.cz/produkty/matlab/csmug 40
Zkušební verze Plnohodnotná verze MATLAB Časově omezena na 30 dní Možnost libovolných toolboxů a blocksetů V případě zájmu nás kontaktujte info@humusoft.cz 41
Děkuji za pozornost 42