Miskolci Egyetem. Gépészmérnöki és Informatikai Kar. Elektrotechnikai- Elektronikai Intézeti Tanszék. Villamosmérnöki szak

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Miskolci Egyetem. Gépészmérnöki és Informatikai Kar. Elektrotechnikai- Elektronikai Intézeti Tanszék. Villamosmérnöki szak"

Átírás

1 Miskolci Egyetem Gépészmérnöki és Informatikai Kar Elektrotechnikai- Elektronikai Intézeti Tanszék Villamosmérnöki szak Elektronikai gyártás és tervezés szakirány Zenei hangok valós idejű számítógépes analízise Szakdolgozat Erdősy Dániel PCHLTK 2016.

2 Tartalomjegyzék Tartalomjegyzék Bevezetés Irodalomkutatás Hangfelismerő eljárások Néhány hangfelismerő módszer bemutatása Hangoló okos telefonra Autókorreláció YIN és MPM módszer Harmonikus szorzat spektrum Párhuzamosan kapcsolt fésű szűrők Cepstrum A hallás modellezése Összefoglaló táblázat Megvalósítás Hangszerek hangja Zenei hangok jelölése Frekvencia és időtartomány Mintavételezés Programterv Tesztprogramok Az alap tesztprogram Felépítése Hangjegyek kikeresése Az alap tesztprogram teszteredményei Nullátmenet módszere A nullátmenet módszer programkódja

3 A nullátmenet módszer teszteredményei Autókorreláció módszere Az autókorreláció módszer programkódja Az autókorreláció módszer teszteredményei Harmonikus szorzat spektrum A HPS módszer programkódja A HPS módszer teszteredményei Párhuzamosan kapcsolt fésű szűrők Cepstrum A cepstrum módszer programkódja A Cepstrum módszer eredményei Hallás modellezése Összefoglaló táblázat a teszteredmények alapján Futás idő csökkentése A megvalósítás további lehetőségei Összefoglalás Summary Ábrajegyzék Irodalomjegyzék:

4 1. Bevezetés Zenét számtalan helyen, módon és forrásból hallgathat az ember. Úton hazafelé, szabadidejében, koncerten, interneten, kedvenc fülhallgatóján, vagy több 100 W teljesítménnyel is Hifi berendezéseken. Azon emberek, akik nem zenélnek, nyilván nem azzal foglalkoznak, hogy milyen hangok szólnak éppen, de azt bizonyára hallják ők is, hogy milyen hangszer, milyen dallamot játszik, az énekes mit énekel, férfi, vagy női vokál vane. A zenész ember azzal is foglalkozik, hogy az adott dallam milyen hangokból épül fel. Az abszolút hallású emberek ezt pontosan meg tudják mondani, a relatív hallásúak csak a két hang közötti hangtávolságot (hangközt). A szakdolgozat témám egy olyan szoftver fejlesztése, amely hangszertől (hangszíntől) függetlenül képes megállapítani egy komplex zenei hangzásból, hogy éppen milyen hangok szólnak. A számítógép számára a zenei hang csak, mint analóg jel van jelen, illetve azt digitális formában tárolja, de a zenei hangok ismerete nélkül. A legismertebb eljárás a zenei hangok tárolására a midi formátum, amely számítógépek, különböző hangszerek és vezérlő eszközök között teremt kapcsolatot a zenei hangok felhasználásával. Bár rengeteg zeneszám elérhető midi formátumban, melyben tételesen le van írva, hogy mikor, melyik hang szól, ezzel a módszerrel aligha lehet látványos eredményeket elérni a témát illetően. Szükség van valamilyen szoftverre, amely a számítógép analóg bemenetére kerülő jelből megállapítja, hogy éppen milyen zenei hang szól és ezt valamilyen könnyen áttekinthető formátumban megjeleníti. A későbbiekben tervezem majd egy olyan mátrixkijelző építését, amelyen éppen a 7 zenei oktáv 84 félhangjának megfelelő egy-egy pixelt tartalmaz, így a kettő kombinálásával akár egy új szórakoztató elektronikai eszköz is létrejöhet. Az első két fejezetben összegyűjtöm és megvizsgálom a különböző hangfelismerő módszereket. Különböző szempontok alapján összehasonlítom az algoritmusokat. A további fejezetekben a különböző algoritmusok tesztelésére megírt programok kódjai, illetve eredményei alapján az összehasonlítást folytatom Irodalomkutatás A zenék ily módon történő analízise igen nagy segítsége lehet zenészeknek. Főleg, ha saját dalukat vagy a lejátszani kívánt dalt akarják kotta formájában előállítani. Számos szoftver található az interneten az ingyenestől a komoly gyártók termékeivel bezárólag. Ezen szoftverek képesek a lejátszott zene dallamát, ütemét, ritmusát átalakítani midi, 4

5 vagy egyéb hasonló formátumba. Ezeket a fájlokat könnyűszerrel használhatja az illető kottaszerkesztő programokban. Egy weboldalon [1] számtalan audio-midi konvertáló programot találunk. Fel van tüntetve a listában a szoftverek mellett a gyártó, illetve, hogy poli-, vagy monofónikus 1 hangok felismerésére képes. A polifónia nagyon fontos számomra, hiszen egy zenében elkerülhetetlen a sokféle hangszer és az eltérő, összhangzatos dallamok megléte. Korábbi tapasztalataim alapján a komolyabb, drágább programok jobb eredményt értek el, de azok sem tökéletesek. Kipróbáltam többféle ingyenes, valamint fizetős programot is, de arra a célra, amire nekem kellene, nem igazán felelnek meg. A legtöbb esetben a program egy rögzített fájlt olvas be és dolgoz fel, tehát nem valósidejűek. Illetve még a komoly programnak is gondja akadt az olyan összetett hangokkal, amelyeknél nem csak, hogy polifónia van, de több hangszer is egyszerre szólal meg. Igazán komoly eredményeket egy-egy hangszer hangjának rögzítésekor érhetünk el, pl. felvesszük a basszusgitár hangját, nem kell lekottáznunk, mivel ezt elvégzi helyettünk a program. Számomra annyi a könnyebbség, hogy amíg ezek a programok kottát, illetve midi fájlt akarnak előállítani, amelynél igen fontos a pontosság, az előjegyzés, a ritmus és a stílus, nekem a valós idejű működés miatt bőven elég a zenei hang felismerése, viszont azt minél nagyobb pontossággal. 1. ábra Hangfelismerés lehetséges eredménye [2] 1 Polifónia: többszólamú zene, zenei szerkesztésmód monofónia: egyszólamú zene, zenei szerkesztésmód 5

6 Ez a téma természetesen sok mindenkit érdekel, azonban a legtöbben más és más alkalmazásra szeretnék használni a hangfelismerést. A legegyszerűbb alkalmazása a hangoló készítés (hangszerekhez), mivel itt nem követelmény a polifónia megléte, a minél kisebb késés (persze jó, ha nincs késés), egyedül a pontosság, ami feltétlenül szükséges. A következő lépcsőfok a hangszerek hangjának felismerése, amely egyetlen hangszer hangját képes felismerni, annak dallamát, ritmusát megfejteni. Ennek manapság egyik egészen olcsó hardveres megvalósítását meg lehet vásárolni, amely segítségével a gitárunkat midi hangszerré alakíthatjuk. Ezután következhetne talán az én témám, amely esetében a polifónia alapvető, a pontosság és a valós idejű elemzés is nagyon fontos, viszont a dallamot és a ritmust nem kell felismerni. Ennél magasabb szinten az olyan komplex programok vannak, amelyek polifonikus hangok ritmusát, dallamát, esetlegesen a zenei karakterisztikáját is képesek felismerni. Ezeken felül sokan foglalkoznak beszédfelismeréssel, valamint szövegfelismeréssel, hanglejtéselemzéssel. Egy doktori értekezés [3] például azzal foglalkozik, hogy egy olyan alkalmazást készít, amely segítheti az oktatásban a zenészek, énekesek munkáját. A játszott, énekelt hangon felül a különböző technikák felismerését is lehetővé teszi, pl. az énekes vibrátóját. Ezen dokumentum a későbbiekben is jó kiindulási alapként szolgál számomra, mivel az alapvető hangfelismerő algoritmusokat is elemzi. Egy másik alkalmazásokat fejlesztő cég [4] pedig olyan hangfelismerő szoftvert fejlesztett ki, amely az emberi hallás lemodellezésével egészen jó eredményeket képes elérni. A Passaggio nevű program a bemutatók alapján jó közelítéssel végzi el azt, ami nekem is a célom. Sajnos a program nem ingyenes, forráskódja nem elérhető, valamint a használt algoritmusról sem lehet komolyabb anyagot találni. A cég honlapján ugyan elérhetőek a szoftver hátteréről információk, ez a dokumentum prezentáció formában nem sok információtartalommal bír. Többen a hangfelismerés lehetőségeiről írtak összefoglaló dokumentumokat, amelyek számomra is forrást adnak a különböző eljárások, algoritmusok összehasonlításában. Természetesen a Wikipédia is tartalmaz egy ilyen összefoglaló cikket. [5] A további irodalomkutatási eredményeket a különböző eljárások leírásához, illetve összehasonlításához is használom, ezért azok a következő fejezetben találhatóak meg. 6

7 2. Hangfelismerő eljárások A különböző hangfelismerő eljárásokat 3 fő csoportba lehet osztani: időtartománybeli, frekvenciatartománybeli, valamint az emberi hallás modellezésén alapuló módszerek. A legpontosabb algoritmusok az emberi hallás modellezésével jönnek létre, azonban ezek leképezése, programozása igen bonyolult. A frekvenciatartománybeli módszerek hamar látványos eredményt mutatnak, viszont számításigényesek, emiatt lassúak, vagy éppen zavarra érzékenyek lehetnek. Az időtartománybeli vizsgálatok legtöbbje polifonikus hangok esetén nem használható. Sokszor az alkalmazási igényből előre meg lehet állapítani, hogy milyen módszer lenne a leghasznosabb. Egy egyszerű hangolóhoz teljesen felesleges a hallás modellezése, viszont összetett hangok elemzéséhez kevés lehet az időtartománybeli vizsgálat Néhány hangfelismerő módszer bemutatása Egy, az interneten közzétett kutatómunka [6] a leggyakrabban említett módszereket mutatja be. Az idő alapú módszerek az ismétlődő mintákon alapulnak, mivel a zenei hangok periodikusak. Az első módszer a nullátmenet módszere, amely azt számolja, hogy egy időtartamon belül a jel hányszor megy át a nullán. A módszer egyszerű, kis számításigényű, viszont eléggé pontatlan, főleg, ha zajos, illetve harmonikus hangokról van szó. Egyszerű periodikus jelek frekvencia meghatározására tökéletes. A következő módszer az autókorreláció, amely az eredeti, illetve az eltolt jel hasonlóságait vizsgálja. Leginkább a közép és mély frekvenciákon érhető el vele nagyobb pontosság, valamint a beszédfelismerésben van nagy szerepe, ahol a hangmagasság korlátozva van (a továbbiakban még lesz szó róla). A legnagyobb valószínűség módszere nem igazán optimális az időtartománybeli hangfelismeréshez. A módszer tényleg csak valószínűségszámítás, tehát ezzel csak becsülni lehet a hang magasságát. A hangok magasságát szűrőkkel is lehet vizsgálni, az egyik ilyen szűrő a keskeny sáváteresztő szűrő. A szűrt és az eredeti jel is a felismerő egységhez kerül, azonban a kimeneti jel vissza van csatolva a szűrőhöz, így el lehet érni azt, hogy a szűrés a bemeneti jelhez konvergáljon. Egy másik módszer az optimális fésű szűrők alkalmazása, amelyről 7

8 a későbbiekben még lesz szó. A cikk egy harmadik szűrési módszert is leír, amely hasonló a sáváteresztő szűrőhöz, viszont annyiban különbözik, hogy itt az eredeti jelből kivonjuk a szűrt jelet, ennek az eredményét, mint hibát visszavezetjük a szűrőbe, és az így kapott értékeket Fourier transzformáljuk. Ezzel a módszerrel számottevő javulás nem érhető el az időtartománybeli módszerekhez képest. A cikk további részében a frekvenciatartománybeli módszerekről van szó. Foglalkozik a harmonikus szorzat spektrummal, a cepstrummal, valamint a legnagyobb valószínűség módszerével. Az első kettőről még szó lesz a későbbiekben. A legnagyobb valószínűség módszere az időtartománynál bemutatott módszerrel egyezik, viszont itt jobb eredmények érhetők el vele Hangoló okos telefonra Egy népszerű fórumon (Stack Overflow) is foglalkoznak a zenei hangfelismerés problémájával a felhasználók [7]. Bár a szakmai pontossága vitatható az oldalnak, mivel a leírt gondolatokat néhol nem támasztják alá szakirodalmi háttérrel. Ennek ellenére az ott leírtak egészen jól összefoglalják a lehetséges módszereket, azoknak néhány előnyét, hátrányát. Az itt említett téma annyiban különbözik, hogy alacsonyabb teljesítményű processzorral, memóriával rendelkező eszközhöz való hangolóként használható alkalmazást tárgyal. Az első lehetséges megvalósítás az FFT transzformáció, valamint az elkészített transzformáltban az első számottevő maximum megtalálása. Ezzel a módszerrel az a probléma, hogy ha a hangnak hiányzik az alap harmonikusa, vagy pedig a felharmonikusok nagyobb amplitúdójúak az alap harmonikusnál, akkor a módszer nem működik megfelelően. Ezen problémák megoldása számomra is fontos. A következő módszer az autókorreláció, ami a felhasználó szerint pontosabban képes megtalálni a valós alap harmonikust, azonban a nem pontos hangolással már nehezen boldogul (sok hangszernek nem tökéletes a hangolása, ám ettől lesz olyan a hangja, amilyen). A következő bejegyzés az előzőekben már említett nulla-átmenet módszert említi. Ehhez viszonylag kevés adat szükséges, a számítási igény is kicsi, azonban a pontosság nem éri el a kívánt követelményeket. Minél összetettebb az elemezni kívánt hang, az 8

9 eredmény annál kevésbé lesz pontos, emiatt ez a módszer számomra nem jöhet szóba. A továbbiakban még néhány lehetőséget vázolnak fel a hozzászólók, azonban a legtöbb esetében nem polifonikus hangról van szó, amely nálam alapkövetelmény Autókorreláció Egy Gareth Middleton által létrehozott oldal [8], az előző cikkhez hasonlóan a hangfelismerés különböző algoritmusairól szól. A legelső algoritmus az autókorreláció. Az autókorreláció azon a tényen alapszik, hogy egy periodikus jelben egy periódus hasonlít a másikra. 2. ábra A jel eltolása [8] 3. ábra Autókorreláció eredménye [8] R(s) = n= x n x n+s (1) A hangmagasság felismeréséhez az algoritmus ablakozás segítségével kivesz egy részletet a jelből, az érzékelni kívánt maximális hosszúság kétszeresével (így a leghoszszabb hullámhosszú hangok is még érzékelhetőek). A példában 1200 mintát vesznek Hz-es mintavételezési frekvenciával. A jelet az alap harmonikus periódushoz egy kicsit eltolják (2. ábra), ennek a két jelnek a pontonként számított különbségén végzik el az autókorrelációt (1). Ezt a módszert úgy is alkalmazhatjuk, hogy az eltolt és az eredeti jel különbségét négyzetre emeljük, és úgy összegezzük (négyzetes eltérés függvény). Ha az eltolt értékek közelítik az alaphangot, akkor a két jel különbsége egyre csökken, emiatt közel nulla lesz a korreláció értéke az alap harmonikus közelében (3. ábra). Ezt az értéket már könnyű felismerni úgy, hogy az autókorreláció eredményét deriválja az algoritmus, majd azt a 9

