• Aucun résultat trouvé

Digitális szűrők tervezési és megvalósítási lehetőségei DSP-n modern módszerekkel

The Possibilities of Planning and Realization of Digital Filters for DSP With Modern Methods

Serfőző Péter

Miskolci Egyetem, Automatizálási Tanszék

Abstract

The digital filtration is one of the most important field of DSP usage. Why do we use digital filters? Because the digital filtration has advantages and disadvantages, and it is better than the analogue filter. The disadvantage of using digital filters can be the planning and developping time. The developping can be so difficult. The digital filter developping has three methods which differ in the way as it is try to solve the problem. The first way the mathematical. We can develop digital filters with the help of MATLAB. The MATLAB is a mathematical software which has a toolbox for digital filter planning. The second way is the programmers way. We can use ANSI C based development tools. The third way is the engineers way. We can use visual application builder software for DSP developping. We have to connect only functional block components together with a point-and-click methods.

Key words: digital filters, DSP development tools

1.1. Bevezetés, a digitális szűrők előnyei és hátrányai

A DSP egyik legfontosabb felhasználási területe a digitális szűrés. A szűrést általában két alapvető esetben használjuk: jelek szétválasztására és helyreállítására. Szétválasztásra akkor van szükség, ha a hasznos jel nemkívánatos jelekkel (intermoduláció, zaj) vagy más hasznos, de az adott feladatban nem szükséges jelekkel együtt van jelen. (Például el kell különíteni a magzat szívhangjait az anya légzési- és szívhangjaitól). A helyreállítás akkor lehet követelmény, ha a jelünk sérült, torzult. (Például egy gyengébb minőségű készülékkel rögzített hangfelvétel vagy egy nem megfelelően fókuszált kamerával készített kép.) A szűrő lényegében egy olyan hálózat, amely a bemenőjel hullámalakját, frekvencia- és/vagy fázismenetét az adott feladatnak megfelelő módon megváltoztatja. A digitális szűrő egy elsőrendű vagy másodrendű diszkrét hálózat átviteli függvényét a megfelelő algoritmus segítségével egy adott hardver eszközre írt szoftverrel valósítja meg. Ha a kimenőjel állandó késleltetéssel folyamatosan követi a bemenőjelet, akkor real-time feldolgozásról beszélünk

4. ábra

Digitális szűrő blokkvázlata

A digitális szűrők előnyei:

Tökéletesen lineáris fázismenetis megvalósítható.

Nem érzékenyek a környezeti változásokra.

Adaptív szűrési algoritmusok is megvalósíthatók.

Több bemenőjelet is szűrhetünk a hardver sokszorozása nélkül.

A jelet tárolhatjuk további felhasználához.

Az analóg szűrőknél sokkal nagyobb pontosság érhető el.

Extrém alacsony frekvencián is használhatók.

A digitális szűrők használatának hátrányai a sebességhatár, a véges szóhosszból adódó problémák (pontosság) és a tervezési idő lehetnek.

1.2. A digitális szűrők típusai

A digitális szűrők két típusra oszthatók: véges impulzusválaszú FIR (Finite Impulse Response) és végtelen impulzusválaszú IIR (Infinite Impulse Response) szűrőkre. A két típus kimenőjelét meghatározó konvolúciós összeg az alábbi összefüggésekkel adható meg:

;

karakterisztika használatával lényegesen kevesebb együtthatóval megvalósítható, mint FIR szűrővel. Alkalmazzunk FIR szűrőt minden olyan esetben, ha viszonylag kevés együtthatóval megvalósítható vagy ha a fázistorzítás nem megengedett. A FIR szűrők használatát indokolja az is, hogy az újabb fejlesztésű DSP processzorok architektúráját és utasításkészletét elsősorban a FIR szűrők minél könnyebb megvalósításához illesztették.

1.3. A digitális szűrők tervezésének menete

Miután eldöntöttük, hogy az adott feladatban FIR vagy IIR szűrőt fogunk-e használni, a konkrét tervezés során ugyanazokat a lépéseket kell végigjárnunk.

Meghatározzuk a szűrővel kapcsolatos követelményeket.

Hardver- vagy szoftver megvalósítás.

5. ábra

Digitális szűrő készítés blokkvázlata

2. Digitális szűrő megvalósítás különböző módszerekkel

Alapvetően háromféle fejlesztési módszerről lesz szó. A háromféle módszer háromféle megközelítést jelent. Az első a matematikai, a második a programozói és a harmadik a mérnöki.

2.1. Matematikai megvalósítás

A MATLAB mátrixorientált algebrai programcsomag számos szűrőtervező segédprogramot (függvényt) tartalmaz, ezek felhasználásával, vagy újak írásával bármilyen digitális szűrő méretezése megoldható. Az adott szűrő realizálása valamilyen PC-n futtatott magasabb szintű programnyelven megírt algoritmussal (szimuláció), vagy DSP processzorral (real-time) történik. Ez a probléma matematikai jellegű megoldása. Előnye, hogy a PC-n kívül nem szükséges más eszköz hozzá, a fejlesztési stádium után a már kész és hibátlan programot futtathatjuk DSP-n is a megfelelő Matlab-DSP interfész segítségével.

