Complexe synthese?

Complexe getallen bestaan uit een zogeheten reëel deel a en een imaginair deel b en worden geschreven als a + bi (of in de elektrotechniek als a + bj)....
Een complex signaal moet je daarom op ieder moment ook steeds met twee onafhankelijke voltages a en b aanduiden.
Complexe getallen ...dat is 40 jaar geleden...
Maar zoals je zelf aangeeft, een complex signaal bestaat niet echt : een reëel deel a en een imaginair deel (= niet wetenschappelijk aantoonbaar).
Dus hoe ga je die twee onafhankelijke voltages a en b weergeven ???
YouTube filmpjes ... meetinstrumenten.
 
Het woord "imaginair" stamt uit de tijd dat wiskundigen nog niet goed wisten wat ze met die complexe en imaginaire getallen aan moesten: ze leken (soms) zinvolle resultaten op te leveren, maar het hoe en waarom was vooralsnog onduidelijk. Maar tegenwoordig is de theorie van de complexe getallen goed en rigoureus gefundeerd. Hoe men dat voor elkaar heeft gekregen is een interessant hoofdstuk uit de geschiedenis van de wiskunde.
 
Dromen zijn ook een duidelijk gedefinieerd begrip...

Het woord "imaginair" stamt uit de tijd dat wiskundigen nog niet goed wisten wat ze met die complexe en imaginaire getallen aan moesten: ze leken (soms) zinvolle resultaten op te leveren, maar het hoe en waarom was vooralsnog onduidelijk. Maar tegenwoordig is de theorie van de complexe getallen goed en rigoureus gefundeerd.
Wel dan, hoe zit het dan met deze :
Dus hoe ga je die twee onafhankelijke voltages a en b weergeven ???
YouTube filmpjes ... meetinstrumenten.
 
Wat betreft het meten van een complex signaal, dat kan (in principe) gewoon met een oscilloscoop. Voer simpelweg het reële deel van het signaal aan het x-kanaal van de scoop toe en het imaginaire deel aan het y-kanaal. Een complex getal correspondeert immers met een punt in het xy-vlak en de momentane waarde van zo'n signaal kan dus ook als een punt op het scherm van een scoop worden weergegeven (zolang het signaal maar niet te groot is).
 
Het blokje "Complex Frequency Shifter" in het schema van Full Bucket's "frequency shifter" VST heeft twee ingangen maar een enkele uitgang. Ook dat is dus niet precies wat ik bedoel. De bedoeling is om het werken met een complex signaal (bestaande uit een reële en een imaginaire component) door nagenoeg het hele circuit vol te houden. Ik weet niet of Tetra en Sonitarium dat wel doen, moet ik nog natrekken.

Even nagetrokken: Tetra en Sonitarium werken wel met complexe getallen, maar niet op de manier waarop ik dat bedoel. Misschien toch wel interessant om te zien of ik iets kan bouwen wat doet waar ik op doel. Wellicht dat dit met Pure Data kan?
 
De enige synth die ik ken die expliciet iets doet met complexe getallen (real/imaginary) is....

Fullbucket - Modulair
https://www.kvraudio.com/product/modulair-by-full-bucket-music

Het gaat dan specifiek om de Hilbert module (pagina 19 van de manual van v1.1)
https://www.fullbucket.de/music/dl/modulair_manual_1_1.pdf

Hilbert
The Hilbert module features two Hilbert transforms, a Sine/Cosine generator and a dual Ring modulator. These sections can be combined to setup a Bode frequency shifter. The module has the following parameters: Hilbert Input A/B: Source of the input for the Hilbert transforms. (Sine/Cosine Generator On/Off): Switches the Sine/Cosine generator on or off. (Sine/Cos) Frequency: Fixed frequency of the Sine/Cosine generator. (Sine/Cos Frequency) Mod: Source and amount for frequency modulation of the Sine/Cosine generator. Ring Input A1/A2: Sources of the inputs for Ring modulator A. Ring Input B1/B2: Sources of the inputs for Ring modulator B. The Hilbert module has nine audio outputs (Hilbert A Real, Hilbert A Imaginary, Hilbert B Real, Hilbert B Imaginary, Cosine, Sine, Ring A, Ring B, Ring A+B).

Hilbert Transform demo (vanaf een minuut of 10)
https://youtu.be/mttlQWoq8_8?t=697
 
@ Disharmonic

Mooi! Dat maakt duidelijk dat je met complexe signalen interessante audio-effecten kunt maken. Maar het lijkt me bij nader inzien toch eenvoudiger om het i.p.v. met PD met een (virtuele) modulaire synth te doen
 
