Hallo,
ich möchte ein array erstellen, welches auf der einen seite werte von 0 bis 2*pi und auf der anderen seite
deren korrespondierende sinuswerte enthält. aus diesem array möchte ich dann ohne den sinus erneut zu berechen mit gegebenen winkeln die korrespondieren werte auslesen.
leider scheitern meine fähigkeiten scheinbar bereits daran, ein array zu erzeugen, welches beliebig viele werte zwischen 0 und 2*pi beinhaltet.
über hilfestellungen, anregungen, links würde ich mich freuen.
(sollte ein solches thema bereits existieren bitte ich um einen hinweis, ich habe eigentlich gewissenhaft vorher gesucht)
mfg
' schrieb:Hallo,
ich möchte ein array erstellen, welches auf der einen seite werte von 0 bis 2*pi und auf der anderen seite
deren korrespondierende sinuswerte enthält. aus diesem array möchte ich dann ohne den sinus erneut zu berechen mit gegebenen winkeln die korrespondieren werte auslesen.
leider scheitern meine fähigkeiten scheinbar bereits daran, ein array zu erzeugen, welches beliebig viele werte zwischen 0 und 2*pi beinhaltet.
über hilfestellungen, anregungen, links würde ich mich freuen.
(sollte ein solches thema bereits existieren bitte ich um einen hinweis, ich habe eigentlich gewissenhaft vorher gesucht)
mfg
Mal ne dumme Frage: Wozu soll das gut sein? Willst Du Sinuswerte aus ner Tabelle interpolieren? Jeweils neu berechnen dürfte schneller gehn.
(abgesehen davon dass ein Array mit beliebig vielen Werten beliebig lang wäre und Du dafür einen Rechner mit beliebig viel Speicher bräuchtest der natürlich auch beliebig teuer wäre...)
' schrieb:Mal ne dumme Frage: Wozu soll das gut sein? Willst Du Sinuswerte aus ner Tabelle interpolieren? Jeweils neu berechnen dürfte schneller gehn.
(abgesehen davon dass ein Array mit beliebig vielen Werten beliebig lang wäre und Du dafür einen Rechner mit beliebig viel Speicher bräuchtest der natürlich auch beliebig teuer wäre...)
Und um einen Sinus per Analoput zuerzeugen gibts Generatorn die per GPIB/USB/RS232 angesteuert werden, oder man mnimmt gleich nen DDS-IC von
Analog Devices.
Gibts nicht auch bei den Waveform-VIs eines welches einen Sinus erzeugen kann?
Oder die ganz einfache Methode, dem User die Anzahl N der Stützwerte eingeben lassen und eine Schleife über N laufen lassen und i*2*Pi/N berechnen und den Sinus davon. (i= Iteratorionszähler der Schleife)
Gruß, Rob
Ich habs jetzt mal gemessen: Die Berechnung eine Sinuswertes dauert auf meinem 5 Jahre alten PC mit Athlon 3E-8s. Worin besteht denn Deiner Ansicht nach der besondere Aufwand, "einen Sinus neu zu berechnen" Meinst Du, daß so eine Tabelle noch schneller ist? Oder weiß Du gar nicht, daß es diese trigonometrischen Funktionen in LabVIEW zu Hauf gibst und denkst, daß Du jeden trigonomtrischen Wert mit Reihenentwicklung berechnen mußt?
' schrieb:Ich habs jetzt mal gemessen: Die Berechnung eine Sinuswertes dauert auf meinem 5 Jahre alten PC mit Athlon 3E-8s. Worin besteht denn Deiner Ansicht nach der besondere Aufwand, "einen Sinus neu zu berechnen" Meinst Du, daß so eine Tabelle noch schneller ist? Oder weiß Du gar nicht, daß es diese trigonometrischen Funktionen in LabVIEW zu Hauf gibst und denkst, daß Du jeden trigonomtrischen Wert mit Reihenentwicklung berechnen mußt?
So viele schnelle antworten... hätte ich echt nicht mit gerechnet. vielen dank.
der sinn dieser übung soll darin bestehen, das ganze als reine integergeschichte in ein anderes VI einzubauen. also auch ohne das erst zu berechnen und dann umzuwandeln. also das in meinem haupt VI keinerlei doubles vorkommen. es müsste dieses array also letzlich noch mit nem faktor 10^5 multipliziert werden.
ist das verständlicher?
Hallo,
was hast Du denn damit im späteren Verlauf vor und was verstehst Du unter einem korrespondierendem Sinuswert?
Wenn man das weiß, dann kann man Dir helfen.