10 pontot keresi a jelben, ahol előjelet vált (szélsőérték keresés). Amikor pozitívból negatívba megy át a derivált jel, ott minimum pontja van az eredeti függvénynek, ebből a minimum pontból pedig már könnyű megállapítani a frekvenciát. A gyors autókorreláció nagy számítási igényű. Az előzőekben használt módszert minden egyes ablakon el kell végezni. A normál autókorreláció segítségével a jel eltolási alapot ig határozzuk meg. Ez kb. 50 és Hz közötti jelekhez elegendő, viszont ez ablakonként 600 számítást jelent, ami rengeteg. A gyors autókorreláció segítségével akár 70 %-kal is növelhető a sebesség. A módszer nagyjából arról szó, hogy minden egyes ablakra nem számolja ki a teljes eltolási tartományt, hanem az előző ablak eredményéből indul ki. Amennyiben így nem hoz eredményt a számítás, természetesen más eltolással is próbálkozik az algoritmus, így a 600 eltolási alap helyett már csak 200 van. A számításokat tovább lehet csökkenteni, ha az eltolásnak csak néhány értékét számoljuk ki. Az autókorrelációs algoritmusok bár érzéketlenek a zajra, a mintavételezési frekvenciára már annál inkább. Miután a minták eltolásából direkt módon számolja ki az alap harmonikust, ha alacsonyabb mintavételi frekvenciát használunk, a pontosság csökken. Eléggé számításigényes a módszer, bár elméletileg elérhető vele közel valós idejű működés YIN és MPM módszer A YIN módszer az autókorreláció hibáit küszöböli ki különböző matematikai módszerekkel. Ugyan az autókorreláció számos hibáját kijavította, ez plusz számításokkal jár, amely a feldolgozási időt növeli. Megvalósítása komoly matematikai hátteret kíván, amely miatt nehéz a programozása [9]. Az MPM algoritmus az előzőhöz hasonlóan az autókorreláción alapszik, vagyis annak egy különleges ablakozott megvalósításán. Az oktávok felismerése a cepstrum módszer (a későbbiekben még lesz szó róla) egy módosításával jön létre Harmonikus szorzat spektrum A következő módszer, melyet említ a [8] szakirodalom, a harmonikus szorzat spektrum (Harmonic Product Spectrum HPS). Az elméleti alapja a módszernek, hogy ha a bemeneti jel egy hangszer hangja, akkor annak spektruma helyi maximumok (csúcsok) sorozatából áll elő, amely tartalmazza az alap harmonikust, illetve annak egész számú többszöröseit, a felharmonikusokat. Ehhez a jelet FFT segítségével át kell konvertálni a 10

11 frekvenciatartományba. Néhányszor összetömörítve a spektrumot 2 és összehasonlítva az eredetivel, az alap harmonikusok egy vonalba rendeződnek. Y(ω) = R r=1 X(ωr), (2) ahol R a harmóniák számát jelöli, a végeredmény pedig egy periodikus korrelációs tömb (Y(ω)). Ennek a tömbnek kell a maximumát keresni az alap harmonikusok tartományában (ωi) Y = max Y(ωi) (3) ωi Az eredeti spektrum első csúcsa a felére tömörített spektrum második csúcsával egybevágó, a harmadára tömörített spektrum 3. csúcsával egybevágó és így tovább. Ezek után, ha a különböző spektrumokat összeszorozzuk, egyetlen tiszta csúcsot fogunk kapni az alap harmonikusnál (4. ábra). 4. ábra Harmonikus szorzat spektrum (HPS) működése [6] Az algoritmus először kisebb részekre osztja fel a bemeneti jelet, Hanning-ablak segítségével. Minden ablak a rövid idejű FFT (STFT) segítségével kerül át a frekvencia 2 alul mintavételezve 11

12 tartományba. Ha ez megtörtént, már el lehet végezni a harmonikus szorzást, amely 2 lépésből áll: alul mintavételezés és szorzás. Alul mintavételezéskor a jelet először a felére, majd a harmadára tömörítjük össze, majd pedig a 3 spektrumot összeszorozva megkapjuk az alap harmonikust. A módszer előnye, hogy viszonylag kevés számítást igényel, a különböző zajokra kevéssé érzékeny, könnyen igazítható a különböző bemeneti jelekhez. Változtatni tudjuk az összeszorzott spektrumok számát (nem csak 3 lehet), valamint a szorzás helyett összeadást is használhatunk. A hibája, hogy a mélyebb hangok kevésbé pontosan követhetők vele, valamint az elérhető pontosság és a felbontás erősen függ a használt FFT jellemzőjétől. Ha gyors és rövid idejű FFT-t használunk, kevesebb frekvenciát tudunk felismerni. Ennek elkerülésére hosszabb idejű FFT-t kell használni, amelyet viszont már több időbe telik kiszámolni. A módszer hibája, hogy gyakran eltéveszti az oktávot, ezt úgy lehet kijavítani, hogy ha a második csúcs nagyobb, mint a feltételezett alap harmonikus, akkor az alacsonyabb oktávban lévő hangot kell választani. Alacsony (50 Hz alatti) hangokhoz nem megfelelő Párhuzamosan kapcsolt fésű szűrők A [10] szakirodalom részletesebben tárgyalja a hangfelismerés azon módszerét, melynek során párhuzamosan kapcsolt fésű szűrők null-átmenetét vizsgálva mérhető a zenei hang. Ezzel a módszerrel egészen jó pontossággal lehet megmondani a zenei hangjegyet. Azon az elven alapszik, hogy az eltérő hangolású szűrők, miután egymás melletti frekvenciára vannak állítva, ugyan nem egymástól függetlenül érzékelik a hangokat, viszont mindegyik hang annál a szűrőnél lesz a legkisebb kimeneti amplitúdójú, amelyik az adott zenei hanghoz tartozik. Fontos megjegyezni, hogy ezek a szűrők párhuzamosan vannak kapcsolva, hiszen így, ha egy szűrő egy hangot éppen csillapít, miután nem hozzá tartozik, soros kapcsolás esetében nem lenne lehetősége a többi szűrőnek érzékelni azt. x(n) H3,1(Z) H3,2(Z) H3,3(Z) H3,11(Z) H3,12(Z) C C# D A# B y3,1(n) y3,1(n) y3,1(n) y3,1(n) y3,1(n) 5. ábra A 3. oktáv 12 fésű szűrője [10] 12

13 A cikk szerint a legtöbb hangfelismerő módszer a Fourier transzformáción alapszik, valamint adaptív szűrést használ, amelyet így a hangszer típusa is befolyásol. Ezzel szemben a fésű szűrők alkalmazásával a hangszertől függetlenül lehet a hangot felismerni. A módszer problémája, hogy ha a hangok a természetes hangolástól eltérnek, akkor az eredmények drasztikusan eltérnek a kívánttól. Ezen probléma elkerülésére a cikk még további 2 megoldásról ír. Az egyik módszer, hogy a kaszkád módon összekapcsolt szűrők adaptív szűrők. A másik módszer 12 fésű szűrőt használ, amelyek párhuzamosan vannak kapcsolva, viszont az első lehetőséggel ellentétben egyenként történik az értékek felbontása. Ezzel a felbontással a kisebb frekvencia komponenseket is fel lehet ismerni, szemben az első módszerrel, ahol, ha csak kis frekvencia komponensek voltak, nem hozott eredményt a szűrés. A módszer hibája, hogy számítás igényes. A továbbiakban a cikk részletesebben ismerteti a különböző módszereket. Az alapelv, hogy a szűrők 0 kimenetét érzékeljük egyetlen hangnál még helyes. Viszont, ha már 3 hang kerül a bemenetre, a szűrők kimenetén nem 0 jelenik meg. Emiatt javasolja a szerző a minimum pontok érzékelését. Ezen minimum pontokat annyiszor kell a szűrőkön átengedni, amíg el nem érjük a 0 kimenetet. Szimuláció alapján ezen megoldás jobb felismerési eredményeket ért el, mint a normál fésű szűrők párhuzamos kapcsolása Cepstrum A Cepstrum 3 egy matematikai műveleteken alapuló algoritmus. Röviden összefoglalva a jel becsült spektrumának, logaritmusának az inverz Fourier transzformáltja. A beszédfelismerésben, illetve a hangfelismerésben az úgynevezett Power Cepstrum 4 módszert használják ban B. P. Bogert írt róla először. Ő úgy definiálta, hogy a jelnek vesszük a Fourier transzformáltját, annak a négyzetét, majd a 10-es alapú logaritmusát és végül a logaritmus értékének az inverz Fourier transzformáltját (4). a jel cepstruma = F 1 {log( F{f(t)} 2 )} (4) 3 Az angol spectrum szó első négy betűje van megfordítva 4 Teljesítmény cepstrum 13

14 6. ábra Cepstrum lépései [11] Hangfelismeréshez is alkalmas, mivel a hangképzésből adódó összetett hangokat jól szétválasztja. Harmonikus hangokhoz elméleti szinten nagyon jól működik, azonban a sok matematikai művelet lelassítja a számítás sebességét. Megvalósítani ugyan nem annyira nehéz, miután kevés művelet szükséges hozzá (FFT 5, négyzetre emelés, logaritmus, IFFT 6 ), viszont sok adat esetében ezek a műveletek is lassúak lesznek. [12] 2.7. A hallás modellezése Léteznek úgynevezett a fül működésén alapuló módszerek is a zenei hangok felismerésére. Az észlelési hangfelismerő módszer Licklider a hangfelismerésre vonatkozó Duplex Theory-ján alapul [13]. Ez a megközelítés kiválóan modellezi az emberi hallás működését. Hibátlanul azonosítja egy összetett harmónia, vagy egy nem harmonikus inger hangmagasságát. Jó eredményeket ér el a zajos jelek esetén is. Ez a hallási modell kombinálja a csigás modellt egy tucat autókorrelátorral. Miután minden csatornára független autókorrelációt alkalmaz, a csatornák közötti fázisváltás sem befolyásolja. A csúcsértékeket keresi itt is a hang detektor. A leírtak alapján rendkívül jó eredményeket 5 Fast Fourier Transformation Gyors Fourier Transzformáció 6 Inverse Fast Fourier Transformation Inverz Gyors Fourier Transzformáció 14

15 ér el az emberi hallás modellezésén alapuló algoritmus, amelynek programszintű implementálása igen bonyolult feladat, főleg azért, mert bár el lehet vele érni a valós idejű működést, ehhez megfelelően optimalizálni kell a programot. 7. ábra A hallás modellezésen alapuló módszer vázlata [6] A fentebb említett módszereknél még jóval több létezik. Egyes eljárások ezeket az alap algoritmusokat ötvözik, vagy éppen az emberi hallás modelljét finomítják. Manapság a beszédfelismerés igen elterjedt funkció sok eszközben, programban, amelynek azonban alapja a hangfelismerés. 15

16 2.8. Összefoglaló táblázat A korábbi bekezdésekben tárgyalt hangfelismerő módszereket a következő táblázat (1. táblázat) foglalja össze. Az összehasonlítási szempontok: működési tartomány, megvalósítás, sebesség és pontosság). 1. táblázat A hangfelismerő eljárások összefoglaló táblázata Megnevezés Működési tartomány Megvalósítás Sebesség Pontosság Nullátmenet Egyszerű Gyors Egyszerű periodikus hanghoz jó Autókorreláció Közepes Közepes Egyszerű, zajmentes hangokhoz kiváló Maximum valószínűség YIN algoritmus Időtartomány Egyszerű Nehéz Közepes Lassabb, mint a normál autókor- Inkább csak becslést ad Nincs felső frekvenciahatár, viszont a polifonikus hangok reláció itt is gondot okoznak MPM algoritmus Nehéz Gyors Polifonikus hangokhoz nem jó Harmonikus szorzat spektrum Frekvencia tartomány Oktávtévesztés lehetséges Egyszerű Gyors Cepstrum Közepes Lassú Kiváló Maximum valószínűség Polifonikus hangokhoz Közepes Közepes már annyira nem jó 16

17 3. Megvalósítás Az irodalomkutatás elvégzése stabil elméleti alapja a gyakorlati megvalósításnak. A fejezetben előkészítem a tesztprogramok írását, kiegészítem az eddigi elméleti alapokat a zenei hangok néhány tulajdonságával, illetve jelölési rendszerével Hangszerek hangja Általános tényként megállapíthatjuk, hogy minden zene egész egyszerű zenei hangok sorozata. Ami megkülönbözteti őket, hogy mennyi és milyen magasságú hang szólal meg benne egyszerre, illetve, hogy mennyi ideig, tehát milyen ritmusban hallhatók. A valós hangszerek hangkeltésének alapja valamilyen módon történő rezgés előállítása. Például rézfúvós hangszereknél a zenész tüdöjéből kiáramló levegő a fúvóka és az ajkak segítségével kerül rezgésbe, egy gitár esetében viszont a húrok rezgése adja a hangot. Ezen rezgések hangja aztán rengeteget változik a hangszer alakjától, méretétől, anyagától, egyszóval minden hangszernek egyedi hangja van. Az emberi fül, illetve az agy olyan csodálatos képességekkel van megáldva, hogy ha még ugyanazt a hangot is szólaltatjuk meg két különböző hangszeren, mégis képesek vagyunk azok hangjának megkülönböztetésére. Egy adott hangszer hangja a felharmonikusairól lesz felismerhető, bár ezeket az emberi agy nem tudatosítja. Egy-egy hangszer hangját érdemes megfigyelni a spektrumának a vizsgálatával, mert például egy hegedű hangja rengeteg sok felharmonikust tartalmaz. 8. ábra Hegedű hangjának spektruma Ebből a szempontból jóval egyszerűbb egy orgona hangja, mivel az viszonylag kevesebb felharmonikussal, szinte tisztán szinuszos hangot bocsát ki magából (pl. a hegedűéhez képest). Nem valós hangszerek esetében az eredeti hangot csak utánozni lehet, illetve egyes egyszerűbb megoldásoknál valós hangszerek előre rögzített hangját játsszák 17

18 vissza, esetleg azt modulálva a szükséges frekvenciára (ez nem kifejezetten minőségi hangzást eredményez). Profi szintetizátorok, vagy számítógépes hangszerek esetében ma már olyan hibátlanul tudják visszaadni a kívánt hangzást, hogy azt gyakran már a hozzáértő zenészek sem tudják megkülönböztetni az eredeti hangtól. Ilyen esetben szoftveresen (modern szintetizátorok, számítógépek), vagy hardveresen (korábbi, analóg szintetizátorok) állítják elő az alap harmonikust és a szükséges felharmonikusokat. Az előállított jelet aztán erősítőkkel, szűrőkkel és egyéb áramkörökkel még tovább finomítják, modulálják, majd a kimeneten egy hangszóró segítségével megszólaltatják. Ezeket végig gondolva, ha egy hangnak megvizsgáljuk a spektrumát, kideríthetjük belőle a hangszer típusát 7, valamint a megszólaló zenei hangot 8. Az utóbbi elmélet szépen működne, ha nem lenne annyi felharmonikus, mivel, ha egy hangnak lejátsszuk a valamekkora oktávval magasabban lévő párját, már nehéz eldönteni, hogy az még az első alaphang felharmonikusa, vagy pedig egy másik alaphang. Tapasztalataim alapján ez a megkülönböztethetőség csökken, minél közelebb vannak egymáshoz a hangok (pl. 1 oktáv) Zenei hangok jelölése A zenei hangok jelölésére többféle módszer létezik. Grafikus megjelenítési formája az ötvonalas kotta, számomra viszont felesleges ezzel foglalkozni, hiszen a végső megjelenítési forma teljesen más lesz. Szöveges leírása a hangoknak a szolmizáció és az ABCs hangok használata. A szolmizáció egy relatív leírása a hangoknak, tehát függ attól, hogy milyen hangnemben vagyunk. Ez viszont csak tovább bonyolítaná a programot, viszont többlet információval nem szolgál. A legmegfelelőbb jelölési mód az ABC-s hangok használata, amely a szolmizációval ellentétben nincs hangnemhez kötve. Ez teljes mértékben nem igaz, mivel a félhangok nevében megkülönböztetünk b -s, illetve # -es hangokat. Valamint fontos megjegyezni, hogy amíg a magyar zenekultúrában C, D, E, F, 7 Igen nehéz feladat és hatalmas adatbázist igényel a különböző hangszerek hangszínének spektrumáról 8 Hiszen az alap harmonikus határozza meg, hogy milyen hangnak halljuk 18

