Hangszintézis Mérési segédlet Hangtechnikai Laboratórium 2. Budapesti Műszaki és Gazdaságtudományi Egyetem Híradástechnikai Tanszék

Hasonló dokumentumok
Hangtechnika. Médiatechnológus asszisztens

FIR és IIR szűrők tervezése digitális jelfeldolgozás területén

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

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

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

Wavelet transzformáció

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

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

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 9. SZŰRŐK

π π A vivőhullám jelalakja (2. ábra) A vivőhullám periódusideje T amplitudója A az impulzus szélessége szögfokban 2p. 2p [ ]

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

A gyakorlat célja a szűrők viselkedésének elemzése, vizsgálata 2.

Számítógépes gyakorlat MATLAB, Control System Toolbox

FIR szűrők tervezése

3.18. DIGITÁLIS JELFELDOLGOZÁS

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

Analóg elektronika - laboratóriumi gyakorlatok

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 0. TANTÁRGY ISMERTETŐ

BMF, Kandó Kálmán Villamosmérnöki Kar, Híradástechnika Intézet. Aktív Szűrő Mérése - Mérési Útmutató

Mérési útmutató. Széchenyi István Egyetem Távközlési Tanszék. SDR rendszer vizsgálata. Labor gyakorlat 1 (NGB_TA009_1) laboratóriumi gyakorlathoz

Digitális jelfeldolgozás

Digitális jelfeldolgozás

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

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

Alapvető Radar Mérések LeCroy oszcilloszkópokkal Radar impulzusok demodulálása és mérése

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

Bevezetés a méréstechnikába és jelfeldolgozásba 7. mérés RC tag Bartha András, Dobránszky Márk

A Matlab Home címkéje alatt a File szekcióban található a New gomb. Erre klikkelve a felugró lehetőségek közül válasszuk a Script lehetőséget.

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

Kompenzációs kör vizsgálata. LabVIEW előadás

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

Szűrő architektúrák FPGA realizációjának vizsgálata

2. Elméleti összefoglaló

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

OFDM-jelek előállítása, tulajdonságai és méréstechnikája

Idő-frekvencia transzformációk waveletek

Fehérzajhoz a konstans érték kell - megoldás a digitális szűrő Összegezési súlyok sin x/x szerint (ez akár analóg is lehet!!!)

Analóg elektronika - laboratóriumi gyakorlatok

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

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

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

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

Shift regiszter + XOR kapu: 2 n állapot

ADAT- ÉS INFORMÁCIÓFELDOLGOZÁS

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

5. témakör. Szögmodulációk: Fázis és frekvenciamoduláció FM modulátorok, demodulátorok

A fázismoduláció és frekvenciamoduláció közötti különbség

Műszaki akusztikai mérések. (Oktatási segédlet, készítette: Deák Krisztián)

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

3. témakör. Rendszerek idő, frekvencia-, és komplex frekvenciatartományi leírása

Elektronika Előadás. Analóg és kapcsolt kapacitású szűrők

Passzív és aktív aluláteresztő szűrők

ÁRAMKÖRÖK SZIMULÁCIÓJA

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

É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%.

1. témakör. A hírközlés célja, általános modellje A jelek osztályozása Periodikus jelek leírása időtartományban

Jelfeldolgozás - ANTAL Margit. impulzusválasz. tulajdonságai. Rendszerek. ANTAL Margit. Sapientia - Erdélyi Magyar Tudományegyetem

Jelfeldolgozás bevezető. Témalaboratórium

Mérési jegyzőkönyv 9. mérés

Akusztikai tervezés a geometriai akusztika módszereivel

Teremakusztikai méréstechnika

Orvosi Fizika és Statisztika

Az egységugrás függvény a 0 időpillanatot követően 10 nagyságú jelet ad, valamint K=2. Vizsgáljuk meg a kimenetet:

DR. KOVÁCS ERNŐ MŰVELETI ERŐSÍTŐK MÉRÉSE

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

Nagyfrekvenciás rendszerek elektronikája házi feladat

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:

Idő-frekvencia transzformációk waveletek

Mintavételezés és AD átalakítók

Akusztikus mérőműszerek

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. 6. A MINTAVÉTELI TÖRVÉNY

Digitális szűrő méréshez (DF)

Diszkrét idej rendszerek analízise szinuszos/periodikus állandósult állapotban

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

Az Informatika Elméleti Alapjai

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

