LabVIEW – Funktionsgenerator über Soundkarte

GUI

Digitaler Zweikanal

Funktionsgenerator

mit Ausgabe über Audiokarte

und anschließender Spektrum Analyse

 

Problem/ Aufgabenstellung

Ziel dieses Projektes ist die Entwicklung eines digitalen Zweikanal Funktionsgenerators, welcher in vielen Laboren zu finden ist. Damit das Projekt auch einen praktischen Nutzen hat, wird das erzeugte digitale Signal über die Soundkarte als Analogwert ausgegeben und anschließend mit einem RMS Spektrum-Analyser ausgewertet.

Da die Ausgangstreiber von Soundkarten zur Entkopplung einen Kondensator in Reihe benutzen, können prinzipiell nur Wechselspannungen, also keine Gleichspannung ausgegeben werden.

Programmfunktionen

Folgende Funktionen wurden mit dem Programm realisiert:

  • Digitale Anzeige welche die Frequenz in Hz oder in kHz anzeigt
  • Vier verschiedene Wellenformen sind möglich
  • Sinus
  • Dreieck
  • Rechteck
  • Und Sägezahn
  • Zwei Kanäle mit getrennten Amplituden

Beide Kanäle haben die gleiche Frequenz, damit ist es möglich sie gleichzeitig mit einem Oszilloskop messen zu können

  • Im Rechteckbetrieb kann eine Pulsweitenmodulation von 0,1 bis 99,9% vorgenommen werden
  •  Ein DC Offset getrennt für beide Kanäle
  • Über den Stereo-Ausgang sind beide Kanäle verfügbar

 

Programmdokumentation

Das Programm zur Ausgabe der Signale an die Soundkarte ist in zwei parallel ausführbare Bereiche unterteilt. Der Datenaustausch zwischen den Threads ist mit einer Queued-Operation realisiert, welche die vom Produzenten errechneten Signalverläufe an den Konsumenten weitergibt welche dieser dann in den Audio Puffer der Soundkarte schreibt.

Abbildung 1: Blockdiagramm Funktionsgenerator

Abbildung 1: Blockdiagramm Funktionsgenerator

Automatische Messbereichsanpassung

 

Abbildung 2: Kleine Frequenzen

Abbildung 2: Kleine Frequenzen

Da eine Ausgabe für kleine und große Frequenzen über die gleiche Anzeige erfolgen soll ist eine automatische Anpassung von Hz oder kHz sinnvoll. Sonst werden bei großen Werten zu viele Nullen angezeigt was die leichte Lesbarkeit erschwert.

Abbildung 3: Große Frequenzen

Abbildung 3: Große Frequenzen

Deshalb wird vom Programm geprüft ob die Frequenz Hz oder kHz vorliegt und die Einheit sowie der Wert automatisch umgerechnet.

Abbildung 4: Anpassung LCD-Display

Abbildung 4: Anpassung LCD-Display

Berechnung der Frequenz aus Drehknopf und Wertebereich

Zur Feineinstellung der Frequenz ist ein Drehknopf vorhanden welcher in allen Wertebereichen im gewählten Intervall einstellen kann. Auch hier muss erst noch die reale Frequenz errechnet werden.

Für jeden Wertebereich wird ein passender Multiplikator ausgewählt und anschließend mit dem Drehknopf multipliziert.

Abbildung 5: Multiplikation mit Zehnerpotenzen

Abbildung 5: Multiplikation mit Zehnerpotenzen

 

Erzeugung Signalverlaufsdiagramme

Zur Erzeugung der gewünschten Signalverlaufsdiagramme werden zwei Einfache Funktionsgeneratoren aus der Labview Bibliothek benutzt.

Abbildung 6: Einfacher Funktionsgenerator

Abbildung 6: Einfacher Funktionsgenerator

 

Abtast-Info

Dieser benötigt neben den Daten aus dem Frontpanel noch eine Abtastinfo welche sich wie folgt zusammensetzt.

  • Fs <– ist die Sample-Rate pro Sekunde
  • Sample-Anzahl <- ist die Zahl der Samples des Signalverlaufs (einer Schwingung)

Die Frequenz muss immer kleiner gleich der Sample-Rate/2 sein, sonst gibt Labview einen Fehler aus.