19 G, Á, H alaphangok szerepelnek, más területeken a C, D, E, F, G, A, B elnevezést használják (amely, ha A-tól kezdjük, tényleg az ABC betűi sorban). A magyar elnevezés esetében a H hang leszállítva egy fél hanggal lesz a bé, amíg ez más területeken a betű mellé tett b -vel jelölendő (pl. Bb). A fél hanggal történő módosításban, csak névbeli különbség van. Miután számomra az sem nyújt többlet információt, hogy b -s, vagy # -es a hangnem, a félhangok jelölését minden esetben # -el fogom jelölni. Egy ötvonalas kotta esetében, a megfelelő kulcs a sor elején történő elhelyezésével, illetve egyéb oktávmódosító jelölésekkel egyértelművé válik a lejátszandó hang magassága. Erre a legmegfelelőbb szöveges jelölés a hang mellé írt oktáv száma. A legalacsonyabb oktávba tartozó hangok 1-s jelölést kapnak, a legmagasabbak, pedig 7-es jelölést (lehetne 0-tól 6-ig is jelölni). Így az én esetemben a legalacsonyabb oktávon belüli kromatikus 9 skála: C1, C#1, D1, D#1, E1, F1, F#1, G1, G#1, A1, A#1, B1, C2 stb Frekvencia és időtartomány Különböző jelek analíziséhez ritkán lehet használni az amplitúdó-idő függvényét a jelnek. Bár néhány esetben látványos a jelalak, elemzése ilyen formában nehéz. Emiatt szükséges áttérni a frekvenciatartományba, tehát az amplitúdót már nem az idő függvényében, hanem a frekvencia függvényében vizsgáljuk. A periodikus jelek Fourier sorba fejthetők, tehát felírhatók szinusz és koszinusz komponensekkel. A sorba fejtés segítségével a Fourier transzformáció az idő függvényt átalakítja frekvenciatartomány belivé. Ezzel az átalakítással már számtalan jelfeldolgozó funkciót lehet kidolgozni. Fourier transzformáció (5): X(f) = x(t)e 2πift dt f, t R (5) ahol f a frekvencia, X(f) a x(t) Fourier transzformáltja. 10 Általában a bemeneti jel nem folyamatos, amelyet xt-vel jelölünk. Ilyenkor a Fourier transzformáció diszkrét változatát 11 használjuk az átalakításhoz (6). 9 Egymás utáni fél hangokból álló 10 A Fourier transzformáció a függvényt szinuszos összetevőkre bontja 11 DFT: Discrete Time Fourier Transformation 19

20 X(f) = x(t)e 2πift dt f, t Z (6) Természetesen végtelen hosszú sorozaton nem lehet elvégezni a diszkrét Fourier transzformációt, azonban, ha a sorozat periodikus (megadott W mennyiségű minta után ismétlődik), (7) x(f) = x(t + W) < t <, (7) akkor a végtelen sorozat előállítható egyetlen periódusból. Emiatt elegendő a diszkrét Fourier transzformációt egyetlen perióduson elvégezni, W méretű ablakkal (8): X(f) = W 1 x(t)e 2πift W t=0 (8) X(f) A Fourier együtthatókat jelenti, amelyek általában összetettek valós sorozatok esetén. A DFT számítási igényét le lehet csökkenteni a gyors Fourier transzformáció (FFT) alkalmazásával, amelynél a számítási időt lecsökkentették W 2 -ről W log(w)-re. Az eredeti sorozat visszaállítható az inverz Fourier transzformációval 12 (9) W 1 x(t) = 1 W f=0 X(f)e2πift W (9) Ha a mintavételezési frekvencia nem egyezik meg a bemenő jel frekvenciájával, a Fourier transzformáció a tényleges spektrumtól eltérő információkat képes hozni. Az adott frekvencia mellett oldalsó görbék (oldalszárnyak) jelennek meg, amelyek csak az eltérő frekvenciák miatt alakulnak ki. Ennek elkerülésére különböző ablakozó függvényeket használunk pl. Hamming, vagy Hanning ablak. Ha a diszkrét Fourier transzformációt ablakozó függvénnyel együtt használjuk, már rövid idejű Fourier transzformációról beszélünk IFT: Inverse Fourier Transformation 13 STFT: Short Time Fourier Transformation 20

21 3.4. Mintavételezés Ahhoz, hogy az elemezni kívánt analóg jelet vizsgálni tudjam, a hangkártya A/D átalakítójának mintavételeznie kell a jelet. A szükséges mintavételi frekvencia meghatározása az észlelni kívánt zenei hangok frekvenciájának függvénye. 2. táblázat Hangjegy - Frekvencia táblázat [14] Hang Hz Hang Hz Hang Hz Hang Hz Hang Hz Hang Hz Hang Hz Cl 32.7 C C C C C C C# C# C# C# C# C#S C# Dl 36.7 D D D D D D D# D# D# D# D# D#S D# El 41.2 E E E E E E FI 43.7 F F F F F F F# F# F# F# F# F#S F# G G G G G G G G# G# G# G# G# G#S G# A A A A A A A A# A# A# A# A# A# A# B B B B B B B Látható, hogy a legmagasabb B7-es hang Hz frekvenciájú. f mintavételi > 2 f max (10) A mintavételezési törvény alapján (10) ennek legalább a kétszeresével szükséges mintavételezni, tehát, ha a B7-es hangot 4 khz-esnek tekintjük, a 8 khz-es mintavételezés megfelelőnek bizonyul. Ez a későbbiekben megnövelhető nagyobb mintavételi frekvenciára, viszont akkor több bemeneti adatot kell feldolgozni, tehát a folyamat lassul. Természetesen, nagyobb mintavételi frekvenciával a rögzített audió jel jobb minőségű, viszont számunkra a spektrumon ez nem sokat változtat (magasabb hangok felharmonikusait már nem mintavételezzük, ami még előnyös is lehet). A bemenő adatok számát tovább lehet csökkenteni a kvantálási méret kisebbre állításával. Ezzel a rögzített jel minősége tovább csökken, így ezzel is lehet gyorsítani a jel elemzését. A kvantálás csökkentése az esetlegesen nem megfelelő amplitúdó felbontást eredményezi, amely miatt így a különböző módszereknél a csúcsértékek keresése hibás eredményeket hozhat. 21

22 Ezek alapján a legmegfelelőbbnek a 8 biten, 8 khz-el történő mintavételezés bizonyult. Ez a normál Fourier transzformációhoz elegendő, azonban néhány algoritmus eredményessége nagyban függ a mintavételezéstől (pl. autókorreláció). Például a harmonikus szorzat spektrumnál, ha csak 3-szor sűrítjük össze a tartományt, a 8 khz-et meg kell növelni legalább 24 khz-re (a hangkártya valószínűleg 44,1 khz-et fog tudni). A későbbiekben a különböző algoritmusok tesztelésénél a mintavételezési tulajdonságokat az algoritmusnak megfelelően fogom állítani Programterv A megvalósítás során egy számítógép hangkártyája végzi el az A/D átalakítást a szükséges mintavételezési frekvenciával és bitsűrűséggel. Ezután a digitális jelet már tudja a program analizálni. Időtartomány helyett egyelőre a frekvenciatartományban működő algoritmusokat fogom implementálni, mivel itt az eredmény hamarabb hoz látványosabb és pontosabb eredményt (már egy normál FFT is látványos). Az áttranszformáláshoz rövid idejű, gyors Fourier transzformáció szükséges. Amennyiben készen áll a frekvenciaspektrum, matematikai módszerekkel szándékozom kiszűrni a kívánt eredményt. A legnagyobb probléma a felharmonikusokkal van, hiszen nem lehet eldönteni, hogy az adott oktávban ténylegesen szól-e hang, vagy csak egy mélyebb hangnak a felharmonikusa szól. A felharmonikusok kiszűrésére jó néhány módszer létezik (lásd korábban), ezek közül a megfelelőnek a kiválasztása gondos elméleti, pontossági és gyorsasági megfontolást igényel. Szóba jöhet ezen kívül úgynevezett fésű szűrők használata, amelynek programozása nem túl nehéz feladat, viszont a felharmonikusokkal így is kezdeni kell valamit. A különböző módszerek működését le kell először tesztelni. Ehhez különféle hangszerek hangját 14 érdemes az algoritmusnak bemeneti jelként adni. Ha a megfelelő alap harmonikusok felismerésre kerültek, egy táblázatból könnyedén ki lehet keresni az ahhoz tartozó zenei hangot. Fontos megjegyezni, hogy a keresés során már a kezdeti időkben is beállítottam egy tűrést, mivel nem lehet garantálni, hogy a többszörös átalakítás, a zajok, 14 előre megadott hangok, hogy könnyen lehessen ellenőrizni 22

23 illetve a számítások miatt a kimeneti hang pontosan megegyezzen a frekvenciatáblázatbeli adatokkal. Ezután már csak a kimeneti képpel kell foglalkozni. A program jelenleg szöveges formában írja ki a megtalált hangokat. Egy kimeneti opció lehet, hogy a számítógép midi porton keresztül kiküldi a szükséges adatokat, ennek esetlegesen a kijelző építésénél lesz jelentősége. Miután a bemeneti jelnek én csak a hangjegy tartalmára vagyok kíváncsi, így a midi számára se lenyomási sebességet, se hangerőt nem tudok küldeni, de nem is ez a cél. 9. ábra A program működésének folyamatábrája Jelenleg a program írása az ingyenes Octave programban történik (nagyon hasonló a működése a MATLAB programhoz). A különféle matematikai eljárásokat itt könnyedén lehet tesztelni, viszont később, amikor valós időben kell futtatni a programot, lehet, hogy célszerű lesz másik programnyelvet használni. Amit el kell érnie a programnak: hangkártya folyamatos működtetése külső program nélkül, hogy a bemeneti jel folyamatos legyen. A beolvasással azonos időben a fel- 23

24 dolgozó algoritmusnak, valamint a kimenetet előállító részeknek is folyamatosan üzemelni kell. Természetesen az egyes részeredményeket is ki lehet jelezni, ennek teszteléskor, hibakereséskor lehet nagy szerepe. Amennyiben az Octave-val a folyamatos működést nem tudom megvalósítani, szívesen áttérek a LabView programra. Sajnos ennek már nincsen ingyenes változata, viszont a programozása egyszerű, a kezelőfelületet, valamint a kimenetet is gyorsan, látványosan meg lehet oldani. 4. Tesztprogramok A tesztprogramok megírásához, futtatásához, ahogyan azt már korábban is említettem, a GNU Octave nevű programot választottam. Az Octave egy magas szintű programozási nyelv, elsősorban numerikus számításokhoz. Lehetőséget biztosít különböző lineáris és nem lineáris problémák matematikai megoldására, valamint egyéb matematikai kísérleteket lehet vele végrehajtani. Széleskörű grafikai lehetőségeivel az adatokat könnyen meg lehet jeleníteni. Az Octave-ot alapvetően az interaktív parancssoron keresztül lehet használni, de háttérben futó, parancssor nélküli programok is létrehozhatók. Az Octave nyelv sokban hasonlít a MATLAB nyelvre, ezért sok programot könnyedén át lehet helyezni egyikből a másikba. [15] 4.1. Az alap tesztprogram Felépítése Az alap tesztprogram két kisebb programból épül fel, az egyik, amelyik az elemzést végzi, a másik pedig, az elemzés által talált frekvenciákhoz tartozó hangokat keresi meg és megjeleníti azt. A teszteléshez előre rögzített hangokat használok, amely hangokat a szintetizátorom segítségével állítottam elő. Ezen teszthangokat a továbbiakban még bővíteni fogom, viszont már a zongora és a gitár hangszínek is eléggé összetettnek tűnnek ahhoz, hogy a feladatnak megfeleljenek. Az alap tesztprogram: clear; %változók törlése for l=1:5 clc; %kijelző törlése t0=clock(); %az idő méréséhez a kezdő idő betöltése 24

25 Bár a kommentek is sokat segítenek az értelmezésben, a program működése a következő: a clear és a clc funkciókkal a munkaterületet (változókat és a kijelzőt) tisztíthatjuk meg. A legelső for ciklus azért 5-ször fut le, mert a tesztelés idejét nem egyetlen mérésből határozom meg (van egy kis szórás), hanem 5 mérés átlagidejét veszem. Ehhez szükséges az indulási idő lementése. A program végén egy funkció a kezdőponthoz képest kiszámítja, hogy mennyi volt a futásidő. Ez alapján pontosan mérhető, hogy mennyi ideig tartott a beolvasott hang elemzése. [y,fs]=audioread("guitarc2.wav"); %hangfájl beolvasása N = size(y)(1); %minták száma T = N/fs; %mintavételi idő t=linspace(0,t,n); %"t" vektor Az időpont tárolása után a program beolvassa az előre rögzített teszthangot, valamint a beolvasott értékek alapján ( y : amplitúdó, fs : mintavételezési frekvencia), meghatározza a minták számát, a teljes mintavételezési időt (a felvétel hosszát) és ez alapján létrehozza a t idővektort. z=fft(y); % complex fft f=(0:1:n/2-1)*fs/n; %"f" vektor z2=2*z(1:n/2); % féloldalas spektrum z3=abs(z2)/n; Az fft funkció komplex Fourier transzformációt hajt végre ( z ), amelyből előbb egy féloldalas spektrumot ( z2 ), majd pedig az abszolút értékét elosztva a minták számával létrejön a számunkra hasznos adat ( z3 ). plot(f(1:600),z3(1:600),"linewidth",1); %grafikon készítése grid on; %fővonalak felvétele grid minor on; %segédvonalak felvétele title("fft of the sound"); %cím xlabel("frequency [Hz]"); %tengely címkék ylabel("amplitude"); 25

26 Ezt az adatvektort ( z3 ) ábrázolja a program a plot funkcióval. A könnyebb olvashatóság érdekében bekapcsolja a fő és segédvonalakat, a diagram címe, valamint a tengelynevek a könnyebb értelmezhetőséget segítik. Itt fontos megemlíteni, hogy első futáskor, ha a grafikus ablak még nem volt megnyitva, a grafikon ábrázolás több időt vesz igénybe, mint a többi futtatás esetén. A változók létrehozása, a kiíratás, valamint az ezekhez kapcsolódó clear és clc funkciók nem vesznek el plusz időt, viszont a diagram első ábrázolása igen. Ez a továbbiakban aligha fog problémát jelenteni, mivel folyamatos futás esetén nem fog a grafikus ablak bezáródni. [peaks,loc]=findpeaks(z3(1:500)); %csúcsértékek keresése (csúcsérték, annak indexe) for m=1:size(loc)(2) keresettfreki(m)=f(loc(m)); %frekvenciaértékek a csúcsértékek indexe alapján endfor A tesztprogram jelenlegi változata a hangok megkereséséhez egy findpeaks nevű beépített függvényt használ, amely egy vektorban képes megkeresni a helyi maximumokat, vagyis a csúcsértékeket. Jelenleg a függvényt mindenféle beállítás nélkül használja a program, egy-egy hangszer esetén ez is egészen pontos eredményt hoz a felharmonikusok figyelmen kívül hagyását illetően. Rengeteg különféle módja van ennek a függvénynek, úgyhogy a továbbiakban nem vetem el ennek a használatát sem. A függvény eredménye két változó, az egyik a megtalált csúcsérték, a másik pedig annak az indexe. Ez alapján ki lehet keresni, hogy mely frekvenciákat kell kiíratni ( f vektorban keressük a loc helyen álló értékeket). run freq.m; %frekvenciához tartozó hang kikeresése A kikeresendő frekvenciaértékek ( keresettfreki ) alapján a másik program, a freq.m keresi meg az ahhoz tartozó hangot. text(loc, peaks, "D"); %a kijelzett hangokat egy D betű jelöli elapsed_time(l)=etime(clock(),t0); %az eltelt idő vektorba mentése endfor Mean_of_time=mean(elapsed_time) %átlagos idő 26

