Bewerk signaal (5): echo-feedback, Escher, unrealizability
Bewerk signaal (5): echo-feedback, Escher, unrealizability
Aanhakend jouw post #17 van draad Synthese met fase verschuiving:
https://www.synthforum.nl/forums/showpost.php?p=1711293&postcount=17
Feedback is het terugrouten van een signaal en dat kan op verschillende manieren.
Direct terug, omgekeerd direct terug, direct terug met fase verschil en direct terug met fase verschil.
Door gebruik te maken van de Delay module (AllPass filter) en die terug te routen creëer je eigenlijk een soort 'doosje' waarin, in dit geval, audio rondcirkelt.
Ik zet jouw Vier Gevallen nog eens op een rij:
(1) direct terug,
(2) omgekeerd direct terug,
(3) direct terug met fase verschil en
(4) direct terug met fase verschil.
Het gaat hier over Nord Modular, dus over
software die tot doel heeft om zo goed mogelijk de
look and feel te geven van een analoog modulair synthesesysteem. Maar software is en blijft software, dus intern wordt gewerkt met
discrete signalen, d.w.z. signalen die gerepresenteerd worden door getallen. Alle signaalbewerkingen die de modules uitvoeren zijn niets anders dan
berekeningen. We hebben het dus over
Digitale Signaalverwerking: DSP. En juist als het gaat om feedback is het belangrijk om je dat goed te realiseren, want in de gevallen (1) en (2) (dus "direct terug" en "omgekeerd direct terug") stuiten we op een een fundamenteel probleem!
Ook hier zien we een prachtig voorbeeld hoe verhelderend een formule kan werken.
Neem eens de uitdrukking:
a = a + 1
Die kun je op twee verschillende manieren interpreteren:
(1)
als wiskundige vergelijking. Dat is een uitdrukking waarin iets wordt beweerd, nl. dat wat links van het = teken staat gelijk is aan wat rechts staat. Het zal duidelijk zijn dat de bewering a = a + 1 onwaar is, immers een getal kan niet gelijk zijn aan
zichzelf plus 1.
(2)
als computertaal-expressie zul je de uitdrukking a = a + 1 prima kunnen tegenkomen in Basic, C, Fortran, en alle andere imperatieve talen, ook in WaveWizard. En dat levert geen enkel probleem op want in computertalen is de uitdrukking a = a + 1 geen bewering, maar een
commando, nl. de
toewijzing: "tel bij het getal dat in register
a staat 1 op en sla de uitkomst vervolgens weer op in register
a".
Daarom kun je in WaveWizard gerust schrijven:
Code:
Bewerk signaal
n0 0
n1 1000
Bewerking S1[n] = S1[n] + 1
Dit heeft tot resultaat dat bij de eerste 1001 samples van spoor S1 het getal 1 wordt opgeteld. Niks aan de hand. Maar hoe zit het nu met feedback in de vormen (1) en (2), "direct terug" en "omgekeerd direct terug"?
Als we bij analoog de output van een module via een kabel verbinden met z'n eigen input, doen we iets dat heel verrassende resultaten kan hebben, maar dat, hoe dan ook, in principe altijd realiseerbaar is. Maar als we een analoge module in computervorm willen gieten, dan krijgen we precies die onmogelijke situatie van a = a + 1
in de wiskundige betekenis! Want we willen een bewerking doen waarbij we het resultaat van de bewerking nodig hebben
in de bewerking zelf! Dat doet denken aan die plaatjes van Escher, waarin monniken oneindig lang een trap op- of aflopen zonder ooit boven of beneden te komen. In DSP-literatuur spreken ze dan van
unrealizability. Een bekend voorbeeld daarvan is de discretisering van het Moog-filter.
Hoe moeten we dat probleem oplossen?
(wordt vervolgd)