Hangkártyák programozása retro 16.

7.1.2. A Fourier sor exponenciális alakja

Ha felhasználjuk, hogy a trigonometrikus függvények a komplex exponenciális függvénnyel kifejezhetők, a következőkhöz jutunk:

Sin(x)=(1/2j)(ejx-e-jx)

(7.5)

Cos(x)=(1/2)(ejx+e-jx)

(7.6)

Ezek után az (7.1) egyenlet a következő alakban is felírható:

(7.7)

Ha átcsoportosítjuk a szumma alatti tagokat, akkor pedig így:

(7.8)

Ha bevezetjük a harmonikus összetevőkre a

Cn=(an-jbn)/2

(7.9)

komplex amplitúdót, a szumma alatti rész egyszerűbb alakját kapjuk:

(7.10)

ahol a

C-n=Cn* és C0=c0

(7.11)

jelöléseket is használtuk. (* a komplex konjugáltképzés jele).

Ha (7.9)-be behelyettesítjük a (7.3)-(7.4) integrálokat, közvetlenül kiszámolhatjuk a bevezetett komplex amplitúdót:

(7.12)

A fenti egyenlet valós f(t) függvény esetében eleget tesz a Cn=C-n* feltételnek, sőt az n=0 esetben (7.2)-t is kiadja.

Az L hosszúságú periodikus, valós f(x) függvényre a Fourier sor együtthatói:

(7.13)

Az együtthatókból a függvényt így állítjuk vissza:

(7.14)

Hírdetés

Hangkártyák programozása retro 15.

7. Mesterséges hangzás megvalósítása

Elérkeztünk e munka legérdekesebb, ám legnehezebb részéhez. Azt akarjuk, hogy a stúdióban, „steril” körülmények között rögzített hanganyag úgy szóljon, mintha az a kívánt teremben történne. De vajon mit kell mindehhez tennünk?

Először is, ismerjük a termünknek az egyetlen impulzusra adott válaszát, ez lesz a súlyfüggvényünk. Másodszor, ismerjük a stúdióban felvett hanganyagot, ez lesz a gerjesztési függvényünk. A kívánt eredmény elérése érdekében elő kell állítanunk mindkét függvény Fourier transzformáltját, majd az eredményül kapott függvényeket elemenként össze kell szorozni, s ha ez megtörtént, a szorzás eredményének inverz Fourier transzformálásával meg is kapjuk a kívánt eredményt. A fenti folyamat nem más, mint két függvény konvolúciója.

Így igen egyszerűnek tűnik a dolog, de tisztában kell lennünk azzal, hogy a megvalósításhoz komoly matematikai ismeretek szükségesek, amelyeket a következő fejezetekben ismertetetünk [6], illetve [7] alapján.

7.1.1. A Fourier sor

Egy f(t) periodikus időfüggvény felbontható egy konstans tag, valamint végtelen sok szinuszos, koszinuszos időfüggésű összetevő összegére. A periodikus jel T periódusidejének reciproka adja az alapharmonikus frekvenciáját, a további összetevők frekvenciája ezen alapfrekvencia egész többszöröse. Matematikai formában ez a következőképpen írható fel:

(7.1)

Ahol c0 stacionárius egyenáramú összetevőt így kapjuk:

(7.2)

A koszinuszos, illetve szinuszos összetevők amplitúdóját pedig így számolhatjuk:

(7.3)

(7.4)

Egy függvény akkor fejthető Fourier sorba, ha a következő feltételeket teljesíti:

  • f(t) függvény legyen T tartományon belül korlátos,
  • legyen integrálható,
  • legyen legalább szakaszonként differenciálható.

Ha a fenti feltételek teljesülnek, a (7.1) sor az f(t) függvény folytonos pontjain magához a függvényhez, szakadási helyein a bal- és a jobboldali határértékek számtani közepéhez konvergál. A hangfeldolgozásban előforduló függvények mindig megfelelnek az említett feltételeknek. (7.3 ) és (7.4) tanulmányozásával megállapíthatjuk, hogy páratlan f(t) függvény esetén minden an együttható, páros függvényesetén minden bn együttható zérus.

[6]   Székely Vladimír: Képkorrekció, hanganalízis, térszámítás PC-n (Gyors Fourier transzformációs módszerek), Computer Books, Budapest, 1994

[7]   Gyimesi László: Digitális jelfeldolgozás, SZIF-UNIVERSITAS Kft., 1999