27 Worst_time=max(elapsed_time) %legrosszabb idő Best_time=min(elapsed_time) %legjobb idő A tesztprogram még annyit végez el, hogy a grafikonon a csúcsértékként megtalált csúcsokhoz egy D betűt ír, valamint kiszámolja, hogy az adott ciklushoz mennyi volt az eltelt idő. Végül a futásidőkről számol még néhány statisztikai adatot 15, természetesen meg is jeleníti ezeket az értékeket Hangjegyek kikeresése A program, amely kikeresi a talált frekvenciákhoz tartozó hangokat: %Zenei hangok frekvenciái hang=["c_1" "C_2" "C_3" "C_4" "C_5" "C_6" "C_7"; "C#1" "C#2" "C#3" "C#4" "C#5" "C#6" "C#7"; "D_1" "D_2" "D_3" "D_4" "D_5" "D_6" "D_7"; "D#1" "D#2" "D#3" "D#4" "D#5" "D#6" "D#7"; "E_1" "E_2" "E_3" "E_4" "E_5" "E_6" "E_7"; "F_1" "F_2" "F_3" "F_4" "F_5" "F_6" "F_7"; "F#1" "F#2" "F#3" "F#4" "F#5" "F#6" "F#7"; "G_1" "G_2" "G_3" "G_4" "G_5" "G_6" "G_7"; "G#1" "G#2" "G#3" "G#4" "G#5" "G#6" "G#7"; "A_1" "A_2" "A_3" "A_4" "A_5" "A_6" "A_7"; "A#1" "A#2" "A#3" "A#4" "A#5" "A#6" "A#7"; "B_1" "B_2" "B_3" "B_4" "B_5" "B_6" "B_7"]; Alapvetően egy egyszerű keresést hajt végre a két, előre definiált mátrixban. Az első mátrix ( hang ) a hangjegyek nevét tartalmazza, egy oszlopban az azonos oktávban található hangok vannak. A sorok pedig a különböző oktávokat jelölik. A nem # -es hangok esetében azért használom az _ karaktert a hang és az oktáv száma között, mert a kijelzésre használt függvényt sokkal bonyolultabban kellett volna megírni, ha a pl. a C2 hangot C2 -nek írom, nem pedig C_2 -nek. Így mindegyik hang jelölése 3 karakter. 15 Átlagos futásidő, a legjobb és legrosszabb futásidő 27

28 freki=[ ; ; ; ; ; ; ; ; ; ; ; ;]; A másik mátrix ( freki ) ugyanebben a logikában tartalmazza a hangokhoz tartozó frekvenciát, amely értékeket a szakirodalom alapján írtam be a programba 16. for k=1:(size(keresettfreki)(2)) %keresettfrekiken végigmegy for i=1:12 %sorokon végigmegy for j=1:7 %oszlopokon végigmegy if(freki(i,j)*0.975<=keresettfreki(k) && freki(i,j)*1.025>=keresettfreki(k)) % 2.5%-os tűréssel keresünk a táblában sor(k)=i; %sor indexek oszlop(k)=j; %oszlopindexek disp(hang(sor(k),oszlop(k)*3-2:oszlop(k)*3)); %kiíratás endif endfor endfor endfor A megtalált frekvenciák a keresettfreki nevű változóban vannak, első körben ezen a vektoron megy végig a program. Mindegyik frekvencián belül soronként és oszloponként nézi végig, hogy van-e egyezés valamelyik frekvenciaértékkel a freki mátrixban ábra Hangjegy frekvencia táblázat 28

29 A keresés során valamilyen tűrést muszáj beállítani, mivel egyrészt a hangszerek pontos hangolása nem garantált, továbbá a mintavételezéskor, illetve a csúcsérték kereséskor is adódhatnak hibák. Az előzőleg hivatkozott táblázat alapján a legmélyebb C1 és C#1 hangok 32.7 és 34.6 Hz-esek. Ezek között a különbség: 34,6 32,7 = 1,9 Hz (11) Annak érdekében, hogy a keresés pontos legyen, a keresett frekvenciáktól legfeljebb ennek az értéknek a felétől lehet eltérni: 1,9 2 = 0,95 Hz (12) Viszont a frekvenciák növekedésével együtt nő a köztük lévő távolság is, emiatt a tűrést nem számszerűen, hanem százalékos formában kell megadni. 0,95 34,6 100 = 2,74 % (13) Ez a lehető legnagyobb tűrés, amellyel még számolni lehet, a programban azonban csak 2,5 %-os tűrést használok. Az eddigi eredmények alapján ez a tűrés egészen kiválónak bizonyult. Amennyiben a program egyezést talál a keresett frekvencia és a mátrix frekvenciái között (a tűrést is beleszámolva), a kapott eredményt eltárolja és megjeleníti (csak a hangjegyeket írja ki) Az alap tesztprogram teszteredményei A tesztprogram egyik legfontosabb eredménye, hogy mely zenei hangokat ismerte fel a betöltött teszthangból. Ezt egyrészt a parancssorba írja ki, másrészt a diagramon megjelenített FFT-n is láthatóvá teszi. Az FFT-n elhelyezett D betűk jelzik, hogy mely hangokat ismerte fel a program, amely alapján következtetni lehet, hogy pontosan mi is történt a csúcsérték keresés alkalmával. A tesztprogram a következő teszthanggal futott le: guitarc4_e4_g4_c5.wav, az eredményeket a 10. és a 11. ábra mutatják. 29

30 10. ábra A tesztprogram kimeneti grafikonja A diagramon jól látható, hogy az FFT analízis miként mutatja ki a különböző harmonikusokat. Az elemzést miután nem az egész tartományra végezte el a program, így az alaphangok felharmonikusai már nem látszódnak, viszont az eredményeket megnézve a program már nem észlelte a C5 hangot. Persze ki lehetne jelenteni, hogy a program a felharmonikus szűrés miatt nem észlelte a C5 hangot, viszont inkább csak annyi történt, hogy a findpeaks függvény nem megfelelően lett paraméterezve. Ebből a tesztből pontosan látszik, hogy mi a probléma fő forrása. A megszólaló C5 hang valós alap harmonikus, nem egyszerűen csak a C4 hang felharmonikusa. A korábbi fejezetekben említett módszerek ezt hivatottak kiküszöbölni. 11. ábra A tesztprogram kimeneti értékei 30

31 A program lefutásának eredményét a parancssorban kiírt értékek is mutatják (13. ábra). A hangok nevét pusztán a többszöri futás miatt írja ki a program 5-ször egymás után. Ezzel lehet ellenőrizni, hogy minden ciklusban ugyanazt találta-e meg a program. A futás végén a futási idők adatait jeleníti meg, amelyről már a programkód leírása során esett szó. Ezeket a kimeneti értékeket (a futásidő adatok kivételével) a későbbiekben további felhasználásra el lehet majd küldeni másik szoftvernek, programnak, vagy akár soros kommunikáció segítségével másik hardvernek Nullátmenet módszere A nullátmenet módszer programkódja Ahogy a 2.1. pontban (Néhány hangfelismerő módszer bemutatása) már említve lett, az egyik, talán legegyszerűbb módszer a frekvencia meghatározására a nullátmenet módszere (zero crossing). A módszer lényege, hogy azt számoljuk, mennyiszer lesz az amplitúdó nulla. Elvben megfelelő mintavételezéssel egy egyszerű periodikus jel frekvenciája meghatározható így. Viszont egy összetett jelnél, ami tele van felharmonikusokkal, gyakorlatilag nem lehet visszafejteni a jelet alkotó különböző frekvenciákat. A nullátmenet módszerét az alábbi programmal teszteltem le: m=find(y(:,1)==0); %0-k keresése A program eleje és vége egyezik az alap tesztprograméval. A hangfájl beolvasása után az adatok az y mátrixban (többnyire kétsávosak a tesztadatok, azért 2 oszlopvektor alkotja a mátrixot) vannak eltárolva. Többféle keresési módszerrel próbálkoztam. Az első módszer az volt, hogy valamilyen ciklussal (for, vagy while ciklus) végig megyünk az y mátrixon és eltároljuk azokat a helyeket, ahol 0-t találtunk. A módszer számomra lassúnak tűnt, úgyhogy kerestem rá másik megoldást. A find nevű beépített függvény ciklus nélkül megkeres értékeket egy vektorban/mátrixban és azoknak az indexét adja vissza. n=1; while(n<size(m)(1)) if(n>1) keresettfreki(n)=1/((m(n)-m(n-1))/fs); %két 0 között eltelt idő kiszámítása, ebből endif %pedig a frekvencia számítása 31

32 Két szomszédos minta között eltelt idő: T = 1 fs (14) A frekvencia meghatározásához a megtalált nullák között eltelt időt használhatjuk fel. T = t 1 T t 0 T = (t 1 t 0 ) T (15) Ezek alapján a frekvencia: f = 1 (t 1 t 0 ) T = 1 (t 1 t 0 ) 1 fs (16) n++; endwhile run freq.m; A fenti programsor a mátrixnak csak a felét vizsgálja 17, mivel az eredmények pontatlansága végett nem gondoltam, hogy mind a két oldalt kéne vizsgálni. A 0 értékekhez tartozó indexek megtalálása után a program kiszámolja, hogy mennyi idő telt el két ilyen találat között és az alapján meghatározza a frekvenciát. A frekvenciát a keresettfreki vektorban eltárolja és ezután futtatja a freq.m programot. A kijelzés hasonló az alap tesztprograméval, annyi kivétellel, hogy diagramokat nem ábrázol A nullátmenet módszer teszteredményei 12. ábra - Nullátmenet módszer eredménye 17 A bemeneti jel sztereó, a 2 oldal közel azonos. 32

33 A 12. ábrán jól látható, hogy a tesztprogram teljesen rossz eredményeket hozott, bár az alap tesztprogramhoz képest hamarabb lefutott. A továbbiakban ezt a módszert nem fogom használni, mert a célként definiált követelmények vizsgálatára nem felel meg Autókorreláció módszere Az autókorreláció módszer programkódja A 2.3 Autókorreláció című fejezetnek megfelelően az autókorreláció módszere azon alapszik, hogy egy periodikus jel egyetlen periódusa hasonlít a mellette lévő jel periódusára. A jel eltolásával az eredeti és az eltolt jel különbsége meghatározza az alap harmonikust. Az autókorreláció elvégzése és annak deriválása után a kapott jelben a minimumok helye alapján lehet az alap harmonikust meghatározni. A programkód az alábbi: x=[y(10:size(y),1)]; %értékek eltolása x(size(x):size(y)(1))=0; %ahol már nincs érték, 0-t helyettesítünk subplot(2,2,1),plot(t,y(:,1),"linewidth",1); %y értékek kirajzolása title("input signal"); %cím xlabel("time[s]"); %tengely címkék ylabel("amplitude"); A programkód eleje teljesen hasonló a korábban már látott programokéhoz, az adatok beolvasása után az amplitúdó értékek az y változóban vannak eltárolva. A módszernek megfelelően első lépésként a beolvasott jelet eltoljuk az időtengely alapján. Erre az eltolásra többféle módszert is kipróbáltam, mert a különböző algoritmusok nagy mértékben befolyásolták a futásidőt. Mind for és mind while ciklus segítségével a jel eltolása kb. 2 mp volt. Miután ez az idő nagyon messze áll a kívánt eredményektől, emiatt másik módszert kerestem a jel eltolására. Az Octave a vektorokat képes úgy kezelni értékenként, hogy nem kell hozzá külön ciklust írni. A fentebb látható x=[y(10:size(y),1)]; kód az y értékeit a 10. értéktől kezdve adja át az x nek. Miután a bemeneti jel sztereó, az y tömb is két oszlopból áll. A tömbnek csak az 1. oszlopát adjuk át az x vektornak. Ezzel a módszerrel az x vektor 10 darab értékkel kevesebbet tartalmaz. Ennek a problémának a megoldására vagy az utolsó 10 értéket hagyjuk figyelmen kívül az y vektorból, vagy 33

34 pedig az x vektorhoz adunk hozzá 10 darab 0 értéket a végére. Én az utóbbit választottam, mert a sok elemszám miatt az a néhány darab 0 nem befolyásolja a kimenetet. A bemeneti jel idő-amplitúdó diagramját megjeleníti a program. %[R,lag]=xcorr(y(1:500,1),x(1:500)); %az autókorreláció elvégzése az eltolt értékekkel [R,lag]=xcorr(y(1:500,1)); %autókorreláció elvégzése r=r(1:end/2+1)'; subplot(2,2,2),plot(t(1:500),r,"linewidth",1); title("autocorrelation"); %cím xlabel("time[s]"); %tengely címkék ylabel("r(y)"); A jel eltolás utána következő lépés az autókorreláció elvégzése, amely a beépített xcorr nevű függvénnyel történik. Az xcorr függvényt többféle módon lehet használni. Kettő és egy paraméterrel is képes elvégezni az autókorrelációt. A függvényt mind a két módszerrel kipróbáltam. Valószínűleg, amikor egyetlen paraméterrel hívódik meg a függvény, az eltolást magától készíti el, mert a kétféle mód gyakorlatilag teljesen azonos eredményt hozott. Az egyszerűbb működés kedvéért az egy paraméteres módszert választottam, így az eltolt jelre ( x ) nincs is szükség. A korreláció eredményében R kétszer egymás után jelenik meg ugyanaz a vektor és miután nekem elég csak egyszer vizsgálni az eredményt, az r változóba csak az első felét helyezem el. 18 A grafikus ablakban az autókorreláció eredményét is megjeleníti a program. [k]=polyder(r(1:500),t(1:500)); subplot(2,2,3),plot(t(1:998),k,"linewidth",1,'g'); title("derivation"); %cím xlabel("time[s]"); %tengely címkék ylabel("dr(y)/dt"); [peaks,loc]=findpeaks(k,"doublesided"); keresettfreki=abs(1/(t(loc(4))-t(loc(2)))); 18 A vektor transzponálása is szükséges volt az ábrázolhatóság érdekében. 34

35 A következő lépése a módszernek, hogy az autókorreláció eredményeként kapott r vektort deriváljuk, illetve keressünk annak minimumértékeit. A deriválást a polyder nevű függvénnyel végzi el a program az eredményt pedig a k vektorban tárolja el. A derivált értékeket is megjeleníti a rajzlapon. A minimumok megkereséséhez a már ismertetett findpeaks függvényt használom, viszont miután a deriválás nem csak pozitív eredményeket tartalmaz, a függvényt a Doublesided paraméterrel kell ellátni. Ezt a függvényt csak a minimumok megkeresésére nem lehet használni, így a megtalált csúcsértékek közül manuálisan választottam ki a minimum értékekhez tartozó indexeket. Amiatt, hogy az autókorreláció esetében nem térünk át frekvenciatartományra, a megtalált csúcsérték indexek ( loc(4) és loc(2) ) helyén az idővektor alapján rögtön lehet tudni a két minimum között eltelt időt. Ebből már könnyen kereshető a frekvencia, amely az alap harmonikushoz tartozik. A program további része egyezik a korábbi programokéval Az autókorreláció módszer teszteredményei ki. A tesztprogramot először egy C2 hangot tartalmazó zongora tesztfájllal próbáltam 13. ábra Az autókorreláció bemeneti értéke, valamint a számítás eredménye egyszerű hang esetén A 13. ábrán látható, hogy a 2.3 fejezetben található 2. és 3. ábrán látható jelhez hasonlóak az értékek. A bemeneti jel grafikonja fel lett nagyítva, annak érdekében, hogy a jelalakot jobban lehessen látni. 35