Dies ergibt sich aus dem nyquist-shannonsches Abtasttheoremwelches besagt dass eine Frequenz mit mindestens  abzutasten sei.

Konfiguration Soundkarte

Zu Beginn des Programmes ist eine Konfiguration der Soundkarte nötig. Hier werden ähnlich wie bei dem Funktionsgenerator eine Sample- und Abtastrate benötigt Das SubVI erzeugt eine Task-ID, die von den anderen Audio VI’s benötigt wird.

Abbildung 7: Konfiguration Soundkarte

Abbildung 7: Konfiguration Soundkarte

Da beide Sound-Kanäle benötigt werden ist die Kanalzahl auf 2 zu stellen, sowie die Bitrate auf 16bit für eine bestmögliche Qualität. Um einen verzerrungsfreien Betrieb zu gewährleisten, muss im Sample-Modus ein Kontinuierliches Signal erzeugt werden. Die Lautstärke muss auf 100% gesetzt werden da die Amplitude über die beiden Regler am Frontpanel eingestellt werden soll.

Daten in Audio-Puffer schreiben

Als letztes wird der Soundkarten-Puffer mit der von der Queued-Lesen Funktion gelieferten Daten geladen. Dies muss kontinuierlich wiederholt werden, weil der Puffer sonst Gefahr läuft leer zu laufen und die Wiedergabe würde abgehackt werden.

Abbildung 8: Audio-Puffer schreiben und Task-ID löschen

Abbildung 8: Audio-Puffer schreiben und Task-ID löschen

Wird das Programm vom Benutzer beendet sollte der reservierte Task wieder freigegeben werden und die Puffer geleert werden. Dies geschieht mit dem SubVI Audioausgabe löschen.

Spektrum Analyse

Ein 3,5mm Klinke Kabel kann verwendet werden, um das Audioausgangssignal auf den Mikrophon Eingang der Soundkarte zu bringen. Mit dem VI „Spektrum Analyser“ kann das Oszillogramm und Grundwelle, sowie dessen Oberwellen grafisch dargestellt werden.

Abbildung 9: Funktionsplot und Spektrum eines 200 Hz Signals

Abbildung 9: Funktionsplot und Spektrum eines 200 Hz Signals

Fazit

Die beiden Kanäle sehen über den ganzen Frequenzbereich im Signalverlaufsdiagramm sehr sauber aus. Auch gibt es keine Oberwellen oder Verzerrungen und der Offset kann gut eingestellt werden.

Anders sieht es bei der Ausgabe über die Soundkarte aus. Wie erwartet können keine niedrigen Frequenzen, wenn nur stark gedämpft, dargestellt werden. Die untere Grenze liegt bei ca. 200 Hz. Auch ist die Genauigkeit der Amplitudenhöhe nicht linear mit dem Frequenzgang sondern wird stark gedämpft je höher die Frequenz eingestellt ist.

Probleme machen vor allen Dingen nicht sinusförmige Funktionen, da sie durch den Kondensator müssen der eine Art Hochpass darstellt und die Endstufen der Audiokarte keine großen Steigungen im Spannungsverlauf dargestellt bekommen. Bei hohen und niedrigen Frequenzen sind die Oberwellen und Verszerrungen deutlich zu sehen. Aber da PC-Audiokarten keine Labormessgeräte sind und auf die Wiedergabe Sinusförmiger Audio-Daten optimiert sind war so ein Ergebnis zu erwarten. Insbesondere die Frequenzgenauigkeit ist durchaus brauchbar.

Anhang Quellcode

Das LabVIEW Programm wurde mit der Studentenversion 2012 erstellt und kann hier heruntergeladen werden.

Funktionsgenerator

Für ältere Versionen von LabVIEW (ab 8.6) bitte diese Datei benutzen.

Funktionsgenerator mit Audioausgabe LV8.6

Ein Kommentar zu “LabVIEW – Funktionsgenerator über Soundkarte
  1. I want to point out my love for your generosity giving support to those individuals that actually need help with that concern. Your personal dedication to passing the solution up and down turned out to be really practical and has specifically enabled some individuals much like me to get to their desired goals. This important help can mean so much a person like me and additionally to my mates. Warm regards; from everyone of us.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*