Számítógépes gyakorlat Irányítási rendszerek szintézise

MATLAB alapismeretek II.

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

Segédlet a gyakorlati tananyaghoz GEVAU141B, GEVAU188B c. tantárgyakból

Idő-frekvencia transzformációk waveletek

Első egyéni feladat (Minta)

FODOR GYÖRGY JELEK ÉS RENDSZEREK

Mechatronika alapjai házi feladat

Villamosságtan szigorlati tételek

1. ábra A Wien-hidas mérőpanel kapcsolási rajza

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

Fourier transzformáció

Informatika Rendszerek Alapjai

Hangfelvételek automatikus kottázása. Nemes Marcell

Utoljára mentve: BME-MIT, :22:00, sorsz.: 3

Egyenletek, egyenlőtlenségek grafikus megoldása TK. II. kötet 25. old. 3. feladat

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

DTMF Frekvenciák Mérése Mérési Útmutató

Analóg elektronika - laboratóriumi gyakorlatok

A hang mint mechanikai hullám

Négyszög - Háromszög Oszcillátor Mérése Mérési Útmutató

Mérési jegyzőkönyv a 5. mérés A/D és D/A átalakító vizsgálata című laboratóriumi gyakorlatról

Elektromechanikai rendszerek szimulációja

12 48 b Oldjuk meg az Egyenlet munkalapon a következő egyenletrendszert az inverz mátrixos módszer segítségével! Lépések:

Átírás:

Budapesti Műszaki és Gazdaságtudományi Egyetem Híradástechnikai Tanszék Hangszintézis Mérési segédlet Hangtechnikai Laboratórium 2. Írta: Gulyás Krisztián 2009. szeptember 17.

Analízis 1. Bevezető A mérés célja, hogy a hallgatók megismerkedjenek a hangszintézis különböző módszereivel, illetve ezek egyszerű megvalósításait kipróbálják, tanulmányozzák. A mérés során számos különböző, az akusztikához szorosan kapcsolódó, jelfeldolgozási feladatot fogunk megoldani. Ezekhez elsősorban a MATLAB szoftvert fogjuk használni, ezért a feladatok elvégzéséhez annak alapszintű ismerete szükséges. (MATLAB bevezető: [1]) Egy már meglévő hangminta analízise után a Wavetable, additív és szubtraktív szintézis eljárásokat vizsgáljuk. A témakörök végén található feladatok közül a mérőcsoport tagjai más-más feladatokat kapnak, de természetesen együtt is dolgozhatnak. A mérés elején a felkészülést felmérendő egy 5 kérdéses rövid beugrót iratunk. 2. Analízis Az analízis feladata egy már meglévő hangminta elemzése. Ehhez az idő- és frekvenciatartományban egyaránt vizsgálni fogjuk a mintánkat. Az időtartmonányban történő elemzés során megállapíthatjuk a zenei hangminta egyes szakaszait (felfutás, állandósult szakasz,... ). Az állandósult szakasz frekvenciatartománybeli vizsgálatával határozható meg a zenei hangot alkotó harmonikusok frekvenciája és amplitúdója. Végül spektrogram segítségével az idő- és frekvenciatartományt egyszerre ábrázolva követhető az egyes harmonikusok időbeli alakulása. Feladatok 1. Elsőként hozzunk létre egy új mappát (a név utaljon a mérőcsoport nevére) majd ennen egy fájlt analizis.m névvel. Másoljuk át a hangmintát (analizis.wav). A következő feladatokat oldjuk meg, és a megoldást az új létrehozott fájlba kódoljuk le. 2. Olvassuk be a hangmintát a fileból MATLAB segítségével, állapítsuk meg a mintavételi frekvenciát, majd ábrázoljuk a jelet időtartományban, helyes skálázással az időtengelyen. Keressük meg a minta állandósult (vagy jó közelítéssel állandósultnak mondható) szakaszát. 3. Az állandósult szakasz spektrumát ábrázoljuk FFT segítségével. Állapítsuk meg a hang alapharmonikusának frekvenciáját. Milyen pontossággal tudjuk ezt meghatározni és hogyan növelhető ez a pontosság? Milyen zenei hangnak felel meg ez a frekvencia? (Az A4 hanghoz 440 Hz tartozik.) Mik a további harmonikusok frekvenciái? 4. A spectrogram függvény segítségével ábrázoljuk a teljes hangminta spektrogramját. Úgy állítsuk be a paramétereket (idő- és frekvenciatengely felbontása), hogy az érdemi információk leolvashatóak legyenek. Megfelelő paraméterek megadásával állítsunk be helyes skálát mindkét tengelyen. 5. A subplot parancs segítségével jelenítsük meg az időfüggvényt és a spektrogramot egyszerre. Vizsgáljuk meg a hasonlóságokat. A felkészüléshez Ez a mérési feladat az elméletet tekintve főként a DFT-re (Diszkrét Fourier Transzformáció) épít, így az átismétlése jól jöhet. A következő MATLAB utasítások használatára lesz szükség: Hangminta beolvasása: wavread Ábrázolás időtartományban: plot, stem Gyors Fourier transzformáció: fft, részletesen: [3] Spektrogram számítás és kirajzolás: spectrogram 1

