[wiskunde] Z-transformatie

Moderators: ArcherBarry, Fuzzwood

Gebruikersavatar
Berichten: 7.463

Re: [wiskunde] Z-transformatie

Het heikele punt voor mij was dat ik de "afleiding" van die formule niet begreep omdat ik dacht dat het een wiskundig sluitend bewijs moest voorstellen. Nu de formule slechts een benadering blijkt te zijn (hoewel een voor praktische doeleinden zeer goede) is het probleem voor mij uit de wereld. De formule berust op de veronderstelling dat de KS-schakeling werkt als een teruggekoppelde delay-lijn met N+1/2 eenheden, wat inderdaad bij benadering waar is voor niet al kleine N.

Ik zie minstens twee redenen waarom de voorstelling van de KS-schakeling als een teruggekoppelde delay-lijn met N+1/2 eenheden slechts bij benadering correct is:

1. Omdat het gemiddelde alleen voor grotere N een goede interpolatie van een signaalwaarde op een tijdstip exact tussen twee opeenvolgende samples oplevert.
2. Omdat een delay-lijn op zich het signaal niet dempt, wat de KS-schakeling wel doet.

Dit alles mag dan spijkers op laag water zoeken lijken, maar ik heb er wel weer veel van geleerd.

Berichten: 11

Re: [wiskunde] Z-transformatie

Ik vind het ook een interessant probleem en zeker geen spijkers op laag water zoeken.

Alleen zou ik je conclusie wat anders formuleren:

Ik zou zeggen: hoe groter N, des te meer de "grondtoon"-frequentie van Karplus convergeert naar Fs/(N-1/2) (met N gedefinieerd als de orde van de diff. vergelijking). Want hoe groter N, des te dichter de polen van Karplus in de richting van de eenheidscirkel bewegen (magnitude nadert 1). Daardoor worden de onderlinge afstanden tussen de polen ook meer gelijk aan elkaar en ontstaat een harmonisch spectrum.

Dat is te zien in onderstaande tabel, gemaakt met WaveWizard's rootfinder.
Merk op dat voor elke N een pool bij 0 Hz ligt (z = 1) en dat alleen de even waarden van N de Nyquistfrequentie hebben. Alle "tussenliggende" polen komen in complex geconjugeerde paren.

Code: Selecteer alles

!---------------------------------------------------------------------------------
! N = 2                                 Magnitude           poolfreq
!  1,0000000000 + 0,0000000000000 i   1,0000000000000        0     Hz
! -0,5000000000 + 0,0000000000000 i   0,5000000000000    22050     Hz  (Nyq)
!---------------------------------------------------------------------------------
! N = 3                                 Magnitude           poolfreq
!  1,0000000000 + 0,0000000000000 i   1,0000000000000        0     Hz
! -0,5000000000 - 0,5000000000000 i   0,7071067811865   -16537,499 Hz
! -0,5000000000 + 0,5000000000000 i   0,7071067811865    16537,499 Hz
!---------------------------------------------------------------------------------
! N = 4                                 Magnitude           poolfreq
!  1,0000000000 + 0,0000000000000 i   1,0000000000000        0     Hz
! -0,1761005644 - 0,8607166186236 i   0,8785468151135   -12441,467 Hz
! -0,1761005644 + 0,8607166186236 i   0,8785468151135    12441,467 Hz
! -0,6477988713 + 0,0000000000000 i   0,6477988712610    22050     Hz  (Nyq)
!---------------------------------------------------------------------------------
! N = 5                                 Magnitude           poolfreq
!  1,0000000000 + 0,0000000000000 i   1,0000000000000        0,0
!  0,1688096116 + 0,9278915393280 i   0,9431221520636     9761,909 Hz
!  0,1688096116 - 0,9278915393280 i   0,9431221520636    -9761,909 Hz
! -0,6688096116 + 0,3388514021240 i   0,7497510048294    18758,549 Hz
! -0,6688096116 - 0,3388514021240 i   0,7497510048294   -18758,549 Hz
!---------------------------------------------------------------------------------
! N = 6                                 Magnitude           poolfreq
!  1,0000000000 + 0,0000000000000 i   1,0000000000000        0,0   Hz
!  0,4042249299 - 0,8808729159775 i   0,9691929054972    -8005,377 Hz
!  0,4042249299 + 0,8808729159775 i   0,9691929054972     8005,377 Hz
! -0,5440186493 - 0,6655179335211 i   0,8595757154603   -15834,817 Hz
! -0,5440186493 + 0,6655179335211 i   0,8595757154603    15834,817 Hz
! -0,7204125613 + 0,0000000000000 i   0,7204125612545    22050,000 Hz  (Nyq)
!---------------------------------------------------------------------------------
! N = 7                                 Magnitude           poolfreq
!  1,0000000000 + 0,0000000000000 i   1,0000000000000         0,0   Hz
!  0,5581619008 + 0,8073355575181 i   0,981496515535498    6779,328 Hz  
!  0,5581619008 - 0,8073355575181 i   0,981496515535498   -6779,328 Hz  
! -0,3174374594 + 0,8613972539630 i   0,918026018030256   13503,123 Hz  
! -0,3174374594 - 0,8613972539630 i   0,918026018030257  -13503,123 Hz  
! -0,7407244414 + 0,2592065099456 i   0,784767935726277   19687,366 Hz  
! -0,7407244414 - 0,2592065099456 i   0,784767935726277  -19687,366 Hz  
!---------------------------------------------------------------------------------