36 14. ábra A deriválás eredménye egyszerű hang esetén 15. ábra A megtalált hangok és a futásidő A 14. ábrán jól látszik, hogy mely értékeket kellett választanom a peaks vektorból ahhoz, hogy a 0,08 és 0,1 s közötti minimumokat kapjam. 19 A 15. ábrán pedig a megtalált zenei hangok is olvashatók. Ezek alapján erre az egyszerű hangra a módszer jól működött. A futásidő még elfogadható. További használat esetén a módszer tovább gyorsítható a bemeneti jel ablakozásával, amellyel elérhető, hogy mindig az optimális hosszúságú vektort kelljen feldolgozni. Egy másik tesztet is elvégeztem ezen a módszeren. Ahogyan azt a C2-es teszthangnál, illetve a 2. és 3. ábrán láthattuk, a felharmonikusok az alap harmonikushoz tartoznak. Így az elv, miszerint az autókorreláció által szolgáltatott értékek az alap harmonikushoz tartanak, használhatónak bizonyult. Viszont egy összetett hang esetén, nem egyetlen alap harmonikust kell megtalálni. Ez felveti a problémát, hogy egy akkordszerű összetett hangból hogyan találjuk meg a többféle algoritmust. Ezt jól bizonyítják a módszer második tesztjének eredményei is: 16. ábra Az autókorreláció bemeneti értéke, valamint a számítás eredménye összetett hang esetén 19 A findpeaks függvény csak a csúcsértékeket találta meg, amely nem csak a 2 minimumból áll. 36

37 Bár a 16. ábra jobb oldali diagramján még hasonló a kép, mint az egyszerű hang esetén, viszont a deriválás eredményéből (17. ábra) már lehet sejteni, hogy az alap harmonikusok megtalálása gyakorlatilag lehetetlen. Az előző tesztnél használt módszerrel most is kereshetnénk a minimum értékeket és azok alapján a frekvenciákat, de azt nem lehet megállapítani, hogy melyik minimumok melyik alap harmonikushoz tartoznak. Így, hogy a bemeneti hangok ismertek, még meg lehetne oldani, de egy teljesen véletlenszerű hang esetén már lehetetlen. 17. ábra A deriválás eredménye összetett hang esetén Összességében elmondható, hogy az autókorreláció módszere egyszerű hangokhoz teljesen jól használható. Ilyen felhasználása lehet például hangoló készítése, vagy egyetlen hangszer egy hangokból álló dallamának felismerése. A 2.3. bekezdésben tárgyalt forrás szerint a módszer érzéketlen a zajra, valamint érzékeny a mintavételezési frekvenciára. További használat esetén ezen tényezők további vizsgálata is javasolt. Miután öszszetett hangok elemzése nem lehetséges vele, így a továbbiakban nem fogok az autókorreláció módszerével foglalkozni. 37

38 4.4. Harmonikus szorzat spektrum A 2.4. fejezetben már tárgyalt harmonikus szorzat spektrum 20 egy ígéretes módszer a felharmonikusok kiszűrésére. A módszer lényege, hogy az alap jelet többször újra mintavételezzük, majd ezeket a jeleket összeszorozva a felharmonikusok java része kiszűrhető. A 2.4. fejezetben megjelölt forrás alapján 2-3-szoros újra mintavételezés már elegendő a felharmonikusok kiszűrésére. Az újra mintavételezésre többféle módszer is lehetséges. Az első, amely ténylegesen újra mintavételez, az időtartománybeli mintavételezett jelet az eredeti mintavételi frekvencia felével valóban újra mintavételezzük. A másik módszer pedig, hogy az elkészített FFT-t mintavételezzük újra. Az első esetben az újra mintavételezés után mindegyik jelre ki kell számítani az FFT-jét, amíg a második lehetőséget választva az FFT-ket kézhez kapjuk. Az elkészített FFT-t összeszorozzuk az eredeti jel FFT-jével és a 2-3. lépés után már a felharmonikusok java része el is tűnik. Az újra mintavételezés viszont olyan alapvető kérdéseket állít fel, hogy ha 2-szer is újra mintavételezzük a jelet, akkor elegendő-e az eredeti mintavételi frekvencia a kívánt hangmagasságok érzékeléséhez. Az eredeti mintavételezési frekvenciát lehet növelni, viszont utána az FFT számításnál több adatot hosszabb időbe kerül kiszámítani. Ha az FFT-t előbb végezzük el, ez a probléma kiküszöbölhető. Én a tesztprogramban ezt úgy végeztem el, hogy az FFT vektornak minden második adatát vettem újra mintavételezett FFT-nek. Ez a módszer minőségi különbséget nem hozott a beépített resample nevű függvényhez képest, viszont sokkal hamarabb lefutott. A megoldás esetleges problémája lehet, hogy az FFT egy-egy csúcsához nem áll rendelkezésre elegendő adat, így, ha pont a csúcsértékhez tartozó értéket nem vesszük figyelembe, akkor az a harmonikus drasztikusan eltűnik. Erre megoldás lehet, hogy nagyobb mintavételi frekvenciát alkalmazunk, mert ezzel a frekvencia értékek felbontása is nő, viszont a nagyobb mintavételi frekvencia több számítást igényel A HPS módszer programkódja Az algoritmus alapján megvalósított program részlete: [y,fs]=audioread("trumpetc2.wav"); %hangfájl beolvasása %y2=resample(y,1,2); %időtartományban újra mintavételezés %y3=resample(y,1,3); %időtartományban újra mintavételezés 20 HPS: Harmonic Product Spectrum 38

39 A korábbról már ismert sorokkal indul a program: kijelző, változók törlése, for ciklus, valamint az időpont elmentése a futásidő számítás részére. A hangfájl beolvasása után kezdődik a HPS megvalósítása. A többszörös mintavételezésre kitalált módszerek közül az első, hogy még az időtartománybeli y értékeket mintavételezzük újra a resample nevű beépített függvénnyel ( y2, y3 vektorok lesznek az újra mintavételezés eredményei). Ezek a sorok a kódban kommentként szerepelnek, mert a később következő eredmények nem ezzel a módszerrel készültek. N = size(y)(1); %minták száma T = N/fs; %mintavételi idő t = linspace(0,t,n); %"t" vektor z = fft(y); % komplex fft %z4 = fft(y2); %FFT elvégzése az alul mintavételezett értékeken %z5 = fft(y3); % FFT elvégzése az alul mintavételezett értékeken A korábbi frekvenciatartományban működő programok esetében csak az y értékeknek kellett elvégezni a Fourier transzformáltját, azonban most a másik kettő alul mintavételezett jelnek is szükséges ( z4, z5 ). Tesztek alapján az ábrázolások és a csúcsérték keresések nélkül a többszörös időtartománybeli újra mintavételezés és az emiatt adódó plusz FFT számítások dupla futásidőt eredményeztek. f=(0:1:n/2-1)*fs/n; %"f" vektor z2=2*z(1:n/2); % féloldalas spektrum z3=abs(z2)/n; db=2000; %ábrázolási/működési intervallum egységesítése (csak a tesztek idejére) Az FFT ábrázolható változatát csak az eredeti y vektorra számoltam ki, az előző bekezdésben tárgyalt hosszú futásidők miatt. Felesleges lett volna még ezeket is kiszámolni, hiszen csak növelték volna a futásidőt. A db változót azért vezettem be, mert a bemeneti hangok hangmagasságától függően lehet ábrázolni a kimeneti értékeket vele, valamint valamennyi futásidő is megspórolható így. A db változó értékét az első néhány futtatás alkalmával állítottam be éppen 2000-re. Teljes programműködés esetén már nem lesz értelme használni, hiszen ezzel az intervallummal a megtalálható hangok magasságát korlátozza a program. Mélyebb bemeneti teszthangok esetén lehet csökkenteni 39

40 az értéket, ezzel elősegítve a grafikonok vizuális ellenőrzését. Magasabb bemeneti hangok, vagy több felharmonikus esetén pedig növelni lehet az értékét annak érdekében, hogy a szükséges frekvencia-felbontást elérjük, valamint a diagramokon lássuk az összes értéket. %subplot(1,4,1), plot(z3(1:db),f(1:db),"linewidth",2); %grafikon készítése grid on; %fővonalak felvétele grid minor on; %segédvonalak felvétele title("fft of the sound"); %cím ylabel("frequency [Hz]"); %tengely címkék xlabel("amplitude"); Az ábrázolási mód is ismerős lehet a korábbi programkódokból. Annyi a különbség, hogy a képernyőt itt 4 függőleges hasábra osztom a subplot paranccsal, valamint a frekvencia és amplitúdó tengelyeket megcseréltem annak érdekében, hogy a leolvasás könynyebb legyen 16:9 arányú képernyőn is. A plot függvény paraméterein látható, hogy minden vektort csak a db skalár értékéig ábrázolok. %z4=resample(z3,1,2); z4=z3(1:2:length(z3)); subplot(1,4,2),plot(z4(1:db),f(1:db),"linewidth",2); grid on; %fővonalak felvétele grid minor on; %segédvonalak felvétele title("2nd"); %cím ylabel("frequency [Hz]"); %tengely címkék xlabel("amplitude"); Miután az időtartománybeli újra mintavételezést a plusz futásidő miatt hanyagolom a megvalósításban, a frekvenciatartománybeli újra mintavételezést kell megvalósítani. Erre használható a már többször emlegetett resample függvény, vagy a vektorműveleteken alapuló megoldás. A resample függvény ebben az esetben is jelentősen megnövelte a futásidőt, viszont teljesen ugyanazt az eredményt hozta, mint a vektorműveleteken alapuló. A vektorműveleteken alapuló megoldás az eredeti y jel ábrázolható z3 FFTjét veszi alapul, viszont annak csak minden második értékét. Sebességben ez a megoldás 40