Wavetable szintézis Osztott diagram megjelenítés: subplot Ezeknek a függvényeknek a használatáról leírást a MATLAB help-ben lehet találni, ezeket érdemes előre átolvasni, illetve a mérés közben is lehet használni természetesen. help command MATLAB % a command nevu parancs leirasa 3. Wavetable szintézis A Wavetable szintézis során a különböző hangmagasságú hangmintákat egy eredeti minta transzponálásval állítjuk elő. A feladat során az előző feladatban felhsznált mintából fogunk egy rövid dallamot (pl. lehet egy moll akkord) előállítani, melyhez fel és le transzpozíciókat alkalmazunk. Mintavételi frekvencia váltás A transzponálás egyik módja a mintavételi frekvencia megváltoztatása. Ezt a sound utasítással próbálhatjuk ki, amellyel megadott mintavételi frekvenciával játszható le tetszóleges hangminta. Interpoláció Az interpoláció során a jelet úgy transzponáljuk, hogy a mintavételi frekvencia változatlan marad. Ehhez egy hosszabb szakaszt (pl. kétszeres hosszúságút) vágunk ki az eredeti jelből, mint amilyen hosszú mintákra szükségünk lesz. Interpoláljuk a meghosszabított jelet, úgy hogy egy, a kívánt hangamagasságnak megfelelően megválasztott új mintavételi frekvencián számítsuk ki az új mintavételi időpillanatokat (vagyis az időtengelyt nyomjuk össze illetve húzzuk szét), majd határozzuk meg a jel interpolált értékeit (interp1 függvény). Végül a kiszámított értékeket játszuk le az eredeti mintavételi frekvencián. Decimálás, Interpolálás Az újramintavételezés szebb módja az interpoláció és a decimálás. Ekkor egy kiválasztott transzpozícióhoz megfelelő arányú interpolálást majd decimálást kell alkalmaznunk (pl. egy 1, 25-szörös hangmagasság-változtatáshoz 5-szörös interpolációra majd 4-szeres decimálásra van szükség). Vizsgáljuk meg a MATLAB decimate és interp utasításait, majd transzponáljuk a hangjelet egy oktávval feljebb és egy oktávval lejjebb. Az eredeti és a decimált/interpolált jelet ábrázoljuk és hallgassuk meg. Feladatok 1. Hozzunk létre egy új fájlt wavetable.m névvel. Töltsük be az analízisnél már használt hangmintát (analizis.wav). A következő feladatokat oldjuk meg, és a megoldást az új létrehozott fájlba kódoljuk le. 2. A beolvasott mintán próbáljuk ki a fent leírt transzpozíciós technikákat. Az egyes transzpozíciók eredményeit jelenítsük és hallgassuk meg. 3. Interpolációs technikával állítsunk össze egy rövid, néhány hangból álló dallam hangjait (legyen benne az eredetinél magasabb és alacsonyabb hang is), ügyelve arra, hogy az egyes hangmagasságokhoz tartozó minták ugyanolyan hosszúságúak legyenek. Az interpolált minták összefűzésével mentsük el a kialakított dallamot wavetable.wav néven. A felkészüléshez A következő MATLAB utasítások használatára lesz szükség, ezeket olvassuk el a dokumentációban: Interpoláció: interp1 Interpolációs metódusok: pl. nearest, linear, spline 2

