The Mathworks The technical computing portal...
Tanszék

A Fixed-Point Blockset használata

Fixed-Point Blockset For Use with SIMULINK

Modeling - Simulation - Implementation

Tartalom

1. Bevezető
2. Ismerkedés a Simulinkkel - az első programok
3. Ismerkedés a Fixed-Point Blocksettel - az első programok
4. Teszteredmények - duplapontos és kvantált számítások összehasonlítása
5. Kapcsolatok - DSP Blockset, Real-Time Workshop
6. Kitekintés - Quantized Filter Toolbox
7. Összefoglalás


1. Bevezető

A következő néhány fejezetben a MathWorks cég által készített Fixed-Point Blocksetről található egy rövid összefoglaló.
A Fixed-Point Blockset - amint nevében is benne van - egy olyan blokk-készlet, amelynek blokkjai valamilyen módon fixpontos számábrázolással kapcsolatos műveleteket tartalmaznak. A készlet elemei a MATLAB Simulink környezetben használhatók.
A MATLAB program - amely jól ismert a mérnöki gyakorlatban - egy olyan eszközkészlet, amely egyszerűen és hatékonyan alkalmazható a mérnöki számításokhoz, ezek megjelenítéséhez, algoritmusok fejlesztéshez stb.
A program alapjában véve egy egyszerű C-típusú programnyelvet kínál fel a fenti feladatok megoldására. Algoritmusok, blokkvázlatok teszteléséhez azonban a MathWorks cég kifejlesztett egy szimulációs környezetet is, a Simulinket. A Simulink szoftvercsomag használatával - blokkok segítségével - állíthatunk össze „igazi” blokkvázlatokat, ezeken szimuláció és analízis végezhető.
A Fixed-Point Blockset a Simulink programcsomaghoz készített különálló készlet, amelynek elemei tetszés szerint keverhetők más készletek elemeivel, ezáltal egészen komplex rendszerek is egyszerűen leírhatók illetve modellezhetők a Simulink segítségével.

A félév során megismerkedtem a Simulink program használatával, illetve a Fixed-Point Blockset legfontosabb tulajdonságaival. A felhasznált programok a következőek voltak:

Mivel a tanszéken a Simulink program ismerete nem jellemző, ezért először ennek használatát tekintem át, majd utána következnek a Fixed-Point Blocksettel kapcsolatos információk.

<vissza a tartalomhoz>



2. Ismerkedés a Simulinkkel - az első programok

A Simulink programot a MATLAB parancssorból a simulink szó begépelésével indíthatjuk. Ekkor egy Simulink Library Browser ablak jelenik meg a munkaterületen. Ez az ablak tartalmazza az elérhető Blocksetek listáját, illetve azok elemeit (hierarchikus fa-struktúra formájában).
Ahhoz, hogy dolgozni tudjunk, létre kell hozni egy új modellt. Ezt a fehér lap ikonra kattintva tehetjük meg, vagy pedig a Matlab window -> File menü -> New -> Modell menü segítségével.

Az új modell Simulation -> Preferences menüjében be kell állítani néhány paramétert ahhoz, hogy jól működjön a program.

Ezek beállítása után már létrehozhatjuk az egyik legegyszerűbb modellünket: Generátor és Oszcilloszkóp összekötve. A blokkok a Library Browser-ből választhatók ki és egyszerű Drag-and-Drop módszerrel helyezhetők bele a modellbe. Összekötésük szintén egérrel történik  A létrehozott modell az első ábrán látható (a modell letölthető: genscope.mdl)


1. ábra. Generátor - Oszcilloszkóp modell





Az egyes blokkok - illetve az összekötő vezetékek - tulajdonságai és cimkéi kettős kattintás segítségével vagy kijelöléssel és jobb egérgomb használatával állíthatók. Egy ilyen példa látható a 2. ábrán.


2. ábra. Signal generátor paraméterei

Amint látható, kifejezések is beírhatók az egyes ablakokba, sőt, a Workspace-ről vett változók segítségével függvényeket is definiálhatunk (pl. amplitúdó- vagy frekvenciamodulációt készíthetünk viszonylag egyszerűen). Némi inkonzisztencia: Signal Generator blokk alkalmazása esetén választhatunk frekvencia egységet, Sine Wave blokk használata esetén nem.
Az így elindított szimuláció kimeneti eredménye látható a 3.ábrán (a scope  jelét meg tudjuk jeleníteni kettős kattintás segítségével, címét automatikusan tudja örökölni a bekötő vezetéktől).


3. ábra. A szkóp kimenete

A szkóp kimenete is változtatható, kedvelt gomb lehet az autoscale. A tengelyekre jobb egérgombbal kattinthatunk, de mindkét tengelyen csak a függőleges tengely skáláját állíthatjuk. Az idő paraméter az ábra Properties menüjéből érhető csak el (meg lehet szokni...).