41 volt a leggyorsabb, emiatt a teszteredmények is ezzel a módszerrel készültek el. (A resample függvények ezért vannak kommentelve.) %z5=resample(z3,1,3); z5=z3(1:3:length(z3)); subplot(1,4,3),plot(z5(1:db),f(1:db),"linewidth",2); grid on; %fővonalak felvétele grid minor on; %segédvonalak felvétele title("3rd"); %cím ylabel("frequency [Hz]"); %tengely címkék xlabel("amplitude"); A második alulmintavételezésre az összes korábban tett állítás igaz marad, ezért ez a programrész az előzővel teljesen azonos. HPS=z3(1:db).*z4(1:db);.*z5(1:db); subplot(1,4,4),plot(hps(1:db),f(1:db),"linewidth",2); grid on; %fővonalak felvétele grid minor on; %segédvonalak felvétele title("hps"); %cím ylabel("frequency [Hz]"); %tengely címkék xlabel("amplitude"); [peaks,loc]=findpeaks(hps(1:db),"doublesided"); %csúcsértékek keresése (csúcsérték, csúcsérték indexe A módszer utolsó lépése, hogy az előzőekben elkészített alul mintavételezett FFT vektorokat összeszorozzuk. A szakirodalom alapján összeadást is lehetne használni, viszont ahogy ez majd a teszteredményeken is látszik, azt a módszert nem találtam túl célravezetőnek. Vektorok * operátorral történő szorzása esetén az Octave skalár szorzást végez el. Elemenkénti szorzáshoz lehetne használni valamilyen ciklust (while, for stb.), amely végigmegy az értékeken és összeszorozza az indexek alapján a vektorokat. Viszont ez ismét lelassítaná a programot. A.* operátor egy olyan operátor, amely mind mátrixok, mind pedig vektorok elemenként történő szorzására való. Eredménye a szorzandó 41

42 és szorzó vektorok (mátrixok) méretével azonos, egyetlen követelménye, hogy a vektornak (mátrixnak) azonos méretűnek kell lennie. Ezt a legkönnyebben a db vektor segítségével tehettem meg, hiszen pont ebből a célból hoztam létre. A szorzás elvégzése után a diagram képernyő 4. hasábjára ábrázolom a harmonikus szorzatspektrum eredményét, valamint az alap tesztprogramból már ismert findpeaks nevű függvénnyel megkeresem a csúcsértékeket. A program befejező műveletei a korábbiakéval azonos, a megtalált frekvenciákhoz tartozó hangot szintén a freq.m program keresi meg és jelzi ki, valamint az elengedhetetlen futásidők kiszámítása és kijelzése a program utolsó feladata A HPS módszer teszteredményei A módszer egyszerű programozhatóságának köszönhetően többféle változat kipróbálását könnyedén meg lehetett valósítani. Az első teszt során a fejezetben említett teljes módszert teszteltem. Utána ezt annyiban módosítottam, hogy a HPS kiszámításánál szorzás helyett összeadást használok, illetve a harmadik teszt során a 2 alul mintavételezett jel helyett, csak egyet fogok használni. Ezen tesztek során egy C4-es trombita hang volt a bemeneti hang. A teszteredmények az alábbiak lettek: 18. ábra HPS módszer teszteredményei, 2 alul mintavételezett jellel és szorzással A 18. ábrán jól látható, ahogyan a spektrumot összetömörítette a módszer. A segédvonalak segítségével könnyedén nyomon követhető, ahogyan a felharmonikusok a hozzájuk tartozó alap harmonikussal egy vonalba kerültek az újra mintavételezések hatására. A 4. diagramon jól látható, ahogyan a felharmonikusok szinte teljesen eltűntek. Az 42

43 apró zajokat is nagyon szépen kiszűrte az algoritmus, ami miatt az eredmény teljesen elfogadható. A grafikus eredmények mellett kijelzett szöveges eredmények: 19. ábra HPS módszer teszteredményei, 2 alul mintavételezett jellel és szorzással, szövegesen A 19. ábrán látható, hogy a program a C4 és C5 hangokat találta meg. Ez teljesen összhangban van a 18. ábra 4. diagramjával, ahol szintén ez a két harmonikus látható. A módszer eredményei az előző bekezdésben elfogadhatónak írtam, viszont ezek alapján mégsem működik olyan jól. Ha jól megfigyeljük, a 18. ábra 1. diagramján a bemeneti jel FFT-jén látható, hogy az első felharmonikus nagyobb amplitúdójú, mint az alap harmonikus. Ennek ellenére a módszer így is nagy mértékben tudta csökkenteni a felharmonikus amplitúdó arányát az alap harmonikuséhoz képest. A futásidő is szintén elfogadható, a bemeneti hangfájl hossza 0,63 s, a legjobb futásidő pedig 0,62 s volt. A következő teszteredmények során a szorzás helyett összeadást használtam. Ezek alapján a programkódban történt változás: HPS=z3(1:db)+z4(1:db)+z5(1:db); Miután az alul mintavételezett jelek FFT diagramja ugyanolyan, mint az előző esetben, azt nem jelenítettem meg a teszteredmény ábráján. A 20. ábrán látható teszteredmények nem mondhatók ideálisnak. Az előző eredményhez képest a módszer nem hogy kevésbé zajossá, hanem még zajosabbá tette a jelet. A program által megtalált hangok (20. ábra jobb oldala) is a 20. ábra bal oldalán látható diagramnak megfelelő. Rengeteg hangot megtalált a program, viszont a bemeneti hangfájl csak egyetlen hangot tartalmazott. 43

44 20. ábra HPS módszer teszteredményei, 2 alul mintavételezett jellel, összeadással A HPS módszer esetén akkor ajánlott összeadást használni, ha valamely felharmonikusakat szükséges kiemelni, illetve egyes esetekben, kombinálva a szorzással, lehetséges, hogy képes javítani az eredményeken. A harmadik teszt esetén pedig a 2 alul mintavételezés helyett, csak egyet használtam. A teszt futtatásához egyszerűen kivettem a felesleges sorokat, valamint a diagramokat is csak 3 oszlopban ábrázoltam. A kevesebb alul mintavételezett jelek használatának egyik fő oka, hogy a kevesebb számítás miatt a futásidő csökken, valamint, hogy kevésbé szűri ki a felharmonikusakat. A 21. ábra ezen teszt eredményeit ábrázolja. Az ábrán az alul mintavételezett jel és az eredeti jel FFT-je ugyanolyan, mint az első teszt során, így azokat nem tartalmazza az ábra. 44

45 21. ábra HPS teszteredményei, 1 alul mintavételezett jellel, szorzással Az elvárásoknak megfelelően jól látható, hogy a felharmonikusakat sokkal kevésbé csillapította, mint az 1. teszt során. Ennek ellenére a program ugyanazokat a hangokat találta meg, ez a findpeaks függvény miatt lehet, hasonlóan az alap tesztprogramnál tapasztaltakkal. A futásidő viszont ténylegesen csökkent. Ennél a megoldásnál a legroszszabb futásidő egyezett meg körülbelül az 1. teszt legjobb idejével. Ez viszont láthatóan a minőség romlására is ment. A futásidő csökkentését az esetlegesen jobban megválasztott vektor vizsgálati hosszal ( db változó), egyes programrészek kihagyásával (például a grafikus ábrázolás), vagy amennyiben mód van rá, néhány folyamat párhuzamos futtatásával lehet elérni. A vektor vizsgálati hosszt abban az esetben lehet csökkenteni, ha tudjuk, hogy az adott hosszban el fog férni az összes vizsgálni kívánt hang frekvenciája. A grafikus megjelenítéstől a későbbiekben el lehet tekinteni, hiszen nem ez az egyetlen módja a megjelenítésnek. A harmadik lehetőségre szerintem nincs lehetőség az Octaveban, mert nem erre a célra készítették a programot. Esetleg több, egymás mellett futó 45

46 programot használva lehet elérni a párhuzamos működést, viszont az már olyan problémákat vet fel, mint hogy ki, mikor használja az adott bemeneti fájlt, jelet, vagy éppen, hogy hogyan történik az adatok átadása a különböző programok között. Még egy lehetőség van, gyorsabb számítógép használata, de erről a későbbiekben még lesz szó. A különböző teszteket összetettebb hangokon is elvégeztem, az eredmények teljesen hasonlóak voltak, ezért nincsenek dokumentálva. Ez azt jelenti, hogy a módszer egészen univerzálisan működik a bemeneti jel összetettségére. Összességében elmondható, hogy a Harmonikus Szorzat Spektrum módszere igazán látványos eredményeket ér el a felharmonikusok csillapítása terén. A módszer bevezetésében vázolt mintavételezési frekvencia probléma továbbra is kérdéses marad, mert ennek teszteléséhez rengeteg és sokkal szélesebb spektrumú teszthangot kellene előállítanom, ráadásul nagyobb mintavételezési frekvenciával, amire jelenleg nincs lehetőségem. A nagyobb frekvencia felbontás plusz számítási időt igényel, viszont lehetséges, hogy még pontosabb lenne. Érdemes lenne sokkal zajosabb hangok esetén is kipróbálni a módszert, bár az eddigi eredmények alapján a módszer jól kezeli a bemeneti zajokat. Minden esetre ezen néhány teszt alapján a HPS módszer működése számomra meggyőző volt. Rengeteg lehetőséget látok ebben a módszerben, így a továbbiakban is használni fogom ezt a módszert Párhuzamosan kapcsolt fésű szűrők A párhuzamosan kapcsolt fésű szűrők azon az elven működnek, hogy egy megfelelően tervezett szűrő ott fog a legtöbbet csillapítani a jelből, ahol a jel és a szűrő frekvenciája egyezik. Ha sok ilyen szűrőt egymás mellé helyezünk, elvben tetszőleges frekvencia felbontás lehetséges. A szűrők megfelelő hangolásával el lehet érni, hogy egy-egy szűrő a frekvenciájának megfelelő egy-egy zenei hangot csillapítson a jelből. Ezeket a helyeket lehet érzékelni, ezek fogják jelenteni a megtalált hangokat. A módszer által elérhető pontosságot a szűrő pontossága nagymértékben befolyásolja. Ilyen célra használható FIR 21 és IIR 22 szűrő is. Az IIR szűrő jobb eredményeket ér el egy kutatás szerint. [16] Az Octave-ban is van lehetőség szűrők megvalósítására. Sajnos a szűrők készítésére használható beépített függvények száma alacsony. FIR szűrők létrehozására van egy 21 Véges Impulzus-válasz szűrő (Finite Impulse Response) 22 Végtelen Impulzus válasz szűrő (Infinite Impluse Response) 46

47 kiválóan működő fir1 nevű függvény, azonban ez csak egyetlen szűrőt hoz létre. A paraméterek létrehozása matematikai úton lehetséges, azonban egy ilyen szűrő is 5-6 soros programkóddal készíthető el. Persze az együtthatókat előre is meg lehet határozni, amely előnyös is a megvalósítás esetén, az igazi probléma a sebességgel van. Hogy ha még a szűrőegyütthatókat meg is valósítom előre, az, hogy fésű szűrőként összefűzve értelmes időtartam alatt fusson le a szűrés, nem tudtam elérni. Néhány szűrő esetén jól használható ez a módszer, azonban nekem egyszerre 72 szűrőt kell használnom, valamint a szükséges pontosság elérése végett minél magasabb rendű szűrés célszerű. Ezek a szűrők egy úgynevezett signal package 23 könyvtárban vannak benne, viszont korántsem az összes függvény van jelenleg megvalósítva az Octave-ban. Nem találtam sajnos egyéb háttér információt, hogy hogyan lehetséges a programban normális futásidővel megvalósítani fésű szűrőket. A legtöbb ilyen forrás a MATLAB fejlesztő környezetét használta. Abban egy interaktív ablak is segít néhány kattintással tetszőleges szűrőt létrehozni (fésű szűrőt is). Ezzel a megoldással az egyetlen probléma, hogy a MATLAB nem ingyenes. Van próbaverziója, viszont a próbaverzió lejárata után mindenképpen meg kell vásárolni a programot, nekem pedig kifejezetten az volt a célom, hogy az Octave programcsomagot használjam. Illetve egy másik fejlesztő környezetben a futásidőt, illetve a keletkezett mérési eredményeket sem lehet összehasonlítani egymással. A [16] forrásban sajnos a megvalósítás menetére, valamint a futási időre nem tértek ki, csupán az elérhető pontosságot elemezték. 22. ábra Fésű szűrők által elért pontossági eredmény [16] A 22 ábra első oszlopa a bemeneti jel (akkord) hangjait ábrázolja. A második oszlop (Proposed sys.) a várt eredményeket, a 3. oszlop pedig a valós eredményeket mutatja. Érdemes megfigyelni, hogy annál az akkordnál, ahol mindegyik hang csak félhangnyi 23 Jel csomag 47

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ X. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ Ma az analóg jelek feldolgozása (is) mindinkább digitális eszközökkel és módszerekkel történik. A feldolgozás előtt az analóg jeleket digitalizálni kell.

Részletesebben

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék

Analóg-digitális átalakítás. Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék Analóg-digitális átalakítás Rencz Márta/ Ress S. Elektronikus Eszközök Tanszék Mai témák Mintavételezés A/D átalakítók típusok D/A átalakítás 12/10/2007 2/17 A/D ill. D/A átalakítók A világ analóg, a jelfeldolgozás

Részletesebben

ÁRAMKÖRÖK SZIMULÁCIÓJA

ÁRAMKÖRÖK SZIMULÁCIÓJA ÁRAMKÖRÖK SZIMULÁCIÓJA Az áramkörök szimulációja révén betekintést nyerünk azok működésébe. Meg tudjuk határozni az áramkörök válaszát különböző gerjesztésekre, különböző üzemmódokra. Végezhetők analóg

Részletesebben

Eddigi tanulmányaink alapján már egy sor, a szeizmikában általánosan használt műveletet el tudunk végezni.

Eddigi tanulmányaink alapján már egy sor, a szeizmikában általánosan használt műveletet el tudunk végezni. Eddigi tanulmányaink alapján már egy sor, a szeizmikában általánosan használt műveletet el tudunk végezni. Kezdjük a sort a menetidőgörbékről, illetve az NMO korrekcióról tanultakkal. A következő ábrán

Részletesebben

Informatika Rendszerek Alapjai

Informatika Rendszerek Alapjai Informatika Rendszerek Alapjai Dr. Kutor László Alapfogalmak Információ-feldolgozó paradigmák Analóg és digitális rendszerek jellemzői Jelek típusai Átalakítás rendszerek között http://uni-obuda.hu/users/kutor/

Részletesebben

Jelek és rendszerek 1. 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék

Jelek és rendszerek 1. 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék Jelek és rendszerek 1 10/9/2011 Dr. Buchman Attila Informatikai Rendszerek és Hálózatok Tanszék 1 Ajánlott irodalom: FODOR GYÖRGY : JELEK ÉS RENDSZEREK EGYETEMI TANKÖNYV Műegyetemi Kiadó, Budapest, 2006

Részletesebben

Mérés és adatgyűjtés

Mérés és adatgyűjtés Mérés és adatgyűjtés 4. óra Mingesz Róbert Szegedi Tudományegyetem 2012. február 27. MA - 4. óra Verzió: 2.1 Utolsó frissítés: 2012. március 12. 1/41 Tartalom I 1 Jelek 2 Mintavételezés 3 A/D konverterek

Részletesebben

2. Az emberi hallásról

2. Az emberi hallásról 2. Az emberi hallásról Élettani folyamat. Valamilyen vivőközegben terjedő hanghullámok hatására, az élőlényben szubjektív hangérzet jön létre. A hangérzékelés részben fizikai, részben fiziológiai folyamat.

Részletesebben

Villamos jelek mintavételezése, feldolgozása. LabVIEW 7.1

Villamos jelek mintavételezése, feldolgozása. LabVIEW 7.1 Villamos jelek mintavételezése, feldolgozása (ellenállás mérés LabVIEW támogatással) LabVIEW 7.1 előadás Dr. Iványi Miklósné, egyetemi tanár LabVIEW-7.1 KONF-5_2/1 Ellenállás mérés és adatbeolvasás Rn

Részletesebben

11. Orthogonal Frequency Division Multiplexing ( OFDM)

11. Orthogonal Frequency Division Multiplexing ( OFDM) 11. Orthogonal Frequency Division Multiplexing ( OFDM) Az OFDM (Orthogonal Frequency Division Multiplexing ) az egyik legszélesebb körben alkalmazott eljárás. Ez az eljárás az alapja a leggyakrabban alkalmazott

Részletesebben

Kiegészítés a Párbeszédes Informatikai Rendszerek tantárgyhoz

Kiegészítés a Párbeszédes Informatikai Rendszerek tantárgyhoz Kiegészítés a Párbeszédes Informatikai Rendszerek tantárgyhoz Fazekas István 2011 R1 Tartalomjegyzék 1. Hangtani alapok...5 1.1 Periodikus jelek...5 1.1.1 Időben periodikus jelek...5 1.1.2 Térben periodikus

Részletesebben

Villamos jelek mintavételezése, feldolgozása. LabVIEW előadás

Villamos jelek mintavételezése, feldolgozása. LabVIEW előadás Villamos jelek mintavételezése, feldolgozása (ellenállás mérés LabVIEW támogatással) LabVIEW 7.1 2. előadás Dr. Iványi Miklósné, egyetemi tanár LabVIEW-7.1 EA-2/1 Ellenállás mérés és adatbeolvasás Rn ismert

Részletesebben

Digitális jelfeldolgozás

Digitális jelfeldolgozás Digitális jelfeldolgozás Mintavételezés és jel-rekonstrukció Magyar Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék magyar.attila@virt.uni-pannon.hu 2010.

Részletesebben

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László) Szimuláció RICHARD M. KARP és AVI WIGDERSON A Fast Parallel Algorithm for the Maximal Independent Set Problem című cikke alapján (Készítette: Domoszlai László) 1. Bevezetés A következőkben megadott algoritmus

Részletesebben

1. A hang, mint akusztikus jel

1. A hang, mint akusztikus jel 1. A hang, mint akusztikus jel Mechanikai rezgés - csak anyagi közegben terjed. A levegő molekuláinak a hangforrástól kiinduló, egyre csillapodva tovaterjedő mechanikai rezgése. Nemcsak levegőben, hanem

Részletesebben

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI FŐISKOLAI KAR. Mikroelektronikai és Technológiai Intézet. Aktív Szűrők. Analóg és Hírközlési Áramkörök

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI FŐISKOLAI KAR. Mikroelektronikai és Technológiai Intézet. Aktív Szűrők. Analóg és Hírközlési Áramkörök KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI FŐISKOLAI KAR Mikroelektronikai és Technológiai Intézet Analóg és Hírközlési Áramkörök Laboratóriumi Gyakorlatok Készítette: Joó Gábor és Pintér Tamás OE-MTI 2011 1.Szűrők

Részletesebben

2. gyakorlat Mintavételezés, kvantálás

2. gyakorlat Mintavételezés, kvantálás 2. gyakorlat Mintavételezés, kvantálás x(t) x[k]= =x(k T) Q x[k] ^ D/A x(t) ~ ampl. FOLYTONOS idı FOLYTONOS ANALÓG DISZKRÉT MINTAVÉTELEZETT DISZKRÉT KVANTÁLT DIGITÁLIS Jelek visszaállítása egyenköző mintáinak

Részletesebben

Analóg digitális átalakítók ELEKTRONIKA_2

Analóg digitális átalakítók ELEKTRONIKA_2 Analóg digitális átalakítók ELEKTRONIKA_2 TEMATIKA Analóg vs. Digital Analóg/Digital átalakítás Mintavételezés Kvantálás Kódolás A/D átalakítók csoportosítása A közvetlen átalakítás A szukcesszív approximációs

Részletesebben

T E R M É K T Á J É K O Z TAT Ó

T E R M É K T Á J É K O Z TAT Ó T E R M É K T Á J É K O Z TAT Ó ÚJ!!! SeCorr 08 korrrelátor A legújabb DSP technikával ellátott számítógépes támogatással rendelkező korrelátor a hibahelyek megtalálásához. 1 MI A KORRELÁCIÓ? A korreláció

Részletesebben

Informatikai eszközök fizikai alapjai Lovász Béla

Informatikai eszközök fizikai alapjai Lovász Béla Informatikai eszközök fizikai alapjai Lovász Béla Kódolás Moduláció Morzekód Mágneses tárolás merevlemezeken Modulációs eljárások típusai Kódolás A kód megállapodás szerinti jelek vagy szimbólumok rendszere,

Részletesebben

Feszültségérzékelők a méréstechnikában

Feszültségérzékelők a méréstechnikában 5. Laboratóriumi gyakorlat Feszültségérzékelők a méréstechnikában 1. A gyakorlat célja Az elektronikus mérőműszerekben használatos különböző feszültségdetektoroknak tanulmányozása, átviteli karakterisztika

Részletesebben

Első egyéni feladat (Minta)

