Aliasing und digitale Algorithmen

Puhh... :|

Ich dachte das der tim stinchcombe mir quasi schon die Arbeit abgenommen hat...
303
10p_tf.gif

monotron
mono_tf.gif


In chuck hab ich das hier:
STK filter class.
This class implements a generic structure which
can be used to create a wide range of filters.
It can function independently or be subclassed
to provide more specific controls based on a
particular filter type.

In particular, this class implements the standard
difference equation:

a[0]*y[n] = b[0]*x[n] + ... + b[nb]*x[n-nb] -
a[1]*y[n-1] - ... - a[na]*y[n-na]

If a[0] is not equal to 1, the filter coeffcients
are normalized by a[0].

The \e gain parameter is applied at the filter
input and does not affect the coefficient values.
The default gain value is 1.0. This structure
results in one extra multiply per computed sample,
but allows easy control of the overall filter gain.

by Perry R. Cook and Gary P. Scavone, 1995 - 2002.

(control parameters)
.coefs - ( string , WRITE only ) -

Ich dachte halt das sich chuck dann um den rest kümmert...

und was den lautstärkeknick angeht: da reden wir offenbar aneinander vorbei wenn es dir nun um die steigung am nulldurchgang geht: die darf unstetig sein. dagegen KANNST du letztlich nichts tun, ausser du änderst die frequenz nur in kleinen schritten.

Andersrum: ein blanker Sinus hat am nulldurchgang eine steigung von eins.
wenn ich die amplitude halbiere ist die steigung 1/2.
wenn ich dann wieder die frequenz verdopple ist die steigung wieder 1.
richtig?
 
Computerliebe schrieb:
Andersrum: ein blanker Sinus hat am nulldurchgang eine steigung von eins.
wenn ich die amplitude halbiere ist die steigung 1/2.
wenn ich dann wieder die frequenz verdopple ist die steigung wieder 1.
richtig?

wenn du die lautstärke halbierst, hörst du eben das aber auch. also bringt's dir doch nix?

zu den filtern:
du siehst in den formeln dass dort alles als variable von s dargestellt ist, im STK aber als variable von n. das ist ein signifikanter unterschied, denn s ist zeitkontinuierlich und n ist zeitdiskret.
aber immerhin haben sie die übertragungsfunktionen aufgestellt. das ist schon mal n brocken ;-)
das STK ist sicher auch ein gutes toolkit - perry cook ist ein kluger kopf, der weiß schon was er tut.
grob gesagt: von der (laplace) übertragungsfunktion zur zeitdiskreten (die du im computer eben brauchst) ist die bilineare transformation nötig. dummerweise ist die eben nicht linear, und das musst du somit noch ausgleichen, um wieder auf dein filter zu kommen. wenn das steht kannst du das filter im prinzip implementieren, aber das heißt nicht, dass es dann auch wirklich astrein funktioniert. es kann z.b. sein, dass das filter zur instabilität neigt, bei hoher resonanz. oder es könnte sein, dass die zahlendarstellung im rechner keine gute auflösung in bestimmten bereichen erlaubt (float oder auch double ist eben auch nicht immer exakt). usw. usw..

du bist exakt JETZT an dem punkt an dem du dir überlegen musst: willst du das lernen? dann schieb das filter erstmal beiseite und pauke.
willst du das nicht lernen, hör auf von diesen filtern zu träumen ;-) das ist eben eine materie wo sich nicht chuck oder sonstwer "um den rest kümmert" ;-)
 
haesslich schrieb:
willst du das lernen? dann schieb das filter erstmal beiseite und pauke.

Das würde ich schon wollen, aber möglichst gratis aber hochwertig. ( jaja :P )
Da müsste halt irgendwas her was mich im Fokus hält und ich dann nicht vom hunderste ins tausende komme, was vielleicht auch der grund ist warum ich überhaupt erst bei diesen Filtern gelandet bin.

Außerdem ist mein C eingerostet und mein C++ nur oberflächlich vorhanden, ich brauch irgendwas das mir schnell genug kleine erfolgserlebnisse bietet. Ja da gibts so workshops, aber ich bin ein Mensch der schnell mit anderen in so einem Umfeld zu streiten beginnt und hab mich da schon bei so einem "hackerspace" unbeliebt gemacht.

Als Einzelgänger hat mans schwer :floet:
 


Neueste Beiträge

News

Zurück
Oben