MATLAB & Simulink Návrh digitálních filtrů pro úpravu signálů a analýza obrazu
Jaroslav Jirkovský
[email protected] www.humusoft.cz
[email protected] www.mathworks.com
1
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Co je MATLAB • 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 3
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Tok informací a dat v MATLABu Vstupy
Řešení
Soubory/Data
Výstupy Dokumentace
Analýza dat a modelování Vývoj algoritmů
Programy
Návrh/Výrobek
Vývoj aplikací
Samostatné aplikace
Hardware
6
Automatizace procesu
HUMUSOFT s.r.o.
Vývojový cyklus - Tradiční Požadavky a specifikace Návrh Implementace Textová forma
Testy a Verifikace
- Nedovoluje pružné ladění a aktualizace
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
HUMUSOFT s.r.o.
Vývojový cyklus - Model Based Design Požadavky a specifikace Návrh
Modely Modely prostředí prostředí Modely Modely chování chování systému systému
Spustitelný model
Modely Modely prostředí prostředí Modely Modely fyzických fyzických komponent komponent
- Jednoznačné - Pouze “jedna pravda”
Algoritmy Algoritmy
Algoritmy Algoritmy
Testy a Verifikace
Simulace - Snižuje potřebu fyzických prototypů - Umožňuje systematickou “what–if” analýzu
8
Implementace
C, C, C++ C++
VHDL, VHDL, Verilog Verilog
MCU MCU DSP DSP
FPGA FPGA ASIC ASIC
Automatické generování kódu - Redukce času a úsilí
Hardware-in-the-Loop
- Minimalizace chyb při programování
Processor-in-the-Loop
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
System objekty • Přináší stream processing do MATLABu
Dávkové Stream zpracování zpracování
• 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 12
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Návrh a simulace phased array systémů • 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. 16
• Phased Array System Toolbox
HUMUSOFT s.r.o.
Generování kódu pro cílové platformy • 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 17
HUMUSOFT s.r.o.
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í • • • • 18
Infineon C166, ST10 Freescale MPC5xx TI2000, TI55xx, TIC6000 Microchip PIC24, PIC30, PIC32, PIC33 HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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 • 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 20
HUMUSOFT s.r.o.
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 FixedPoint 21
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Zpracování obrazu a videa • Reprezentace obrazu a videa v MATLABu – snímek • • • •
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)
– video: • 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
HUMUSOFT s.r.o.
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 • Stream-based zpracování obrazu v MATLABu – algoritmy pro System objekty – založeno na OOP MATLABu – Computer Vision System Toolbox 24
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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 MATLAB Compiler
– Vytvoření softwarové komponenty • doplněk pro Excel • třída v jazyce Java • komponenta .NET nebo COM
MATLAB Builder EX
MATLAB Builder JA
MATLAB Builder NE
– MATLAB Compiler – MATLAB Builder EX, JA, NE .exe
26
.dll .lib
Java
HUMUSOFT s.r.o.
Samostatně spustitelné aplikace
33 Toolboxy
MATLAB Desktop
11
Poč Počítač tač koncové koncového uživatele
MATLAB Compiler
22
.exe
27
HUMUSOFT s.r.o.
Zpracování obrazu a videa v Simulinku • Začlenění do vývojového cyklu ModelBased 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
HUMUSOFT s.r.o.
Přehled nástrojů
29
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
Další produkty HUMUSOFT
34
HUMUSOFT s.r.o.
HUMUSOFT MF 624 a AD 622 • AD 622 – levná měřicí karta pro PC • 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ů
• MF 624 – 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 35
HUMUSOFT s.r.o.
Humusoft HeavyHorse • 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 36
– COMSOL Multiphysics HUMUSOFT s.r.o.
COMSOL Multiphysics • Ř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 37
– Earth Science Module
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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ě • www.humusoft.cz/wwwseminare
• Workshopy – 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 • www.humusoft.cz/workshop/
• Školení – 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
HUMUSOFT s.r.o.
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
HUMUSOFT s.r.o.
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 –
[email protected]
41
HUMUSOFT s.r.o.
Děkuji za pozornost
42
HUMUSOFT s.r.o.