Additív szintézis Interpolálás, decimálás: interp, decimate Hangfájl mentése: wavwrite 4. Additív szintézis Az additív szintézis során a hangot megadott frekvenciájú és amplitúdójú szinuszhullámok összegeként állítjuk elő. A feladat során egy egyszerű dallamot fogunk összeállítani, melynek hangjaihoz ADSR burkolót, tremolót (lassú amplitúdómoduláció) és vibrátót (lassú frekvenciamoduláció) fogunk rendelni. Burkológörbe (ADSR) Számos szintetizátor, sampler és más elektronikus hangszer hangkeltési elektronikájának eleme az ADSR burkoló függvény. Szerepe abban áll, hogy modulálja hangszer hangjának tulajdonságait, leggyakrabban annak hangerejét. Egy általános ADSR burkológörbe ([2]) az alábbi paraméterekkel bír: felfutási idő (Attack time, t A ), lecsengési idő (Delay time, t D ), tartási szint (Sustain level, L S ), lecsengési idő (Release time, t R ). Feladatok 1. ábra. Az ADSR burkoló 1. Hozzunk létre egy új fájlt additiv.m névvel. A következő feladatokat oldjuk meg, és a megoldást az új létrehozott fájlba kódoljuk le. 2. Állítsunk elő egy adott hosszúságú, a mérésvezető által megadott frekvenciájú és amplitúdójú harmonikusokból álló hangmintát. Ügyeljünk arra, hogy a jel amplitúdója ne haladja meg az egységet. Ábrázoljuk és hallgassuk meg az előállított mintát. 3. Rendeljünk ehhez a jelhez adott paraméterű ADSR burkolót, majd a burkolóval szorozzuk be a mintát. Az eredményt ismét ábrázoljuk és hallgassuk meg. 4. Adjunk a jelhez tremolót (lassú szinuszos amplitúdómoduláció modulációs frekvencia: 3-7 Hz, modulációs mélység: 0,05-0,15). Ábrázoljuk és hallgassuk meg az eredményt. 5. Adjunk a jelhez vibrátót (lassú szinuszos frekvenciamoduláció modulációs frekvencia: 2-6 Hz, modulációs mélység: 0,01-0,03). Hallgassuk meg az eredményt. 6. Az előző feladatok kombinációjaként állítsunk elő egy rövid dallamot egyszerű ritmussal, majd a dallam egyes hangjaihoz rendeljünk ADSR burkolóbörbét, illetve tremolót és vibrátót variálva. Fűzzük össze a dallamot és mentsük el egy additiv.wav nevű hangfájlba. Hallgassuk meg az eredményt. 3

Szubtraktív szintézis, szűrés A felkészüléshez Érdemes áttekinteni az amplitúdó- és frekvenciamodulációkat, mivel ezek leprogramozása is szükséges a feladat megoldásához. Segítségül: Miben különbözik a frekvencia és fázismoduláció? 5. Szubtraktív szintézis, szűrés A szubtraktív szintézis során egy színes spektrumú jelből szűréssel állítjuk elő a hangmintát. A feladatok során szűrőket fogunk előállítani megadott specifikációk alapján, melyeket az egyes hangmintákon alkalmazunk. Ehhez szükségünk lesz a digitális szűrés alapjainak ismeretére, ezért ezeket tekintsük át először. A digitális szűrők két alaptípusa a véges impulzusválaszú ún. FIR (Finite Impulse Response) és a végtelen impulzusválaszú ún. IIR (Infinite Impulse Response) szűrő. FIR Tegyük fel hogy adottak a bementeti jel késleltetett mintái { x(0) x(1)... x(m 1) } és adott egy N hosszúságú, { b i } együtthatókkal rendelkező FIR szűrő. A FIR szűrő kimenetén a jelet a következőképpen kapjuk ahol y(n) = b i x(n i) = b T x(n), (1) x(n) = [ x(n) x(n 1)... x(n N + 1) ] T, b = [ b 0 b 1... b n N+1 ] T. Vegyük most a (1). egyenlet mindkét oldalának Ztranszformáltját és használjuk ki az eltolási tételt 1 { } Y (z) = Z {y(n)} = Z b i x(n i) = X(z) b i z i. (2) Tehát a FIR szűrő átviteli függvénye a következő W (z) = b i z i. (3) IIR Az IIR szűrő a FIR szűrőtől annyiban különbözik, hogy a kimeneti jelminták súlyozott összegét is a kimeneti jelhez adja (??. ábra). Tehát ha adott az egy N hosszúságú, { } b i bemeneti együtthatókkal és 2. ábra. Az IIR szűrő M hosszűságű { a i } visszacsatolt együtthatókkal rendelkező IIR szűrő akkor annak kimenetén a jelet az alábbiak szerint kapjuk 2 y(n) = 1 Z {x(n i)} = X(z)z i M 1 b i x(n i) + j=1 a j y(n j). (4) 2 Temészetesen a felirás csak akkor korrekt ha a 0 = 1. Ha ez nem áll fenn akkor a 0 értékével a szűrő együtthatókat normálni kell. 4

