Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
frequenzgenerator
30.07.2007, 11:07
Beitrag: #1
frequenzgenerator
hallo,
ich muss mir ein Frequenz erzeugen die von 900Hz auf 600Hz runtergeht und dann eine pause von z.b. 0,5s einlegt bei 600Hz. nach der pause soll die frequenz erneut wieder bei 900Hz beginnen. also im endeffekt ist es eine schleife.
hat jemand ne idee???
Diese Nachricht in einer Antwort zitieren
30.07.2007, 21:12
Beitrag: #2
Frequenz erzeugen
Hi,

das Problem ist der fliessende Übergang.
Ich überlege mal wie man es machen könnte. :?:

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.07.2007, 08:35
Beitrag: #3
 
Im Prinzip wuerd ich ein Array mit der Rampe bauen, also von 300 bis Null, und dann die Nullen auffuellen fuer die Zeitspanne, und dies dem Frequenzbgenerator als Frequenz vorgeben und subtraieren.
Die Frage ist allerdings, welche Diskretisierung ich zulassen darf. Und da hat bratbacker Recht- Problem ist die Kontinuitaet in einer diskretisierten Welt....da bin ich jetzt echt mal gespannt ....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
31.07.2007, 17:18
Beitrag: #4
laufende Frequenz erzeugen (Ramp)
Hi,

habe mir mal Gedanken gemacht und bin zur folgenden Lösung gekommen:

Man braucht eine Laufzeitvorgabe für den kompletten Ramp (Zeitrahmen), hier jetzt 2 sec.
Die einzelen Frequenzen müssen als Pakete in den Zeitrahmen gesetzt werden. Sie müssen als vollständiger Sinus vorliegen, da sonst Phasensprünge entstehen würden.

Die Anpassung von Zeitrahmen und Frequenzsinus erfolgt über die Points des Sinusgenerators.

In diesen Beispiel habe ich die Samples für 44100Hz festgelegt, damit können die erzeugten Frequenzen direkt zur Soundkarte übertragen werden. (siehe Programmdownload Soundrecorder)

Habe es ausprobiert, es funktioniert einwandfrei.
Zur Konvertierung der Daten, einfach in der Userfunktion Soundgenerator den virtuellen Generator mit diesem Programmteil ersetzen.
Edit:
Besser da Timing unabhängiger ist es, diesen Teil vor dem Programmaufruf als Variable abzulegen und dann als Array aufzurufen.

*******************
Den Rest (0.5 sec wait) kann man mit Delay und einer Schleife erledigen.


Angehängte Datei(en) Thumbnail(s)
   

Gruߟ Bratbaecker
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.08.2007, 11:04
Beitrag: #5
 
Gratulation ! Genial ;-)

Stell doch auch mal das Programm selbst hier rein.
Allerdings sind es da doch 1 Hz Diskretisierungsschritte- und die lassen sich halt prinzipiell nicht vermeiden.
Aber im Prinzip ist halt alles diskret nach Heisenberg ...wenn man nur halt genau genug hinguckt... oder kontinuierlich, wenn man unscharf guckt ;-)

und deine Loesung duerfte vollkommen ausreichen. Hut ab!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de