Gebruikersavatar
Berichten: 7.463

Re: [wiskunde] Z-transformatie

Voor het begrijpen van die formulering (in termen van polen) bezit ik helaas nog onvoldoende kennis van zaken. :(

Wat ik mij nog wel afvraag is of er al een exact geldende formule (dus niet slechts een benadering) voor de grondfrequentie van KS bestaat. Ik heb het bange vermoeden dat je voor zo'n exacte formule expliciete oplossingen van hogeregraads algebraïsche vergelijkingen nodig hebt. Dat laatste (en de vraag of zulke expliciet in een formule te vangen oplossingen er überhaupt zijn) behoort tot het gebied van de Galoistheorie, en dat gaat mij boven de pet. Of zie je andere mogelijkheden om tot een dergelijke exacte formule te komen?

Gebruikersavatar
Berichten: 7.463

Re: [wiskunde] Z-transformatie

Wat er gebeurt is dat je voor iedere KS-schakeling met een delay-lijn van N elementen een bijbehorende differentievergelijking kunt opstellen. De oplossingen van die differentievergelijking kun je vinden via de karakteristieke vergelijking bij die differentievergelijking. Voor hogere waarden van N kom je dan al snel in de problemen omdat je de bijbehorende hogeregraads algebraïsche vergelijkingen niet of lastig meer exact kunt oplossen.

Berichten: 11

Re: [wiskunde] Z-transformatie

Vandaar dan ook mijn inzet, hierboven, van een rootfinder. Hoe ver je daar mee komt hangt in het algemeen af van de waarden van de coëfficiënten: een veelterm kan "slecht geconditioneerd" zijn; dat is het geval als de nulpunten in het complexe vlak op een kluitje liggen; je krijgt dan enorm grote getallen die tot overflow kunnen leiden.

Maar bij Karplus zie ik dat niet zo snel gebeuren want daar neigen de polen juist naar equidistante spreiding in de buurt van, maar altijd binnen de eenheidscirkel (slechts 1 pool, bij z = 1, ligt OP de eenheidscirkel, bij elke N).

Ik heb in WaveWizard het Laguerre-algoritme uit Numerical Recipes geïmplementeerd, dat snel convergeert en meestal goed gaat tot orden rond 50.

Gebruikersavatar
Berichten: 7.463

Re: [wiskunde] Z-transformatie

Juist - dus ook volgens jou is het hopeloos om te zoeken naar één formule die voor alle N een exacte (dus geen benaderde) uitkomst voor de grondfrequentie geeft?

Berichten: 11

Re: [wiskunde] Z-transformatie

Wat mij aan Karplus opvalt is de "asymmetrie" die toeneemt met N.
Als N klein is, heeft het dissiperende 1ste-orde filter een onevenredig groot effect.
Karplus is een goed voorbeeld van "klont-model" ("lumped model").

Dat wordt duidelijk als je het vergelijkt met een echte, fysieke snaar. De frequentie-afhankelijke demping vindt plaats overal in de snaar, d.w.z. over de gehele lengte van het trillend gedeelte. Een discreet model daarvan verdeelt de snaar in L segmentjes die allemaal over een eigen, minuscuul dissipator-filtertje beschikken.

De volgende stap is dan de praktische afweging dat de snaar zijn trillingsbeweging uiteindelijk maar in één punt van de snaar, nl. bij de brug, overdraagt aan het klankbord (bij een electrische gitaar is dat punt het opname-element) en waarom zou je dan niet de werking van al die verschillende dissipator-filtertjes vervangen door één grote, die precies hetzelfde doet als al die kleintjes samen? Scheelt een boel rekentijd! Dit grote filter is de "klont". Natuurlijk moet dit grote filter dan L maal zo krachtig zijn dan die van elk segmentje. En dat laatste is dus bij Karplus duidelijk niet het geval! Die onbalans is het duidelijkst merkbaar voor kleine waarden van N; daar zou de delay veel kleiner moeten zijn dan 1/2 Ts.

Reageer