2.2. Magas szintű programnyelvek 2.2.1. CodeComposerStudio (CCS)

A CCS a Texas Instrument (TI) saját DSP fejlesztő környezete. A fejlesztőeszköz nyelve C.

Ez egy kényelmes fejlesztő környezet, ahol megírhatjuk a futtani kívánt programot C nyelven és a fejlesztő eszköz fordítja le a DSP saját assemblerére. Ez már real-time program lesz. A CCS számos előre megírt függvényeket tartalmazó header fájlt bocsájt a rendelkezésünkre, hogy az alap algoritmusok megírásának a terhét levegye a vállunkról, de a C programnyelvű környezet még számos más előnnyel is rendelkezik. Mindemellett a CCS nem csupán egy fordítóprogram, melynek sagítségével a különböző assemblerek magtanulása nélkül írhatunk programot a kiválasztott TI DSP-re.

6. ábra

Code Composer Studio

Az assembly nyelven írott programok előnye, hogy az utasítások sorrendjét mi magunk állítjuk össze, így a program futtatási szempontjait szem előtt tartva mindig a legoptimálisabb megoldást válsztjuk ki. Ebben a magas szintű DSP fejlesztő eszközben a különböző kényelmi funkciók megtaláljuk a programunk optimális fordításához is a segítséget. A programunk DSP-n történő futtatása alatt figyelemmel kísérhetjük a DSP erőforrásait (kernel, memória, párhuzamosan feldolgozazás alatt álló utasítások száma, stb.), így a nem megfelelő részeken változtatva tehetjük még hatékonyabbá, még gyorsabbá a programot. Így a CCS egy olyan magas szintű fejlesztő eszköz, mellyel bárki hatékonyan tud különböző DSP-ket programozni

anélkül, hogy mindig új assemblert kellene megtanulni, illetve a már megírt assembly programot kellene átírni az új eszköz assembly nyelvére.

4. Táblázat Kézi assembly vs gépi assembly Algorith

Codebook Search CELP based

voice coders 977 3,26 961 3,20 100%

Vector Max 40 element vector

Search algorithms

61 0,20 59 0,20 100%

All-Zero FIR Filter 40 samples 10 coefficients

185 3,95 1318 4,39 90%

IIR Filter 16 coefficients

Filter 43 0,14 38 0,13 100%

2.2.2. Visual Apllication Builder (VAB)

A harmadik eszköz egy vizuális alkalmazás fejlesztő eszköz, a Visual Application Builder (VAB). Ennek előnye, hogy nem kell egyetlen sort sem programoznunk. Egyszerű blokkok segítségével létrehozhatunk programokat, amit aztán a fejlesztő eszköz lefordít az adott DSP saját assemblerére. Az előnye a magas szintű programozási nyelvet használó fejlesztő környezettel szemben, hogy a CCS-nél programot írunk, tehát fel kell állítanunk egy absztrakt modellt a problémára, amit algoritmizálunk, és utána jön az implementáció. A VAB ezzel szemben egy vizuális fejlesztő környezet, ahol funkcionális blokkokat használunk, azokat kötjük össze egymással, és felparaméterezzük azokat a feladat kívánta módon. Így lényegében a programunk úgy fog kinézni, mint egy kapcsolási rajz, azzal a különbséggel, hogy a blokkok hierarchikusak, és a különböző hierarchia szintek közötti váltás csupán egy dupla kattintás a blokkra.

7. ábra

Visual Application Builder

Így a már meglévő funkcionális blokkok és az általunk létrehozott funkcionális blokkok építőelemként való felhasználásával egészen bonyolult programokat is írhatunk egészen egyszerűen anélkül, hogy meg kellene állnunk töprengeni egy gépelési hiba, vagy egy változó túlcsordulása okán fellépő hiba miatt. A fejlesztő rendszer használatához nem szükséges programnyelvet tanulni, a fejlesztő eszköz által legyártott assembly program mégis real-time program lesz. Csakúgy mint a CCS-nél, itt is lehetőségünk van az erőforrások figyelésére a minnél hatékonyabb program-optimalizálás érdekében.

Konklúzió

Mint láthattuk, a DSP programozás manapság már nem az assembly programozás megtanulását jelenti mint régen, hiszen a fejlesztésre szánt mérnökórák nem olcsók, így a minnél gyorsabb és minnél egyszerűbb fejlesztő eszközök felé haladunk. Így nem csak gyorsan és hatékonyan fejlesztünk, de új eszközre (új hardverre) való áttérés esetén sem kell elölről kezdenünk az egész fejlesztési eljárást.

Szakirodalomlom

[1] Gyimesi László: Digitális jelfeldolgozás, jegyzet, Széchenyi István Főiskola 1999 [2] Smith, Steven W.: The Scientist and Engineer’s Guide to Digital Signal Processing,

California Technical Publishig 1997.

[3] Ifeachor, C. - Jervis, B. W. : Digital Signal Processing. A Practical Approach., Addison Wesley, 1993.

[4] VAB For the TI DSK, Starter’s Guide, Hyperception 2000.

[5] Texas Instruments: Code Composer Studio - Digital Signal Processing Solutions, Texas Instruments 2001.