DSP-vraag

Moderators: jkien, Xilvo

Gebruikersavatar
Berichten: 7.463

DSP-vraag

image.png
image.png (10.09 KiB) 5169 keer bekeken
Beschrijft de vermelde differentievergelijking 1/2 . {U[n-4] + U[n-5]} = U[n] inderdaad de bovenstaande digitale schakeling?

( Het filter werkt met het gemiddelde volgens y[n] = 1/2 . {x[n] + x[n-1]}. )

Technicus
Berichten: 1.151

Re: DSP-vraag

Jammer dat je het verhaal nu over 3 verschillende topics gesplitst hebt.
De vergelijking klopt volgens mij niet met je originele vergelijking. Je kwam van 1/2( U[k-n]+ U[k-(n-1)]) en dus dat zou moeten resulteren in 1/2*(U[n-4]+U[n-3]). (dus 3 ipv 5)

Ik vraag me alleen een beetje af wat je nu precies probeert te bereiken. Het berekenen van de losse termen U[x] levert op zich niet zoveel op. Om iets over de klank te zeggen, wil je uiteindelijk het spectrum hebben lijkt me. Is het dan niet veel handiger om direct in het frequentiedomein te werken? Dan reken je met de Z-transform de response van het filter uit, en elke N samples wordt het filter opnieuw toegepast.

Berichten: 463

Re: DSP-vraag

Afbeelding
Hier een alternatieve weergave.
Maar wat is de bedoeling van deze schakeling?
U[n] lijkt me vrij snel te convergeren naar ( 2*(U[n-1]+U[n-2]+U[n-3]+U[n-4]) + U[n-5]) / 9 waarna er niets meer gebeurt...

Technicus
Berichten: 1.151

Re: DSP-vraag

Het filter wilter werkt als een low-pass. De hoge frequenties worden gefilterd. Snap je dat?

Gebruikersavatar
Berichten: 7.463

Re: DSP-vraag

@ CoenCo en RedCat

Zie voor de achtergrond van mijn vragen:

https://www.synthforum.nl/forum/muziek- ... g-synthese

https://www.synthforum.nl/forum/muziek- ... -x-n-x-n-1

Maar omdat ik mijn lezers niet onnodig wil belasten met het doornemen de hele ontwikkeling van mijn naspeuringen stel ik hier op het Wetenschapsforum op diverse plaatsen enkel korte kernachtige vragen. Hier in dit topic bijvoorbeeld of de differentievergelijking 1/2 . {U[n-4] + U[n-5]} = U[n] de output van het in het openingsbericht getekende schema beschrijft. Dat zou ik graag van iemand met kennis van zaken horen. Wat daar dan verder mee gebeurt kun je volgen in het eerste gelinkte topic op SynthForum.

Berichten: 6

Re: DSP-vraag

Professor Puntje schreef: zo 21 jul 2019, 17:37 (...)
Hier in dit topic bijvoorbeeld of de differentievergelijking 1/2 . {U[n-4] + U[n-5]} = U[n] de output van het in het openingsbericht getekende schema beschrijft. Dat zou ik graag van iemand met kennis van zaken horen. Wat daar dan verder mee gebeurt kun je volgen in het eerste gelinkte topic op SynthForum.
Het antwoord luidt: ja.

N is de orde van de differentievergelijking U[n] = 0,5*U[n-4] + 0,5*U[n-5].De lengte van de delaylijn is 4, want er zijn 4 unit-delays ter lengte Ts. Maar er zit ook een filter in de lus. Dat is een 1ste-orde filter y[n] = 0,5* x[n] + 0,5* x[n-1] en daar zit dus ook een unit-delay in. Dus de hele Karplus-loop heeft alles bij elkaar 5 unit delays en wordt wiskundig beschreven door een 5de-orde recursieve diff. vergelijking. Dus N = 5.

Het hele punt is nu dat het "nuttig effect" van die vijfde unit-delay, dus die van het filter, een effectieve tijdverschuiving oplevert van precies een halve unit-delay. Dat blijkt ook uit je eigen afleiding in
https://www.synthforum.nl/forum/muziek- ... ost3694577.

Naast die wiskundige afleiding mag als tamelijk heuristisch, kort antwoord gelden:
Het 1ste-orde filter y[n] = 0,5* x[n] + 0,5* x[n-1] doet niets anders dan steeds van twee opeenvolgende waarden van inputsignaal x[] het gemiddelde nemen ("moving average filter") . Dan is het niet zo vreselijk gek dat ook de tijdverschuiving halveert tot een halve eenheidsstap Ts.

Kortom in deze Karplus-loop doet elke sample er precies 4 + 0,5 tijdseenheden over om 1 keer helemaal rond te gaan. DAT is dus de periode van de toon die deze Karplus produceert. De frequentie is dus de inverse daarvan:
f = 1/T
= 1/(4,5*Ts)
= Fs/4,5
= 0,2222... * Fs

mvg
Rutger Teunissen (Synthforum: WaveGuide7)

Berichten: 6

Re: DSP-vraag

Met mijn freeware WaveWizard https://muziekexact.nl/WaveWizard%202019%2003%2028.exekun je prima experimenteren met filters - o.a. door directe uitdrukking in de vorm van een differentievergelijking.

Ook animaties zijn mogelijk, daaraan zou je kunnen zien hoe een puls door het Karplusfilter "wandelt"

