• Welkom terug op het vernieuwde Synthforum!
    Lukt het inloggen niet meer? Voer dan een wachtwoord reset uit via Wachtwoord vergeten.
    Krijg je geen e-mail van Synthforum als je je wachtwoord probeert te resetten (bij hotmail, live of outlook accounts)?
    Lees dan deze mededeling!

Muzikaal Gepiel dl. 3: y[n] = 1/2 . (x[n] + x[n-1])

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
De formule y[n] = 1/2 . (x[n] + x[n-1]) beschrijft een digitaal laagdoorlaatfilter. In dit topic zal ik dat filter proberen te doorgronden.
 

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
Laten we ons systeem dat de rij getallen x[n] (de input) volgens de formule y[n] = 1/2 . (x[n] + x[n-1]) in de rij getallen y[n] (de output) omzet T noemen, zodat y[n] = T(x[n]).

Dan geldt voor twee rijen getallen x[SUB]1[/SUB][n] en x[SUB]2[/SUB][n] steeds dat:

T(x[SUB]1[/SUB][n] + x[SUB]2[/SUB][n]) = 1/2 . ( {x[SUB]1[/SUB][n] + x[SUB]2[/SUB][n]} + {x[SUB]1[/SUB][n-1] + x[SUB]2[/SUB][n-1]} )
T(x[SUB]1[/SUB][n] + x[SUB]2[/SUB][n]) = 1/2 . ( {x[SUB]1[/SUB][n] + x[SUB]1[/SUB][n-1]} + {x[SUB]2[/SUB][n] + x[SUB]2[/SUB][n-1]} )
T(x[SUB]1[/SUB][n] + x[SUB]2[/SUB][n]) = 1/2 . {x[SUB]1[/SUB][n] + x[SUB]1[/SUB][n-1]} + 1/2 . {x[SUB]2[/SUB][n] + x[SUB]2[/SUB][n-1]}
T(x[SUB]1[/SUB][n] + x[SUB]2[/SUB][n]) = T(x[SUB]1[/SUB][n]) + T(x[SUB]2[/SUB][n])

En geldt voor iedere constante a en iedere rij getallen x[n] dat:

T(a . x[n]) = 1/2 . (a.x[n] + a.x[n-1])
T(a . x[n]) = a . 1/2 . (x[n] + x[n-1])
T(a . x[n]) = a . T(x[n])

Hiermee is bewezen dat T voldoet aan de vereisten voor een zogeheten lineair systeem.
 

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
We gaan in dit topic uit van de voor CD-kwaliteit gebruikelijke samplefrequentie van f[SUB]s[/SUB] = 44,1 kHz, en ten behoeve van een betrouwbare analoge reproductie beperken we ons tot audio-signalen met frequenties tussen de 20 Hz en 20 kHz. Zie ook:

https://nl.wikipedia.org/wiki/Digitale_audio
 
Laatst gewijzigd:

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
Als f[SUB]s[/SUB] de samplefrequentie is, dan is T[SUB]s[/SUB] = 1/f[SUB]s[/SUB] de sample-tijd. De samples worden dan genomen op de tijdstippen t[SUB]n[/SUB] = n . T[SUB]s[/SUB] = n/f[SUB]s[/SUB] . Laat nu U(t) een analoog audio-signaal zijn, dan ziet het gesamplede signaal U[n] er zo uit:

U[n] = U(t[SUB]n[/SUB]) = U(n/f[SUB]s[/SUB]) .

We bekijken nu het bijzondere geval dat U(t) = A.sin(ω.t + φ) . Dan vinden we voor de gesamplede versie U[n] dat:

U[n] = U(n/f[SUB]s[/SUB]) = A.sin(ω.n/f[SUB]s[/SUB] + φ) = A.sin( ω/f[SUB]s[/SUB] . n + φ ) .
 

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
Voor het vervolg hebben we nu even wat goniometrie nodig.

sin(α) + sin(β) = 2 . sin((α+β)/2) . cos((α-β)/2)

Dus voor α = ω.n/f[SUB]s[/SUB] + φ en β = ω.(n-1)/f[SUB]s[/SUB] + φ vinden we:

β = ω.(n-1)/f[SUB]s[/SUB] + φ
β = ω.n/f[SUB]s[/SUB] + φ - ω/f[SUB]s[/SUB]
β = α - ω/f[SUB]s[/SUB]

