Demo convolutie
Demo convolutie
Misschien is het goed om een simpel voorbeeldje te geven van de convolutie van twee signalen en hoe je dat met WaveWizard realiseert.
Ik maak een enkelvoudige echo, zoals een bosrand ("hoe heet de koning van Wezel?").
Stap 1.
Open een wav-bestand.
Er komt nu geluid te staan op spoor S1 en, als de wav stereo is, ook op S2.
Stap 2.
S2 en S3 hebben we nodig voor dit echo-effect en moeten dus worden gewist:
Code:
Wis buffers
Wis buffer (F1...F32, S1, S2, S3) S2 | S3
De pulsrespons is het geluid dat je hoort als je ergens een tik tegenaan geeft (bijv. vioolbouwer tikt op bovenblad viool om de klankkleur te bepalen). Een ander voorbeeld van een pulsrespons is de galm die je hoort als je een ballonnetje doorprikt in een concertzaal.
Een echo-effect heeft een pulsrespons die bestaat uit twee pulsen: de eerste representeert het directe geluid, de tweede de echo.
Op S3 komt de output; we noemen S3 de convolutie van S1 met S2, dus van het inputgeluid met de pulsrespons.
Stap 3.
De echo-tijd geven we op als een variabele die we E1 noemen.
Daarvoor "declareren" we E1; WaveWizard snapt dan dat E1 een getal is dat elke waarde kan aannemen.
Stap 4.
Stel dat de echo 0,1 sec volgt op het directe geluid.
Druk de echo-tijd E1 uit in aantal samples.
Er gaan Fs (= sampling frequentie) samples in 1 seconde.
Fs is ingesteld op 44100.
Code:
E1 = 0,1*Fs ! E1 is dus een echotijd van 4410 samples
Stap 5.
Maak de pulsrespons van dit echo-effect op spoor S2.
Neem aan dat de echo twee keer zo zacht klinkt als het directe geluid.
De pulsrespons bestaat dan uit twee pulsen:
puls (1) is het directe geluid, sterkte 1;
puls (2) is de echo, sterkte 0,5.
Code:
S2[0] = 1 ! volume van directe geluid
S2[E1] = 0,5 ! volume van echo
De pulsrespons op S2 noemen we hieronder de filtercoëfficiënten (coef's)
Stap 6.
Doe de convolutie van S1 (bron) met S2 (filter) en zet resultaat op S3:
Bij M geef je het aantal filtercoëfficiënten op. Dat zijn er in dit geval net zoveel als de duur van de pulsrespons, E1 = 4410.
Code:
FIR-filter
Input S1[0]
Output S3[0]
coef's S2[0]
M E1
Duur (ook 'sec') 14*Fs ! duur van wav is 14 sec
Additief ('j' of 'n') n
In de preset hieronder vind je alle code bij elkaar:
Code:
Declareer E1
Wis buffers
Wis buffer (F1...F32, S1, S2, S3) S2 | S3
E1 = 0,1*Fs ! echotijd 4410 samples
S2[0] = 1 ! volume directe geluid
S2[E1] = 0,5 ! volume echo
FIR-filter
Input S1[0]
Output S3[0]
coef's S2[0]
M E1
Duur (ook 'sec') 14*Fs
Additief ('j' of 'n') n