Számtalan bonyolultabb rendszer is felépíthető a Simulink segítségével. Mivel a blokkok igen ötletesen és használhatóan rendezettek, ezért további példák itt most nem kerülnek bemutatásra, lehet bátran kísérletezni. Áttekintésül álljon itt a Simulink könyvtár struktúrája és az egyes alkönyvtárakban található tipikus blokkok:

<vissza a tartalomhoz>


3. Ismerkedés a Fixed-Point Blocksettel - az első programok

A Fixed-Point Blockset használata teljesen megegyezik a Simulink alapkönyvtárának használatával, azzal a különbséggel, hogy más funkciókra használhatók a blokkok. A blockset tartalma - ha installálva van - elérhető egyrészt a már említett Simulink Library Browser-en keresztül, vagy közvetlenül a fixptlib parancs begépelésével. A készlet felépítése (sajnos, nincs átlátható künyvtárstruktúrában...): A program jellemzői: A Fixed-Point Blockset úgy használható Simulink környezetben, hogy a ki- és bemenetét a megfelelő „kapukkal” (gate) illesztjük a duplapontos aritmetikához. A legegyszerűbb modell tehát két ilyen kaput tartalmaz és ezáltal csak kvantál (4. ábra) (kvant.mdl).


4. ábra. Kvantáló modellje

Kimenete, amelyen rögtön megfigyelhetjük a szaturáció és túlcsordulás hatását is (5. ábra):
 
 
 

Normal sampling
Wrap
Saturate
5. ábra. Kimenetek

Ehhez hasonlóan lehet vizsgálni a bitszám hatását is, illetve a kvantálási zajt (6. ábra), a duplapontos és a kvantált érték különbségeként (kvnoise.mdl):


6. ábra. Kvantálási zaj



<vissza a tartalomhoz>


4. Teszteredmény - duplapontos és kvantált számítások összehasonlítása

A Fixed-Point Blockset használatával arra is lehetőségünk van, hogy - ugyanazt az algoritmust egymás mellett párhuzamosan megvalósítva - összehasonlítsuk a duplapontos és fixpontos számítások különbségét, bárhonnan belemérve a két algoritmusba.

<vissza a tartalomhoz>


5. Kapcsolatok - DSP Blockset, Real-Time Workshop

A bemutatott Fixed-Point Blockset lehetőségei nem merülnek ki a fent röviden ismertetett példákkal. A - régebben megjelent - DSP-Blockset segítségével szűrőket is tervezhetünk, fft-scope-pal vizsgálhatjuk a jelet és számtalan egyéb funkciót érhetünk el. Áttekintésül a DSP Blockset struktúrája: A real-time workshop segítségével pedig kész blokkvázlatokat futtathatunk valós időben célhardveren.

Mivel ezek a programok nem álltak rendelkezésemre, ezért jelenleg nem foglalkozom velük tovább részletesen.

<vissza a tartalomhoz>


6. Kitekintés - Quantized Filter Toolbox

A MathWorks cég a fent említett programokon kívül nem túl régen közzétette a Quantized Filter Toolbox készletét, amely a Fixed-Point Blockset mellett, azt kiegészítve támogatja a DSP-orientált fejlesztéseket. A toolbox a Signal Processing Toolbox-ra épít, fő profilja a véges szóhossz hatásának vizsgálata szűrők használatakor. A készlet végeredményben a Signal Processing Toolbox és a Fixed-Point Blockset közötti hídnak tekinthető, mert az előbbi eszközeivel tervez olyan fixpontos szűrőket, amelyek együtthatói az utóbbiban használhatók.
Jelenleg a program még nincs meg a tanszéken, ezért részletesebb információk még nem találhatók róla.

<vissza a tartalomhoz>


7. Összefoglalás

A fentiekben bemutatott programok összességében igen jól használhatók. Igaz, hogy egy részük jelenleg nem elérhető a tanszéken, de előbb-utóbb ezek a programok elérhetők és használhatók lesznek. A Fixed-Point Blockset elérhető és használható szimulációs eszköznek tűnik, eltekintve bizonyos inkonzisztenciáktól, amelyeket „meg lehet szokni”.

Véleményem szerint a blocksetet a szemléltető oktatásban, a digitális jelfeldolgozás általános jellemzőinek, illetve a DSP-k viselkedésének (véges szóhossz, túlcsordulás, szaturáció, mintavételi tétel) bemutatásában remekül lehetne használni.

<vissza a tartalomhoz>



Fejlesztés alatt...
Észrevételek, hozzászólások: markus@mit.bme.hu