Zodat dan:

(α+β)/2 = (α + α - ω/f[SUB]s[/SUB])/2
(α+β)/2 = (2α - ω/f[SUB]s[/SUB])/2
(α+β)/2 = α - ω/(2f[SUB]s[/SUB])
(α+β)/2 = ω.n/f[SUB]s[/SUB] + φ - ω/(2f[SUB]s[/SUB])

(α-β)/2 = (α - (α - ω/f[SUB]s[/SUB]))/2
(α-β)/2 = (ω/f[SUB]s[/SUB])/2
(α-β)/2 = ω/(2f[SUB]s[/SUB])


En bijgevolg krijgen we:

sin(ω.n/f[SUB]s[/SUB] + φ) + sin(ω.(n-1)/f[SUB]s[/SUB] + φ) = 2 . sin(ω.n/f[SUB]s[/SUB] + φ - ω/(2f[SUB]s[/SUB])) . cos(ω/(2f[SUB]s[/SUB]))
1/2 . { sin(ω.n/f[SUB]s[/SUB] + φ) + sin(ω.(n-1)/f[SUB]s[/SUB] + φ) } = cos(ω/(2f[SUB]s[/SUB])) . sin(ω.n/f[SUB]s[/SUB] + φ - ω/(2f[SUB]s[/SUB]))
 

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
We keren nu terug tot het harmonische signaal U(t) = A.sin(ω.t + φ) met de gesamplede versie U[n] = A.sin( ω/f[SUB]s[/SUB] . n + φ ) . Gebruiken we U[n] als input voor ons systeem T dan vinden we als output W[n] dat:

W[n] = T(U[n])
W[n] = 1/2 . {U[n] + U[n-1]}
W[n] = 1/2 . { A.sin( ω/f[SUB]s[/SUB] . n + φ ) + A.sin( ω/f[SUB]s[/SUB] . (n-1) + φ ) }
W[n] = A . 1/2 . { sin( ω/f[SUB]s[/SUB] . n + φ ) + sin( ω/f[SUB]s[/SUB] . (n-1) + φ ) }
W[n] = A . cos(ω/(2f[SUB]s[/SUB])) . sin(ω.n/f[SUB]s[/SUB] + φ - ω/(2f[SUB]s[/SUB]))
W[n] = cos(ω/(2f[SUB]s[/SUB])) . A . sin(ω.n/f[SUB]s[/SUB] + φ - ω/(2f[SUB]s[/SUB]))

Voor audio-signalen met een frequentie tussen de 20 Hz en 20 kHz loopt ω/(2f[SUB]s[/SUB]) vanaf 2π.20/(2 . 44100) ≈ 0,00045 . π rad voor audio-signalen met een frequentie van 20 Hz tot 2π.20000/(2 . 44100) ≈ 0,45 . π rad voor audio-signalen met een frequentie van 20 kHz. Ons systeem T dat werkt volgens de formule y[n] = 1/2 . (x[n] + x[n-1]) vormt binnen het audio-gebied dus inderdaad een laagdoorlaatfilter.
 

trigg

Brass Intelligence
Lid sinds
27 november 2002
Berichten
2.546
Locatie
Delft
Fijn.

Wat vooral fijn is, is dat dit muzikaal gepiel is... ik bedoel; als het slechts wiskundige gepiel was geweest dan had de topicstarter meer succes gehad op wiskundeforum.nl, maar in deze context heb je er gewoon echt wat aan.

En dat vind ik fijn.

Heel fijn.
 

ProgHead

Ouwe rot
Lid sinds
26 februari 2019
Berichten
1.462
Locatie
Zeist
trigg Dank! :)

Ik schrijf overigens ook op het Wetenschapsforum.nl, maar hier op ons forum bepaal ik mij vooral tot die zaken die met (computer)muziek en audiotechniek te maken hebben. Dit topic staat bovendien in het subforum "Klank, geluid en theorie" dus ik zie niet in waarom mijn theoretische bijdrage over audio-techniek hier ongepast zou zijn. Mocht iemand een zeker (sub)forum niet bijzonder interessant vinden dan kan die dat (sub)forum eenvoudig links laten liggen. - Maar gewoon doorgaan en verder geen aandacht aan het cynische gemurmel besteden is het beste.
 
Top