INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Sinus unterbrechungsfrei ausgeben



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!

29.07.2015, 11:58
Beitrag #1

Chris_EG2 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Mar 2015

2014
-
DE



Sinus unterbrechungsfrei ausgeben
Hi,

ich habe folgendes Problem bei der Ausgabe eines Signals über DAQ:

es soll ein Sinus generiert werden, welcher über ein cdaq-9174 und einem 9263 Modul ausgegeben wird. Der Sinus soll in seinen Parametern (Amplitude, Phase, Frequenz) während der Ausführung veränderbar sein und kontinuierlich ausgegeben werden.
Mit dem angehangenen Programm schaffe ich es aber nicht, dass er ohne Unterbrechung ausgegeben wird. Wenn ich die Sample-Raten von DAQ Write und der Sinuserzeugung gleich setze, bekomme ich pro Schleifendurchlauf 2 mal ein Knackgeräusch auf dem angeschlossenen Körperschallwandler. Je größer ich die Sample-Zahl des Sinus mache, desto länger wird das Signal, allerdings läuft die Schleife dadurch natürlich noch langsamer.
Da komm ich auch schon zu meinem zweiten Problem, der Geschwindigkeit. Ich bekomme gefühlt pro Sekunde einen Schleifendurchlauf und dadurch wird das ganze Programm sehr träge. Zum testen wurde die Sinuserzeugung aus der Schleife genommen (ist dadurch nicht mehr anpassbar im Betrieb), es ruckelt allerdings trotzdem. Daher scheint die Unterbrechung durch den Write zu entstehen.

Habe ich das ganze nun grundlegend falsch verstanden mit der Platzierung der Blöcke in der Schleife? Ich möchte das Signal verändern können um mittels Amplituden- und Frequenzanpassung einen vorhandenen Sinus auszulöschen ("manuelles" Active Noise Canceling, da ich es über einen LMS Baustein ebenfalls nicht schaffe aktuell), daher sollte der Sinus unterbrechungsfrei sein und seine Parameter schnell anzupassen sein (also nicht jedes mal mehrere Sekunden warten, bis eine Eingabe auch umgesetzt wird)

Gruß, Chris


Angehängte Datei(en)
14.0 .vi  Signalausgabe-Sinus.vi (Größe: 194,09 KB / Downloads: 281)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.07.2015, 12:07
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Sinus unterbrechungsfrei ausgeben
Hallo Chris,

Zitat:Ich bekomme gefühlt pro Sekunde einen Schleifendurchlauf
Du erzeugst ein Signal mit einer Samplerate von 20kHz und 20000 Samples. Das ergibt genau eine Sekunde…

Zitat:bekomme ich pro Schleifendurchlauf 2 mal ein Knackgeräusch auf dem angeschlossenen Körperschallwandler
Erzeugst du deine Sinusverläufe auch so, dass du komplette Sinusperioden ausgibst?
Wenn du nur (z.B.) 0.75 Perioden ausgibst, bekommst du natürlich Knacken…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2015, 12:51
Beitrag #3

Chris_EG2 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Mar 2015

2014
-
DE



RE: Sinus unterbrechungsfrei ausgeben
Das mit der einen Sekunde verstehe ich. Wenn ich z.b 80.000 Samples erzeugen lasse, bekomme ich 4 Sekunden lang ein ununterbrochenes Signal. Allerdings kann ich während dieser Laufzeit auch keinerlei Änderungen an den Sinus-Parametern vornehmen. Ist das denn generell möglich, ein kontinuierliches Signal zu erzeugen, welches ich auch jederzeit anpassen kann?

Ob ich komplette Sinus-Verläufe bekomme, kann ich nicht feststellen, aber wie du sagst, deutet ein knacken auf einen unvollständigen Sinus hin. Gibt es denn eine Möglichkeit den Schleifendurchlauf an den Sinus zu koppeln? Oder kann ich der Schleife eine fixe Laufzeit vorgeben und diese dann auf T=1/f setzen?
Ich kann zwar im Sinus-Block angeben, dass es das Signal nicht zurück gesetzt wird nach dem Durchlauf (also kein Knacken mehr), aber dafür kommt es zu einer Phasenverschiebung, die kontraproduktiv ist.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2015, 12:53
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Sinus unterbrechungsfrei ausgeben
Hallo Chris,

Zitat:Gibt es denn eine Möglichkeit den Schleifendurchlauf an den Sinus zu koppeln?
Du könntest die Signalgenerierung an die Sinusfrequenz koppeln: immer eine ganzzahlige Anzahl von Sinusperioden erzeugen lassen!
(Du kannst Fs und #s jeweils passend variieren…)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2015, 13:25
Beitrag #5

Chris_EG2 Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Mar 2015

2014
-
DE



RE: Sinus unterbrechungsfrei ausgeben
Blöd gefragt: wie genau setze ich das dann um mit der Koppelung? Huh

Ist das denn ein allgemeines Problem, dass ich ein unterbrechungsfreies Signal nur innerhalb eines Schleifendurchlaufes erzeugen kann? Also sobald die Schleife erneut startet, wird ein Signal zurück gesetzt und einfach das geschrieben, was gerade als neues Signal erzeugt wurde?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.07.2015, 13:29 (Dieser Beitrag wurde zuletzt bearbeitet: 29.07.2015 13:30 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Sinus unterbrechungsfrei ausgeben
Hallo Chris,

Zitat:wie genau setze ich das dann um mit der Koppelung?
Gehen wir mal von deiner Fs=20kHz aus:
Du willst z.B. ein Sinus mit 120 Hz ausgeben. Wieviele Samples entspricht also eine Periode bei Fs=20kHz? Richtig: 20kHz/120Hz=166.67 Samples. Du willst eine ganzzahlige Anzahl Perioden ausgeben und ein Signal von mind. 0.5s Länge haben: du musst also ein Vielfaches von 166.67 und mindestens 10kS berechnen: also 60 Perioden, die "zufälligerweise" (Big Grin) genau 10kS benötigen…
(Alles einfacher Dreisatz, Mathematik der Klasse 4)

tldr: über #samples kannst du sicherstellen, dass bei festem Fs immer eine ganze Anzahl Sinusperioden ausgegeben wird…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Sinus Sweep Auswerten janso 1 2.725 03.11.2020 16:55
Letzter Beitrag: Freddy
  Encoder - Sinus / Cosinus auswerten nxitimi 17 15.583 25.01.2018 19:26
Letzter Beitrag: Lucki
  Sinus Signal ausgeben mit USB 6009 TobiasSch 3 5.998 21.03.2011 12:03
Letzter Beitrag: jg
  Sinus Störung 10Hz bei Drucksensor m777187 7 8.315 04.11.2010 15:21
Letzter Beitrag: GerdW
  Datenerfassung : 0 bis 20kHz Sinus und Rechteck Aufnnehmen und Abspielen chriss71 0 4.081 09.04.2010 13:02
Letzter Beitrag: chriss71
  Beim Sinus jeden Maximalwert pro Periode erfassen holographics 1 6.894 02.11.2009 22:05
Letzter Beitrag: jg

Gehe zu: