Frequenzdurchlauf
Hallo Max,
ok, da habe ich dich wohl am Anfang falsch verstanden; ich bin davon ausgegangen, dass die Frequenzpunkte äqudistant auf der logarithmischen Skala verteilt werden sollten, ähnlich wie es ein analoger Wobbel-Generator auch machen würde. Wenn ich Dich jetzt richtig verstanden habe, wolltest Du aber lineare Abstände zwischen den einzelnen Frequenzpunkten innerhalb der Oktave.
D.H. du erzeugst auch wie gehabt die Frequenzliste; der Algorithmus hierfür ist jetzt aber ein bisschen anders.
Wenn Du alles einstellbar haben willst, würde ich mal sagen, wir nehmen die Start-Frequenz und die Anzahl der Okaven, die durchlaufen werden sollen; die Anzahl der Schritte wird fest auf 60 eingestellt.
Damit ergibt sich folgende Vorschrift für die Erzeugung der Tabelle:
float start_f = 5; //Hz
for (i=1;i<Oktaven;i++) {
float stop_f = start_f *2; //Ende der Oktave berechnen
float delta_f = (stop_f - start_f) / n; //Schrittweite berechnen
for (z=0;z<60;z++) {
float f = z*delta_f + start_f;
}
start_f = stop_f; //Neue Start-Frequenz setzen
}
(Ist in Pseudo-C abgefasst, schneller, als das ganze in Worten zu schreiben)
Mit diesem Algorithmus erzeugst Du dir dann die neue Frequenzliste und schiebst sie auf den DAQ.
Es sind zwei ineinander geschachtelte For-Schleifen, die innere indiziert das Frequenzarray, die äußere nicht!
Hoffe, das hilft dir erst mal weiter, VI folgt.
gruß
lynx
|