Szubtraktív szintézis, szűrés Rendezzük át az egyenletet és vegyük mindkét oldal Ztranszformáltját, majd használjuk ki újra az eltolási tételt { M 1 Z y(n) } a j y(n j) = Z b i x(n i), (5) j=1 és írjuk fel az árviteli függvényt M 1 b i z i W (z) = (6) 1 a j z j j=0 FIR szűrő tervezése ablakozással Egyszerű FIR szűrő tervezési algoritmus az ablakozásos szűrőtervezés, melynek lépései a következők: 1. A szűrőkarakterisztika specifikációja. Frekvenciatartományban megadjuk a szűrő átviteli karakterisztikáját. (Ügyeljünk arra, hogy a karakterisztikának szimmetrikusnak kell lennie.) 2. Inverz diszkrét Fourier transzformációval előállítjuk a szűrő impulzusválaszát, majd ezt a kauzalitás megőrzése végett átalakítjuk úgy, hogy az impulzusválasz második fele az első fél elé kerüljön. (Így a tartomány közepére kerül az eredetileg t = 0 időpillanathoz tartozó érték.) 3. Ezután a szűrő fokszámának megfelelő mintát kivágunk az eltolással kapott imulzusválasz közepéből, majd simításként ezt egy ablakfüggvénnyel (pl. Hanning-ablak) beszorozzuk. Ezzel megkapjuk a kauzálissá tett szűrő impulzusválaszát, amely egyben a szűrő együtthatókészlete is. A MATLAB -ban a szűrést legegyszerűbben a filter utasítással lehet elvégezni. A fenti jelöléseket használva MATLAB y = filter(b, a, x); % IIR y = filter(b, [1], x); % FIR A szűrő átviteli függvényének vizsgálatára a freqz utasítás szolgál MATLAB freqz(b, a, 256, whole ); A MATLAB a szűrő tervezést is támogatja, lásd pl. a butter, cheby, fir2 parancsokat. Egy egyszerű aluláteresztő szűrő megtervezéséhez tekintsük a következő példát MATLAB fc = 1000; [b, a] = butter(1, fc/(fs/2)); y = filter(b, a, x); Feladatok 1. Állítsunk elő ablakozásos eljárással egy sávzáró FIR szűrőt adott paraméterekkel, majd alkalmazzuk a szűrőt az additív szintézissel előállított hangmintára. Az eredményt hallgassuk meg! 2. Az előállított sávzáró FIR szűrő inverzeként állítsunk elő egy sáváteresztő szűrőt, amit fehér zajra alkalmazzunk. Hallgassuk meg az eredeti és a megszűrt zajt is. 3. A legszemléletesebb szűrőtervezési eszköz a MATLAB -ban az fdatool amellyel a szűrőtervezés grafikusan számos diagnosztikai eszközzel támogatva hajtható végre. Az fdatool segítségével is állítsuk elő az előbbi feladatok során megtervezett szűrőket. 5

Szubtraktív szintézis, szűrés A felkészüléshez A szűrőtervezéshez a következő MATLAB parancsokat használjuk: Inverz Fourier tarnszformáció: ifft Ablakfüggvény előállítás: window Szűrés: filter Szűrőtervezés: butter, cheby1,... Szűrő analizálás: freqz, fft Szűrő tervező toolbox: fdatool 6

Hivatkozások Tartalomjegyzék 1 Bevezető 1 2 Analízis 1 3 Wavetable szintézis 2 4 Additív szintézis 3 5 Szubtraktív szintézis, szűrés 4 Tartalomjegyzék 6 Hivatkozások 6 Hivatkozások [1] Gulyás Krisztián. Hangtech labor gyakorlatok, matlab bevezető, 2006. [2] Wikipedia. ADSR envelope Wikipedia, The Free Encyclopedia, 2006. [3] Wikipedia. Discrete Fourier transform Wikipedia, The Free Encyclopedia, 2006. 7