Ja, en je kunt naderhand alsnog uitwijken als je iets wil doen dat niet/minder goed kan met een virtuele modular.
 
Laten we bij het begin beginnen. Om een complex effectapparaat te maken heb je een reëel-complex converter (RC-converter) nodig. Maar wat zou nu een logische keuze zijn voor een (voor alle denkbare audiosignalen zinnige) omzetting van een reëel signaal in een complex signaal?
 
De oplossing staat al in je eerdere link:

A set of two all-pass filter cascades can convert a real signal into a complex signal over a large range of frequencies. In Pd, you can find this process in an abstraction called hilbert~. For the purpose of demonstration, I have copied the content of hilbert~ into my main patch.


The output phases of the filter set are both phase-shifted with respect to the original signal. But it is done in such a way that the phase distance from the first to the second output is always -pi/2. Only for the lowest frequencies and for the highest octave this does not work.
 
Ja, met all-pass filters. Ik vraag me wel af, waarom het kennelijk niet goed werkt op de laagste en hoogste frequenties. In hardware kan ik me daar iets bij voorstellen, maar in software zou het toch eigenlijk geen verschil moeten maken?
 
Ik weet (nog) niet hoe digitale all-pass filters werken dus ik heb daar ook geen antwoord op. Maar gelukkig is het voor mensen hoorbare audiogebied zowel naar boven als naar beneden begrensd, dus het 90 graden fase draaiende all-pass filter hoeft enkel voor de hoorbare frequenties goed te werken.
 
In een ander topic heb ik inmiddels een soort van complexe ringmodulatie patch gemaakt:

Twee parallelle all-pass filters op elkaar afstemmen is toch wel een heel gedoe, dus ik houd het maar op de Hilbert-plugin. Daarmee heb ik op Alsa Modular Synth de onderstaande patch gebouwd:



Wat daar gebeurt is dat een op "PCM In" binnenkomend stereo signaal als ware het een complex signaal met een complexe sinus wordt vermenigvuldigd. Vervolgens hoor je op het linker en rechter uitgangskanaal de twee componenten van het complexe product. Als proef heb ik de demonstratie 'shortie' sv-Trance-Startup van LMMS in deze schakeling ingevoerd en onderwijl heb ik wat aan de knoppen gedraaid. Met dit resultaat:


Dat gaf al een aardig resultaat dus hoog tijd om nu hier weer verder te gaan.
 
Veronderstel nu dat:

x(t) = v(t) + w(t).i
h(t) = p(t) + q(t).i

met v(t), w(t), p(t), q(t) reëel.

Dan vinden we voor de complexe reverb y(t) dat:

y(t) = ( v(t) + w(t).i ) [SUB]* [/SUB]( p(t) + q(t).i )

y(t) = v(t) [SUB]*[/SUB] p(t) + v(t) [SUB]*[/SUB] q(t).i + w(t).i [SUB]*[/SUB] p(t) + w(t).i [SUB]*[/SUB] q(t).i

y(t) = v(t) [SUB]*[/SUB] p(t) + (v(t) [SUB]*[/SUB] q(t)).i + (w(t) [SUB]*[/SUB] p(t)).i + (w(t) [SUB]*[/SUB] q(t)) . i.i

y(t) = v(t)[SUB]*[/SUB]p(t) + (v(t)[SUB]*[/SUB]q(t) + w(t)[SUB]*[/SUB]p(t)).i + (w(t)[SUB]*[/SUB]q(t)).i[SUP]2[/SUP]

y(t) = v(t)[SUB]*[/SUB]p(t) + (v(t)[SUB]*[/SUB]q(t) + w(t)[SUB]*[/SUB]p(t)).i - w(t)[SUB]*[/SUB]q(t)

y(t) = (v(t)[SUB]*[/SUB]p(t) - w(t)[SUB]*[/SUB]q(t)) + (v(t)[SUB]*[/SUB]q(t) + w(t)[SUB]*[/SUB]p(t)).i

Het reële en het imaginaire deel van het complexe uitgangssignaal y(t) worden dus respectievelijk:

Re(y(t)) = v(t)[SUB]*[/SUB]p(t) - w(t)[SUB]*[/SUB]q(t)
Im(x(t)) = v(t)[SUB]*[/SUB]q(t) + w(t)[SUB]*[/SUB]p(t)

Dit is met vier mono reverb's of twee stereo reverb's te realiseren. Mwa :( - dit maakt het eigenlijk al weer onwaarschijnlijk dat daar iets opmerkelijks uit gaat komen....
 
Back
Top