Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
07.01.2007, 19:46 (Dieser Beitrag wurde zuletzt bearbeitet: 07.01.2007 20:16 von Lucki.)
Wenn ich mich hier mal reinhängen darf:
Ich weiß ja nicht, was Du letztlich eigentlich machen willst, aber falls Dir - und so lese ich Deinen Beitrag - wirklich an einem kontinuirlichem Sweep gelegen ist, anstatt so eines Quasi-Sweeps mit Abarbeitung eine Liste von Frequenzen, dann steht dem überhaupt nichts im Wege.
Im Prinzip läuft das so:
1) Festlegen der Sample-Frequenz: Höchste Frequenz ist 200Hz. Für ein vernünftige Abbildung brauchst Du 8 Punkte/Periode --> fs = 1600Hz, dt=0.615ms
2) 1 Otave/min umrechnen in Frequenzerhöhungs-Faktor pro dt: 2^(1/min*0.615ms)=1.000004369
3) Aktuelle Frequnz = aktuelle Frequenz(vorige Sample) * obiger Faktor
4) Phasendifferenz zur vorigen Sample berechnen = 2Pi*aktuelleFrequenz * dt
5) aktuelle Phase berechnen = vorige Phase + Phasendifferenz
6) Amplitudenwert der Sample = sin(Phase)
Das VI ist angehängt.
Der Haken an der Sache ist: Das Array wird sehr groß, besteht aus 510 000 Samples
Wenn es noch funktioniert (evtl mit single Precision) --> Glück gehabt
Wenn nicht: Die Samples mussen blockweise berechnet werden und blockweise in den Buffer nachgeschopben werden, bei kontinuierlicher Ausgabe. Das geht wunderbar, aber es ist nicht gerade ein Aufgabe für Anfänger.
Damit im Diagramm etwas zu sehen ist, habe ich im Beilspiel die Sweep-Geschwindigkeit von 1 Oktave/min auf 1000 Otave/min erhöht.
Man beachte auch: Bei Abarbeitung ein Frequenzliste kommt es zu Phasen-Diskontinuitäten bei jeder neuen Frequenz. Das System muß jedes Mal neu einschwingen.