[linux-l] Suche: Frequenzgenerator/analyzer.
Robert C. Helling
r.helling at iu-bremen.de
Do Mär 15 13:39:31 CET 2007
On Thu, 15 Mar 2007, Oliver Bandel wrote:
> On Thu, Mar 15, 2007 at 12:11:55AM +0100, Norm at nSteinbach wrote:
>> Hallo Jan-Benedict,
>>
>> so wie ich das sehe, scheinen PCs oder überhaupt digitale
>> Frequenzgeneratoren für meine Versuche nicht geeignet zu sein,
>
>
> Wenn Du mal sagen würdest,WAS GENAU Dumachen willst,
> was ausserdem die Information der genauigkeit,die Du erreichen
> willst, beinhaltet, dann könnte man dazu vielleicht merh sagen.
Dem kann ich mich nur anschliessen, ich bin inzwischen auch richtig
neugierig geworden, was genau Du denn vor hast. Vielleicht schreibst Du's
uns mal kurz, vielleicht ergeben sich dann ja noch andere Loesungen, als
das, was Dir vorschwebt.
Ausserdem wollte ich nochmal darauf hinweisen, dass es da grundsaetzliche
Schwierigkeit mit der Genauigkeit von Frequenzmessungen gibt, die von der
Fourieranalyse herkommt: Nur unendlich lang andauernde Signale haben
ueberhaupt eine scharfe Frequenz. Ein Ton von einer Sekunde Dauer hat
automatisch eine intrinsische Frequenzunschaerfe von 1Hz. Dh, bei einem
solchen Ton macht es ueberhaupt keinen Sinn zu fragen, ob er 440Hz oder
440.5Hz hat, der Unterschied ist ueberhaupt erst bei laengeren Toenen
bestimmbar.
Und wo wir schon ueber solches Zeug reden, kann ich ja nochmal erzaehlen,
was ich schon lange mal machen wollte, aber was bisher an meinen
Faehigkeiten, was realtime audio Programmierung angeht, gescheitert ist:
Ich wollte immer mal ein Programm schreiben, das mein Saxophonspiel
sampled und als Midi-Signal ausgiebt. Und zwar in real time. Idee ist
dabei, dass dann ein Synthi mitspielen kann bzw dazu noch andere Toene
(harmonisch passend zB oder jazzrockartig in Quartparallelen oder so)
mitspielt.
Meine Idee war, dass eine echte Fourieranalyse mit Kanonen auf Spatzen
schiessen waere und auch die Latenz wahrscheinlich viel zu gross waere.
Daher hatte ich folgende Idee (vielleicht fuehlt sich ja wer berufen???):
Ich weiss ja, dass beim Saxophon ueberhaupt nur etwa 2,5 Oktaven an Toenen
vorkommen, sagen wir mal 35 verschiedene Halbtoene. Und nur die muessen
erkannt werden und auch immer nur einer zur Zeit. Mein Ansatz war daher,
einfach numerisch 35 harmonische Oszillatoren zu simulieren in der Art
(fuer jeden einzelnen Oszillator)
f''(t) = - w^2 f(t) - c f'(t) + sample(t)
(' ist die Zeitableitung) und das halt einfach ueber die Zeit
aufzusummieren. Dabei ist w halt grade so gewaehlt, dass es der Frequenz
des entsprechenden Tons entspricht und c (die Daempfung) ist dadurch
bestimmt, dass der Oszillator nicth zu lange nachschwingt, wenn der Ton
schon weg ist, aber die Resonanzbreite auch nicht zu gross wird. Und dann
pruefe ich einfach die Energie des Oszillators
E = f'(t)^2+ w^2 f(t)^2 .
Wenn die einen bestimmten Schwellwert uebersteigt, ist der entsprechende
Ton "an", sonst aus.
Wuerde ich halt gerne mal ausprobieren, ob das taugt, fehlte mir leider
bisher immer die Zeit dafuer. Wie gesagt, vielleicht fuehlt sich ja jemand
dazu berufen.
Viele Gruesse
Robert
--
.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oOo.oO
Robert C. Helling School of Engineering and Science
International University Bremen
Jacobs University Bremen as of spring 2007
print "Just another Phone: +49 421-200 3574
stupid .sig\n"; http://www.atdotde.de
Mehr Informationen über die Mailingliste linux-l