Első egyéni feladat (Minta) Első egyéni feladat (Minta) 1. Készítsen olyan programot, amely segítségével a felhasználó 3 különböző jelet tud generálni, amelyeknek bemenő adatait egyedileg lehet változtatni. Legyen mód a jelgenerátorok

Részletesebben

Ellenőrző kérdések a Jelanalízis és Jelfeldolgozás témakörökhöz

Ellenőrző kérdések a Jelanalízis és Jelfeldolgozás témakörökhöz Ellenőrző kérdések a Jelanalízis és Jelfeldolgozás témakörökhöz 1. Hogyan lehet osztályozni a jeleket időfüggvényük időtartama szerint? 2. Mi a periodikus jelek definiciója? (szöveg, képlet, 3. Milyen

Részletesebben

Programozási segédlet

Programozási segédlet Programozási segédlet Programozási tételek Az alábbiakban leírtam néhány alap algoritmust, amit ismernie kell annak, aki programozásra adja a fejét. A lista korántsem teljes, ám ennyi elég kell legyen

Részletesebben

Digitális szűrők - (BMEVIMIM278) Házi Feladat

Digitális szűrők - (BMEVIMIM278) Házi Feladat Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rszerek Tanszék Digitális szűrők - (BMEVIMIM278) FIR-szűrő tervezése ablakozással Házi Feladat Név: Szőke Kálmán Benjamin Neptun:

Részletesebben

Grafikonok automatikus elemzése

Grafikonok automatikus elemzése Grafikonok automatikus elemzése MIT BSc önálló laboratórium konzulens: Orosz György 2016.05.18. A feladat elsődleges célkitűzései o eszközök adatlapján található grafikonok feldolgozása, digitalizálása

Részletesebben

Fourier térbeli analízis, inverz probléma. Orvosi képdiagnosztika 5-7. ea ősz

Fourier térbeli analízis, inverz probléma. Orvosi képdiagnosztika 5-7. ea ősz Fourier térbeli analízis, inverz probléma Orvosi képdiagnosztika 5-7. ea. 2017 ősz 5. Előadás témái Fourier transzformációk és kapcsolataik: FS, FT, DTFT, DFT, DFS Mintavételezés, interpoláció Folytonos

Részletesebben

Értékelés Összesen: 100 pont 100% = 100 pont A VIZSGAFELADAT MEGOLDÁSÁRA JAVASOLT %-OS EREDMÉNY: EBBEN A VIZSGARÉSZBEN A VIZSGAFELADAT ARÁNYA 35%.

Értékelés Összesen: 100 pont 100% = 100 pont A VIZSGAFELADAT MEGOLDÁSÁRA JAVASOLT %-OS EREDMÉNY: EBBEN A VIZSGARÉSZBEN A VIZSGAFELADAT ARÁNYA 35%. Az Országos Képzési Jegyzékről és az Országos Képzési Jegyzék módosításának eljárásrendjéről szóló 133/2010. (IV. 22.) Korm. rendelet alapján: Szakképesítés, szakképesítés-elágazás, rész-szakképesítés,

Részletesebben

A mintavételezéses mérések alapjai

A mintavételezéses mérések alapjai A mintavételezéses mérések alapjai Sok mérési feladat során egy fizikai mennyiség időbeli változását kell meghatároznunk. Ha a folyamat lassan változik, akkor adott időpillanatokban elvégzett méréssel

Részletesebben

Analóg elektronika - laboratóriumi gyakorlatok

Analóg elektronika - laboratóriumi gyakorlatok Analóg elektronika - laboratóriumi gyakorlatok. Mûveleti erõsítõk váltakozó-áramú alkalmazásai. Elmélet Az integrált mûveleti erõsítõk váltakozó áramú viselkedését a. fejezetben (jegyzet és prezentáció)

Részletesebben

2. Elméleti összefoglaló

2. Elméleti összefoglaló 2. Elméleti összefoglaló 2.1 A D/A konverterek [1] A D/A konverter feladata, hogy a bemenetére érkező egész számmal arányos analóg feszültséget vagy áramot állítson elő a kimenetén. A működéséhez szükséges

Részletesebben

Gyakorló többnyire régebbi zh feladatok. Intelligens orvosi műszerek október 2.

Gyakorló többnyire régebbi zh feladatok. Intelligens orvosi műszerek október 2. Gyakorló többnyire régebbi zh feladatok Intelligens orvosi műszerek 2018. október 2. Régebbi zh feladat - #1 Az ábrán látható két jelet, illetve összegüket mozgóablak mediánszűréssel szűrjük egy 11 pontos

Részletesebben

Erősítő tanfolyam Keverők és előerősítők

Erősítő tanfolyam Keverők és előerősítők Erősítő tanfolyam Keverők és előerősítők Hol tartunk? Mikrofon Gitár Dob Keverő Végfok Mi az a keverő? Elektronikus eszköz Audio jelek átalakítása, majd keverése Csatornák erősítése (Hangszínszabályozás)

Részletesebben

Wavelet transzformáció

Wavelet transzformáció 1 Wavelet transzformáció Más felbontás: Walsh, Haar, wavelet alapok! Eddig: amplitúdó vagy frekvencia leírás: Pl. egy rövid, Dirac-delta jellegű impulzus Fourier-transzformált: nagyon sok, kb. ugyanolyan

Részletesebben

1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói

1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói 1. Jelgenerálás, megjelenítés, jelfeldolgozás alapfunkciói FELADAT Készítsen egy olyan tömböt, amelynek az elemeit egy START gomb megnyomásakor feltölt a program 1 periódusnyi szinuszosan változó értékekkel.

Részletesebben

Jelkondicionálás. Elvezetés. a bioelektromos jelek kis amplitúdójúak. extracelluláris spike: néhányszor 10 uv. EEG hajas fejbőrről: max 50 uv

Jelkondicionálás. Elvezetés. a bioelektromos jelek kis amplitúdójúak. extracelluláris spike: néhányszor 10 uv. EEG hajas fejbőrről: max 50 uv Jelkondicionálás Elvezetés 2/12 a bioelektromos jelek kis amplitúdójúak extracelluláris spike: néhányszor 10 uv EEG hajas fejbőrről: max 50 uv EKG: 1 mv membránpotenciál: max. 100 mv az amplitúdó növelésére,

Részletesebben

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék

Programozás alapjai 9. előadás. Wagner György Általános Informatikai Tanszék 9. előadás Wagner György Általános Informatikai Tanszék Leszámoló rendezés Elve: a rendezett listában a j-ik kulcs pontosan j-1 kulcsnál lesz nagyobb. (Ezért ha egy kulcsról tudjuk, hogy 27 másiknál nagyobb,

Részletesebben

Elektromos nagybıgı megvalósítása DSP-vel

Elektromos nagybıgı megvalósítása DSP-vel Budapesti Mőszaki és Gazdaságtudományi Egyetem Gyurász Gábor Tamás Elektromos nagybıgı megvalósítása DSP-vel MSc. Önálló laboratórium II. beszámoló Konzulensek: dr. Bank Balázs Lajos Orosz György Problémafelvetés

Részletesebben

Analóg elektronika - laboratóriumi gyakorlatok

Analóg elektronika - laboratóriumi gyakorlatok Analóg elektronika - laboratóriumi gyakorlatok. Passzív alkatrészek és passzív áramkörök. Elmélet A passzív elektronikai alkatrészek elméleti ismertetése az. prezentációban található. A 2. prezentáció

Részletesebben

A gyakorlat célja a fehér és a színes zaj bemutatása.

A gyakorlat célja a fehér és a színes zaj bemutatása. A gyakorlat célja a fehér és a színes zaj bemutatása. 1.@. FFT begyakorlása n = [:9]; % Harminc minta x = cos(*pi*n/1); % 1 mintát veszünk periodusonként N1 = 64; % Három módon számoljuk az FFT-t N = 18;

Részletesebben

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI

I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI I. A DIGITÁLIS ÁRAMKÖRÖK ELMÉLETI ALAPJAI 1 A digitális áramkörökre is érvényesek a villamosságtanból ismert Ohm törvény és a Kirchhoff törvények, de az elemzés és a tervezés rendszerint nem ezekre épül.

Részletesebben

Fourier transzformáció

Fourier transzformáció a Matematika mérnököknek II. című tárgyhoz Fourier transzformáció Fourier transzformáció, heurisztika Tekintsük egy 2L szerint periodikus függvény Fourier sorát: f (x) = a 0 2 + ( ( nπ ) ( nπ )) a n cos

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

Részletesebben

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( )

Alap-ötlet: Karl Friedrich Gauss ( ) valószínűségszámítási háttér: Andrej Markov ( ) Budapesti Műszaki és Gazdaságtudományi Egyetem Gépészmérnöki Kar Hidrodinamikai Rendszerek Tanszék, Budapest, Műegyetem rkp. 3. D ép. 334. Tel: 463-6-80 Fa: 463-30-9 http://www.vizgep.bme.hu Alap-ötlet:

Részletesebben

Matematika. 1. osztály. 2. osztály

Matematika. 1. osztály. 2. osztály Matematika 1. osztály - képes halmazokat összehasonlítani az elemek száma szerint, halmazt alkotni; - képes állítások igazságtartalmának eldöntésére, állításokat megfogalmazni; - halmazok elemeit összehasonlítja,

Részletesebben

Milyen elvi mérési és számítási módszerrel lehet a Thevenin helyettesítő kép elemeit meghatározni?

Milyen elvi mérési és számítási módszerrel lehet a Thevenin helyettesítő kép elemeit meghatározni? 1. mérés Definiálja a korrekciót! Definiálja a mérés eredményét metrológiailag helyes formában! Definiálja a relatív formában megadott mérési hibát! Definiálja a rendszeres hibát! Definiálja a véletlen

Részletesebben

Digitális jelfeldolgozás

Digitális jelfeldolgozás Digitális jelfeldolgozás Kvantálás Magyar Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék magyar.attila@virt.uni-pannon.hu 2010. szeptember 15. Áttekintés

Részletesebben

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI

FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI FEGYVERNEKI SÁNDOR, Valószínűség-sZÁMÍTÁs És MATEMATIKAI statisztika 10 X. SZIMULÁCIÓ 1. VÉLETLEN számok A véletlen számok fontos szerepet játszanak a véletlen helyzetek generálásában (pénzérme, dobókocka,

Részletesebben

Hangtechnika. Médiatechnológus asszisztens

Hangtechnika. Médiatechnológus asszisztens Vázlat 3. Előadás - alapjai Pécsi Tudományegyetem, Pollack Mihály Műszaki Kar Műszaki Informatika és Villamos Intézet Műszaki Informatika Tanszék Ismétlés Vázlat I.rész: Ismétlés II.rész: A digitális Jelfeldolgozás

Részletesebben

Mérési hibák 2006.10.04. 1

Mérési hibák 2006.10.04. 1 Mérési hibák 2006.10.04. 1 Mérés jel- és rendszerelméleti modellje Mérési hibák_labor/2 Mérési hibák mérési hiba: a meghatározandó értékre a mérés során kapott eredmény és ideális értéke közötti különbség

Részletesebben

A fejlesztés várt eredményei a 1. évfolyam végén

A fejlesztés várt eredményei a 1. évfolyam végén A tanuló legyen képes: A fejlesztés várt eredményei a 1. évfolyam végén - Halmazalkotásra, összehasonlításra az elemek száma szerint; - Állítások igazságtartalmának eldöntésére, állítások megfogalmazására;

Részletesebben

Laboratórium mérés Házi feladat. Készítette: Koszó Norbert (GTPL3A) Második (javított) kiadás

Laboratórium mérés Házi feladat. Készítette: Koszó Norbert (GTPL3A) Második (javított) kiadás Laboratórium 1. 4. mérés Házi feladat Készítette: Koszó Norbert (GTPL3A) Második (javított) kiadás 4. mérés Koszó Norbert (GTPL3A) Feladat 1. Adott egy diszkrét jel mintasorozata. A mintavételi idő t

Részletesebben

Az Informatika Elméleti Alapjai

Az Informatika Elméleti Alapjai Az Informatika Elméleti Alapjai dr. Kutor László Jelek típusai Átalakítás az analóg és digitális rendszerek között http://mobil.nik.bmf.hu/tantargyak/iea.html Felhasználónév: iea Jelszó: IEA07 IEA 3/1

Részletesebben

Méréselmélet és mérőrendszerek 2. ELŐADÁS (1. RÉSZ)

Méréselmélet és mérőrendszerek 2. ELŐADÁS (1. RÉSZ) Méréselmélet és mérőrendszerek 2. ELŐADÁS (1. RÉSZ) KÉSZÍTETTE: DR. FÜVESI VIKTOR 2016. 10. Mai témáink o A hiba fogalma o Méréshatár és mérési tartomány M é r é s i h i b a o A hiba megadása o A hiba

Részletesebben

Mintavétel: szorzás az idő tartományban

Mintavétel: szorzás az idő tartományban 1 Mintavételi törvény AD átalakítók + sávlimitált jel τ időközönként mintavétel Mintavétel: szorzás az idő tartományban 1/τ körfrekvenciánként ismétlődik - konvolúció a frekvenciatérben. 2 Nem fednek át:

Részletesebben

Orvosi Fizika és Statisztika

Orvosi Fizika és Statisztika Orvosi Fizika és Statisztika Szegedi Tudományegyetem Általános Orvostudományi Kar Természettudományi és Informatikai Kar Orvosi Fizikai és Orvosi Informatikai Intézet www.szote.u-szeged.hu/dmi Orvosi fizika

Részletesebben

1. ábra a függvénygenerátorok általános blokkvázlata

1. ábra a függvénygenerátorok általános blokkvázlata A függvénygenerátorok nemszinuszos jelekből állítanak elő kváziszinuszos jelet. Nemszinuszos jel lehet pl. a négyszögjel, a háromszögjel és a fűrészjel is. Ilyen típusú jeleket az úgynevezett relaxációs

Részletesebben

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban OpenCL alapú eszközök verifikációja és validációja a gyakorlatban Fekete Tamás 2015. December 3. Szoftver verifikáció és validáció tantárgy Áttekintés Miért és mennyire fontos a megfelelő validáció és

Részletesebben

Modern Fizika Labor. 5. ESR (Elektronspin rezonancia) Fizika BSc. A mérés dátuma: okt. 25. A mérés száma és címe: Értékelés:

Modern Fizika Labor. 5. ESR (Elektronspin rezonancia) Fizika BSc. A mérés dátuma: okt. 25. A mérés száma és címe: Értékelés: Modern Fizika Labor Fizika BSc A mérés dátuma: 2011. okt. 25. A mérés száma és címe: 5. ESR (Elektronspin rezonancia) Értékelés: A beadás dátuma: 2011. nov. 16. A mérést végezte: Szőke Kálmán Benjamin

Részletesebben

1. Metrológiai alapfogalmak. 2. Egységrendszerek. 2.0 verzió

1. Metrológiai alapfogalmak. 2. Egységrendszerek. 2.0 verzió Mérés és adatgyűjtés - Kérdések 2.0 verzió Megjegyzés: ezek a kérdések a felkészülést szolgálják, nem ezek lesznek a vizsgán. Ha valaki a felkészülése alapján önállóan válaszolni tud ezekre a kérdésekre,

Részletesebben

Következõ: Lineáris rendszerek jellemzõi és vizsgálatuk. Jelfeldolgozás. Lineáris rendszerek jellemzõi és vizsgálatuk

Következõ: Lineáris rendszerek jellemzõi és vizsgálatuk. Jelfeldolgozás. Lineáris rendszerek jellemzõi és vizsgálatuk 1 1 Következõ: Lineáris rendszerek jellemzõi és vizsgálatuk Jelfeldolgozás 1 Lineáris rendszerek jellemzõi és vizsgálatuk 2 Bevezetés 5 Kérdések, feladatok 6 Fourier sorok, Fourier transzformáció 7 Jelek

Részletesebben

Szinkronizmusból való kiesés elleni védelmi funkció

Szinkronizmusból való kiesés elleni védelmi funkció Budapest, 2011. december Szinkronizmusból való kiesés elleni védelmi funkció Szinkronizmusból való kiesés elleni védelmi funkciót főleg szinkron generátorokhoz alkalmaznak. Ha a generátor kiesik a szinkronizmusból,

Részletesebben

7. fejezet: Mutatók és tömbök

7. fejezet: Mutatók és tömbök 7. fejezet: Mutatók és tömbök Minden komolyabb programozási nyelvben vannak tömbök, amelyek gondos kezekben komoly fegyvert jelenthetnek. Először is tanuljunk meg tömböt deklarálni! //Tömbök használata

Részletesebben

Elektronika Előadás. Modulátorok, demodulátorok, lock-in erősítők

Elektronika Előadás. Modulátorok, demodulátorok, lock-in erősítők Elektronika 2 10. Előadás Modulátorok, demodulátorok, lock-in erősítők Irodalom - Megyeri János: Analóg elektronika, Tankönyvkiadó, 1990 - U. Tiecze, Ch. Schenk: Analóg és digitális áramkörök, Műszaki

Részletesebben

ADAT- ÉS INFORMÁCIÓFELDOLGOZÁS

ADAT- ÉS INFORMÁCIÓFELDOLGOZÁS ADAT- ÉS INFORMÁCIÓFELDOLGOZÁS Földtudományi mérnöki MSc mesterszak 2018/19 I. félév TANTÁRGYI KOMMUNIKÁCIÓS DOSSZIÉ Miskolci Egyetem Műszaki Földtudományi Kar Geofizikai és Térinformatikai Intézet A tantárgy

Részletesebben

Méréselmélet és mérőrendszerek

Méréselmélet és mérőrendszerek Méréselmélet és mérőrendszerek 6. ELŐADÁS KÉSZÍTETTE: DR. FÜVESI VIKTOR 2016. 10. Mai témáink o A hiba fogalma o Méréshatár és mérési tartomány M é r é s i h i b a o A hiba megadása o A hiba eredete o

Részletesebben

Gauss-Seidel iteráció

Gauss-Seidel iteráció Közelítő és szimbolikus számítások 5. gyakorlat Iterációs módszerek: Jacobi és Gauss-Seidel iteráció Készítette: Gelle Kitti Csendes Tibor Somogyi Viktor London András Deák Gábor jegyzetei alapján 1 ITERÁCIÓS

Részletesebben

4. Fejezet : Az egész számok (integer) ábrázolása

4. Fejezet : Az egész számok (integer) ábrázolása 4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson

Részletesebben

Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén

Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén Matematikai modellek, I. kisprojekt Gibbs-jelenség viselkedésének vizsgálata egyszer négyszögjel esetén Unger amás István B.Sc. szakos matematikus hallgató ungert@maxwell.sze.hu, http://maxwell.sze.hu/~ungert

Részletesebben

BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011.

BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011. BAGME11NNF Munkavédelmi mérnökasszisztens Galla Jánosné, 2011. 1 Mérési hibák súlya és szerepe a mérési eredményben A mérési hibák csoportosítása A hiba rendűsége Mérési bizonytalanság Standard és kiterjesztett

Részletesebben

Jelgenerálás virtuális eszközökkel. LabVIEW 7.1

Jelgenerálás virtuális eszközökkel. LabVIEW 7.1 Jelgenerálás virtuális eszközökkel (mágneses hiszterézis mérése) LabVIEW 7.1 3. előadás Dr. Iványi Miklósné, egyetemi tanár LabVIEW-7.1 EA-3/1 Folytonos idejű jelek diszkrét idejű mérése A mintavételezési

Részletesebben

illetve, mivel előjelét a elnyeli, a szinuszból pedig kiemelhető: = " 3. = + " 2 = " 2 % &' + +

illetve, mivel előjelét a elnyeli, a szinuszból pedig kiemelhető: =  3. = +  2 =  2 % &' + + DFT 1. oldal A Fourier-sorfejtés szerint minden periodikus jel egyértelműen felírható különböző amplitúdójú és fázisú szinusz és koszinusz jelek összegeként: = + + 1. ahol az együtthatók, szintén a definíció

Részletesebben

Iványi László ARM programozás. Szabó Béla 6. Óra ADC és DAC elmélete és használata

Iványi László ARM programozás. Szabó Béla 6. Óra ADC és DAC elmélete és használata ARM programozás 6. Óra ADC és DAC elmélete és használata Iványi László ivanyi.laszlo@stud.uni-obuda.hu Szabó Béla szabo.bela@stud.uni-obuda.hu Mi az ADC? ADC -> Analog Digital Converter Analóg jelek mintavételezéssel

Részletesebben

10.1. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ

10.1. ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ 101 ANALÓG JELEK ILLESZTÉSE DIGITÁLIS ESZKÖZÖKHÖZ Ma az analóg jelek feldolgozása (is) mindinkább digitális eszközökkel történik A feldolgozás előtt az analóg jeleket digitalizálni kell Rendszerint az

Részletesebben

Mérés 3 - Ellenörzö mérés - 5. Alakítsunk A-t meg D-t oda-vissza (A/D, D/A átlakító)

Mérés 3 - Ellenörzö mérés - 5. Alakítsunk A-t meg D-t oda-vissza (A/D, D/A átlakító) Mérés 3 - Ellenörzö mérés - 5. Alakítsunk A-t meg D-t oda-vissza (A/D, D/A átlakító) 1. A D/A átalakító erısítési hibája és beállása Mérje meg a D/A átalakító erısítési hibáját! A hibát százalékban adja

Részletesebben

ANTAL Margit. Sapientia - Erdélyi Magyar Tudományegyetem. Jelfeldolgozás. ANTAL Margit. Adminisztratív. Bevezetés. Matematikai alapismeretek.

ANTAL Margit. Sapientia - Erdélyi Magyar Tudományegyetem. Jelfeldolgozás. ANTAL Margit. Adminisztratív. Bevezetés. Matematikai alapismeretek. Jelfeldolgozás 1. Sapientia - Erdélyi Magyar Tudományegyetem 2007 és jeleket generáló és jeleket generáló és jeleket generáló Gyakorlatok - MATLAB (OCTAVE) (50%) Írásbeli vizsga (50%) és jeleket generáló

Részletesebben

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA

Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA SZDT-03 p. 1/24 Számítógépes döntéstámogatás OPTIMALIZÁLÁSI FELADATOK A SOLVER HASZNÁLATA Werner Ágnes Villamosmérnöki és Információs Rendszerek Tanszék e-mail: werner.agnes@virt.uni-pannon.hu Előadás

Részletesebben

Digitális Fourier-analizátorok (DFT - FFT)

Digitális Fourier-analizátorok (DFT - FFT) 6 Digitális Fourier-analizátoro (DFT - FFT) Eze az analizátoro digitális műödésűe és a Fourier-transzformálás elvén alapulna. A digitális Fourier analizátoro a folytonos időfüggvény mintavételezett jeleit

Részletesebben

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával.

Jelek és rendszerek Gyakorlat_02. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával. A gyakorlat célja megismerkedni a MATLAB Simulink mőködésével, filozófiájával. A Szimulink programcsomag rendszerek analóg számítógépes modelljének szimulálására alkalmas grafikus programcsomag. Egy SIMULINK

Részletesebben

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor 12. előadás Egyenletrendszerek, mátrixok Dr. Szörényi Miklós, Dr. Kallós Gábor 2015 2016 1 Tartalom Matematikai alapok Vektorok és mátrixok megadása Tömbkonstansok Lineáris műveletek Mátrixok szorzása

Részletesebben

Analóg-digitál átalakítók (A/D konverterek)

Analóg-digitál átalakítók (A/D konverterek) 9. Laboratóriumi gyakorlat Analóg-digitál átalakítók (A/D konverterek) 1. A gyakorlat célja: Bemutatjuk egy sorozatos közelítés elvén működő A/D átalakító tömbvázlatát és elvi kapcsolási rajzát. Tanulmányozzuk

Részletesebben

Fourier-sorfejtés vizsgálata Négyszögjel sorfejtése, átviteli vizsgálata

Fourier-sorfejtés vizsgálata Négyszögjel sorfejtése, átviteli vizsgálata Fourier-sorfejtés vizsgálata Négyszögjel sorfejtése, átviteli vizsgálata Reichardt, András 27. szeptember 2. 2 / 5 NDSM Komplex alak U C k = T (T ) ahol ω = 2π T, k módusindex. Időfüggvény előállítása

Részletesebben

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET

KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KAR HÍRADÁSTECHNIKA INTÉZET Infokommunikációs Hálózatok laboratóriumi mérési útmutató HW3 mérés Splitter átviteli karakterisztikájának fölvétele különböző mérési módszerekkel

Részletesebben

Grafikus folyamatmonitorizálás

Grafikus folyamatmonitorizálás Grafikus folyamatmonitorizálás 1. A gyakorlat célja Ipari folyamatok irányítását megvalósító program alapjának megismerése, fejlesztése, lassú folyamatok grafikus monitorizálásának megvalósítása. 2. Elméleti

Részletesebben

5. mérés: Diszkrét Fourier Transzformáció (DFT), Gyors Fourier Transzformáció (FFT), számítógépes jelanalízis

5. mérés: Diszkrét Fourier Transzformáció (DFT), Gyors Fourier Transzformáció (FFT), számítógépes jelanalízis Híradástechnika II. laboratóriumi mérések 5. mérés: Diszkrét Fourier Transzformáció (DFT), Gyors Fourier Transzformáció (FFT), számítógépes jelanalízis Összeállította: Kármán József Általános bevezet Az

Részletesebben

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban

Intelligens Rendszerek Elmélete. Versengéses és önszervező tanulás neurális hálózatokban Intelligens Rendszerek Elmélete : dr. Kutor László Versengéses és önszervező tanulás neurális hálózatokban http://mobil.nik.bmf.hu/tantargyak/ire.html Login név: ire jelszó: IRE07 IRE 9/1 Processzor Versengéses

Részletesebben

CSAPADÉK ÉS TALAJVÍZSZINT ÉRTÉKEK SPEKTRÁLIS ELEMZÉSE A MEZŐKERESZTES-I ADATOK ALAPJÁN*

CSAPADÉK ÉS TALAJVÍZSZINT ÉRTÉKEK SPEKTRÁLIS ELEMZÉSE A MEZŐKERESZTES-I ADATOK ALAPJÁN* A Miskolci Egyetem Közleménye A sorozat, Bányászat, 66. kötet, (2004) p. 103-108 CSAPADÉK ÉS TALAJVÍZSZINT ÉRTÉKEK SPEKTRÁLIS ELEMZÉSE A MEZŐKERESZTES-I ADATOK ALAPJÁN* Dr.h.c.mult. Dr. Kovács Ferenc az

Részletesebben

Akusztikus MEMS szenzor vizsgálata. Sós Bence JB2BP7

Akusztikus MEMS szenzor vizsgálata. Sós Bence JB2BP7 Akusztikus MEMS szenzor vizsgálata Sós Bence JB2BP7 Tartalom MEMS mikrofon felépítése és típusai A PDM jel Kinyerhető információ CIC szűrő Mérési tapasztalatok. Konklúzió MEMS (MicroElectrical-Mechanical

Részletesebben

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

A Szekszárdi I. Béla Gimnázium Helyi Tanterve A Szekszárdi I. Béla Gimnázium Helyi Tanterve Négy évfolyamos gimnázium Informatika Készítette: a gimnázium reál munkaközössége 2015. Tartalomjegyzék Alapvetés...3 Egyéb kötelező direktívák:...6 Informatika

Részletesebben

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR LabVIEW-ról National Instruments (NI) által fejlesztett Grafikus programfejlesztő környezet, méréstechnikai, vezérlési, jelfeldolgozási feladatok

Részletesebben

Brüel & Kjaer 2238 Mediátor zajszintmérő

Brüel & Kjaer 2238 Mediátor zajszintmérő Brüel & Kjaer 2238 Mediátor zajszintmérő A leírást készítette: Deákvári József, intézeti mérnök Az FVM MGI zajszintméréseihez a Brüel & Kjaer gyártmányú 2238 Mediátor zajszintmérőt és frekvenciaanalizálót

Részletesebben

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez Sándor Tamás, sandor.tamas@kvk.bmf.hu Takács Gergely, takacs.gergo@kvk.bmf.hu Lektorálta: dr. Schuster György PhD, hal@k2.jozsef.kando.hu

Részletesebben

Számítógépes Grafika SZIE YMÉK

Számítógépes Grafika SZIE YMÉK Számítógépes Grafika SZIE YMÉK Analóg - digitális Analóg: a jel értelmezési tartománya (idő), és az értékkészletes is folytonos (pl. hang, fény) Diszkrét idejű: az értelmezési tartomány diszkrét (pl. a

Részletesebben

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének

6. Függvények. Legyen függvény és nem üreshalmaz. A függvényt az f K-ra való kiterjesztésének 6. Függvények I. Elméleti összefoglaló A függvény fogalma, értelmezési tartomány, képhalmaz, értékkészlet Legyen az A és B halmaz egyike sem üreshalmaz. Ha az A halmaz minden egyes eleméhez hozzárendeljük

Részletesebben

A digitális analóg és az analóg digitális átalakító áramkör

A digitális analóg és az analóg digitális átalakító áramkör A digitális analóg és az analóg digitális átalakító áramkör I. rész Bevezetésként tisztázzuk a címben szereplő két fogalmat. A számítástechnikai kislexikon a következőképpen fogalmaz: digitális jel: olyan

Részletesebben

Beszédinformációs rendszerek 5. gyakorlat Mintavételezés, kvantálás, beszédkódolás. Csapó Tamás Gábor

Beszédinformációs rendszerek 5. gyakorlat Mintavételezés, kvantálás, beszédkódolás. Csapó Tamás Gábor Beszédinformációs rendszerek 5. gyakorlat Mintavételezés, kvantálás, beszédkódolás Csapó Tamás Gábor 2016/2017 ősz MINTAVÉTELEZÉS 2 1. Egy 6 khz-es szinusz jelet szűrés nélkül mintavételezünk

Részletesebben

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei

Gauss-Jordan módszer Legkisebb négyzetek módszere, egyenes LNM, polinom LNM, függvény. Lineáris algebra numerikus módszerei A Gauss-Jordan elimináció, mátrixinvertálás Gauss-Jordan módszer Ugyanazzal a technikával, mint ahogy a k-adik oszlopban az a kk alatti elemeket kinulláztuk, a fölötte lévő elemeket is zérussá lehet tenni.

Részletesebben

Maple: Deriváltak és a függvény nevezetes pontjai

Maple: Deriváltak és a függvény nevezetes pontjai Maple: Deriváltak és a függvény nevezetes pontjai Bevezető Tudjuk, hogy a Maple könnyűszerrel képes végrehajtani a szimbólikus matematikai számításokat, ezért a Maple egy ideális program differenciál-

Részletesebben

Képrestauráció Képhelyreállítás

Képrestauráció Képhelyreállítás Képrestauráció Képhelyreállítás Képrestauráció - A képrestauráció az a folyamat mellyel a sérült képből eltávolítjuk a degradációt, eredményképpen pedig az eredetihez minél közelebbi képet szeretnénk kapni

Részletesebben

RC tag mérési jegyz könyv

RC tag mérési jegyz könyv RC tag mérési jegyz könyv Mérést végezte: Csutak Balázs, Farkas Viktória Mérés helye és ideje: ITK 320. terem, 2016.03.09 A mérés célja: Az ELVIS próbapanel és az ELVIS m szerek használatának elsajátítása,

Részletesebben