Cruciaal voor WaveWizard is de realtime Scoop/Spectrum Analyzer.
Spectaculair is daarmee het Karplus-Strong mechanisme in beeld te brengen door de Sweep Frequency van de Scoop in te stellen op f = (1/((N+1/2)*Ts). Wat je dan ziet is het "afsmelten" van de golfvorm: de tijdvariante, frequentie-afhankelijke demping.

Als Fourier die scoop-animatie zou zien, zou hij ongetwijfeld uitroepen: "Maar.... dat is een animatie van mijn warmte-diffusievergelijking" (als je de tijd-as beschouwt als de plaats langs de lengte-as van een 1-dimensionale geleider).

Dat is een van de vele diepten van Karplus-Strong, die ikzelf overigens liever aanduidt als de snaarplukvergelijking.

Gebruikersavatar
Berichten: 7.463

Re: DSP-vraag

Hartelijk dank voor de antwoorden. Ik ben ook al met WaveWizard aan het experimenteren.

Berichten: 463

Re: DSP-vraag

Afbeelding
Dan zou ik het ingangssignaal en een adder erbij tekenen.
In jouw eerste post hierboven heb je een blackbox beschreven met 1 outputsignaal, en is
u[n] = (u[n-4] + u[n-5])/2
Dit convergeert naar de waarde die ik hierboven aangaf.

Als het hierom gaat:
https://en.wikipedia.org/wiki/Karplus%E ... _synthesis
dan is er ook een ingangsignaal s[n], en krijg je
u[n] = s[n] + (u[n-4] + u[n-5])/2

Gebruikersavatar
Berichten: 7.463

Re: DSP-vraag

In die beginfase van het proces (overeenkomend met het aanslaan van de snaar) ben ik niet geïnteresseerd. Vandaar dat in de vraagstelling van dit topic die adder en het ingangssignaal ontbreken. Men moet de zaken niet ingewikkelder maken dan nodig is.

Berichten: 6

Re: DSP-vraag

u[n] = s[n] + (u[n-4] + u[n-5])/2

met dien verstande dat dit exciterende signaal s[n] dan gelijk moet zijn aan nul voor elke n > N. Van de 2 inputs die jouw adder "ziet" is er dus altijd (minstens) één gelijk aan nul.
In feite is s[n] niets anders dan de N begincondities van u[n]: een eenmalige aanzet die in principe ook met u[n] = 0,5*u[n-4] + 0,5*u[n-5] kan worden beschreven.

Maar voor de analyse van het systeem gaat men inderdaad meestal uit van die burst-inputfunctie s[n] uit.

Ook goed dat je de signalen noteert met kleine letter, een conventie niet alleen in de wiskunde maar ook in de signaalverwerking, electronica en meet- en regel.

kleine letters, bijv. x[n], s[n], u[n] voor tijdsignalen;
hoofdletters, X[f], S[f], U[f], voor hun Fourier-, Laplace- of Z-getransformeerden.

Berichten: 6

Re: DSP-vraag

Professor Puntje schreef: zo 21 jul 2019, 21:34 In die beginfase van het proces (overeenkomend met het aanslaan van de snaar) ben ik niet geïnteresseerd. (...)
Men moet de zaken niet ingewikkelder maken dan nodig is.
Zonder beginfase geen Karplus en dus ook geen analyse van Karplus.
Die weglaten, dàt maakt de zaak juist ingewikkelder.
(De systeemrespons H(z) van elk lineair systeem, ook Karplus, is per definitie
het quotient U[z] / S[z] en de noemer kan natuurlijk niet nul zijn.)

Gebruikersavatar
Berichten: 7.463

Re: DSP-vraag

In mijn Pure Data schakeling bestond de input uit een pakketje ruis waar verder niet zo heel veel over te zeggen valt behalve dan dat dit er voor zorgde dat de schakeling met zekere beginwaarden gevuld werd. Daarna spelen die adder en s[n] geen enkele rol meer. Hoe die beginwaarden in de schakeling terechtkomen is ook niet zo interessant, dat maakt voor de output daarna niets meer uit. Daarom zie ik ook niet in waarom ik iets in de schakeling van dit topic zou moeten opnemen dat voor het beschouwde tijdvak niet ter zake doet.

Berichten: 463

Re: DSP-vraag

Afbeelding

Hier de signaal-ontwikkeling met beginwaarden:
u[1]=10, u[2]=20, u[3]=30, u[4]=20 en u[5]=10,
en u[n] = (u[n-4] + u[n-5]) / 2 voor n>=6
Ik keek naar de stabiliteit van het systeem en de redelijk snelle convergentie ervan naar de limietwaarde (hier 18.888...), terwijl het jullie juist gaat om het vroege gedrag van de demping na een eenmalige burst (met een al dan niet getekend input-kanaal). Dat maakt het verhaal voor mij ook weer logisch.
Bedankt voor de toelichtingen.

Gebruikersavatar
Berichten: 7.463

Re: DSP-vraag

Normaal gesproken wordt om het zaakje op te starten kort iets als ruis of een harmonischen-rijke trilling aangeboden. Direct daarna zal dan een gedempte trilling optreden met slechts een kleine offset. Maar om die offset is het niet te doen, en die is eigenlijk enkel maar hinderlijk. Het gaat om de wijze waarop het outputsignaal na het aanbrengen van de beginwaarden uit trilt. Dat geeft de simulatie een typisch snaargeluid.

Reageer