In DSP praat je met dubbele tong
In DSP praat je met dubbele tong
Eerder kondigde ik nog een tweede commentaar aan op
zmooc's DSP-in-vogelvlucht , nl over de rol van de FFT voor de analyse van filters.
zmooc:
(
https://www.synthforum.nl/forums/showpost.php?p=1220181&postcount=52)
DSP heeft nog een ander aspect; in plaats van frequenties te manipuleren, kun je ze ook analyseren. De formule die daarvoor wordt gebruikt is ook weer erg complex, maar je komt hem nogal eens tegen: de (Fast) Fourier Analyse (FFT). Die gebruik je bijvoorbeeld in een digitale spectrum analyser, maar het wordt bijvoorbeeld ook in een mp3-encoder gedaan. Voor synthesizers is dat echter wat minder interessant, hoewel het waarschijnlijk wel toegepast wordt bij timestretchen van samples e.d.
tijd en frequentie
Als je effectief wilt praten over geluid (en trouwens alle andere trillingsverschijnselen) dan doe je dat altijd met "dubbele tong": je spreekt zowel in termen van
tijd als in termen van
frequentie. Waarom dit zo is, wordt uitgelegd in (o jee daar ga ik weer) de
gratis te downloaden NLT-module Sound Design, hoofdstuk 1 en 2.
Kort samengevat: als je het hebt over een synth-filter-effect, dan praat je in termen van
frequenties en
klankkleur. Je zegt bijvoorbeeld dat een filter
laagdoorlatend is, d.w.z. dat de lage frequenties worden doorgelaten. Daardoor klinkt het gefilterde geluid
doffer - en met dat laatste bedoel je dan een
klankkleur-verandering.
Maar als je het hebt over een
echo, dan bedoel je duidelijk een
tijd-effect, want de echo begint iets
later dan het directe geluid. Je spreekt dus bij verschillende geluids-effecten de ene keer in termen van frequenties en de andere keer in termen van tijd.
differentievergelijking is: praten in termen van tijd
Als je nu gaat kijken naar de wiskundige beschrijvingen van een laagdoorlaatfilter en een echo-effect, dan doe je een nogal bizarre ontdekking: beiden kun je realiseren door exact dezelfde soort formules. Die zijn we hierboven al tegengekomen:
differentievergelijkingen.
In DSP-jargon noemen ze zo'n differentievergelijking de
tijd-domeinbeschrijving van een filter. Dat kun je ook direct aan de formules zien.
Twee voorbeelden:
zmooc:
output = 0.33*inputsample + 0.33*vorige_inputsample + 0.33*inputsample_daarvoor
Woorden als
vorige_inputsample en
inputsample_daarvoor duiden op de tijd.
In de vergelijking:
S2[n] = C*S1[n] + A*S2[n-1] + B*S2[n-2]
gebeurt precies hetzelfde. Hier staat
n voor het sample-rangnummer (zie plaatje
https://www.synthforum.nl/forums/showpost.php?p=1215608&postcount=12)
Dus met
n-1 wordt exact hetzelfde bedoeld als met
vorige_inputsample. En dan is
n-2 hetzelfde als
inputsample_daarvoor. (Pas op: er is ook een groot
verschil tussen filters: de eerste is FIR en de laatste is IIR, zie
hier ).
amplitudekarakteristiek: praten in termen van frequentie
Nu maken we even een sprong en zoeken op Synthwiki naar de term
filter. Je vindt het (op dit moment) zelfs op de voorpagina van wiki in "uitgelicht". Terecht, want of je nou praat over "analoog" of "digitaal", het filter is zonder meer de belangrijkste, interessantste, krachtigste, en meest expressieve en universele signaalbewerking!!!
Het plaatje dat er bij staat, kent elke synth-bezitter. Het laat zien wat voor effect het filter heeft op de klank. Wat je hier ziet is een typisch laagdoorlaatfilter: vanaf een zekere frequentie (Cut-off frequency) begint het filter het signaal meer en meer af te zwakken. Merk op dat dit plaatje een "frequentie-plaatje" is; het praat in termen van frequenties. We noemen zo'n afbeelding de
amplitudekarakteristiek van het filter
We hebben nu twee verschillende manieren om de werking van een filter mee aan te geven. De differentievergelijking praat in termen van tijd en geeft een "recept" waarmee je de computer een filterbewerking kunt laten uitvoeren. Maar hoe die bewerking gaat
klinken, daarover vertelt de differentievergelijking niet veel. Is bijvoorbeeld zmooc's filter nu een laagdoorlatend of een hoogdoorlaten filter? Of misschien iets anders?
Aan de andere kant heb je dat plaatje van het klinkend effect van een filter, maar dat zegt weer niks over de berekening die je met samples moet uitvoeren om dit laagdoorlatend effect te krijgen.
Hoe kunnen we nu bijvoorbeeld van zmooc's filter een soortgelijke afbeelding maken als dat filterplaatje op Synthwiki en in beeld brengen hoe de amplitudekarakteristiek eruit ziet?
(I'll be back)