In LabVIEW gibt es jedenfalls sehr viele trigonometrischen Funktionen (Mathematics->Elementary->Trigonometric) Da ist bestimmt auch was für Dich dabei.

Um weiterzuhelfen wäre eine genauere Beschreibung allerdings hilfreich.
Gruß Markus
' schrieb:Hallo,
ich möchte ein array erstellen, welches auf der einen seite werte von 0 bis 2*pi und auf der anderen seite
deren korrespondierende sinuswerte enthält. aus diesem array möchte ich dann ohne den sinus erneut zu berechen mit gegebenen winkeln die korrespondieren werte auslesen.
leider scheitern meine fähigkeiten scheinbar bereits daran, ein array zu erzeugen, welches beliebig viele werte zwischen 0 und 2*pi beinhaltet.
über hilfestellungen, anregungen, links würde ich mich freuen.
(sollte ein solches thema bereits existieren bitte ich um einen hinweis, ich habe eigentlich gewissenhaft vorher gesucht)
mfg
' schrieb:Und um einen Sinus per Analoput zuerzeugen gibts Generatorn die per GPIB/USB/RS232 angesteuert werden, oder man mnimmt gleich nen DDS-IC von Analog Devices.
Gibts nicht auch bei den Waveform-VIs eines welches einen Sinus erzeugen kann?
Oder die ganz einfache Methode, dem User die Anzahl N der Stützwerte eingeben lassen und eine Schleife über N laufen lassen und i*2*Pi/N berechnen und den Sinus davon. (i= Iteratorionszähler der Schleife)
Gruß, Rob
Hallo Rob,
habe deinen vorschlag mal versucht in die tat umzusetzen. habe schonmal den sinus versucht daraus zu holen aber irgendwie kommt da bei mir nur murx raus. was mach ich da noch falsch??
' schrieb:So viele schnelle antworten... hätte ich echt nicht mit gerechnet. vielen dank.
der sinn dieser übung soll darin bestehen, das ganze als reine integergeschichte in ein anderes VI einzubauen. also auch ohne das erst zu berechnen und dann umzuwandeln. also das in meinem haupt VI keinerlei doubles vorkommen. es müsste dieses array also letzlich noch mit nem faktor 10^5 multipliziert werden.
ist das verständlicher?
Selbst wenn man die trigonometrischen Funktionen als Fixed-Point-Operationen implementriert sollten die schneller sein als eine Tabelle mit N (N->zich tausend) Werten zu durchsuchen.
Wo zu brauchst Du das ganze denn?
LV-RT FPGA mit wenig Platz?
Gruß, Rob
' schrieb:Hallo Rob,
habe deinen vorschlag mal versucht in die tat umzusetzen. habe schonmal den sinus versucht daraus zu holen aber irgendwie kommt da bei mir nur murx raus. was mach ich da noch falsch??
Hmm,
Leider kann ich mit Deinem VI nix anfangen, da ich nur LV 7.0 hab.
Mach doch mal nen screenshot von Deinem VI , speicher ihn als JPG/PNG und häng ihn hier mal an.
' schrieb:der sinn dieser übung soll darin bestehen, das ganze als reine integergeschichte in ein anderes VI einzubauen. also auch ohne das erst zu berechnen und dann umzuwandeln. also das in meinem haupt VI keinerlei doubles vorkommen. es müsste dieses array also letzlich noch mit nem faktor 10^5 multipliziert werden.
ist das verständlicher?
Nein, denn Die Frage nach dem "Warum" wird mit Deiner Antwort lediglich in die nächste Ebene geschoben. Sie lautet jetzt: Warum braucht Du denn unbedingt so ein VI ohne Gleitkomma-Formate?