Komplexe Signale in LabVIEW

Labview bietet ein umfangreiches Repertoire zur Programmierung mit Komplexen Zahlen.

Die Komplexen Zahlen selbst sind ein eigenes Datenformat (Arrays aus jeweils 2 Elementen, dem Real- und Imaginärteil). Für die Erzeugung von Komplexen Zahlen, deren Aufsplittung in die Komponenten, die Umrechnung von Kartesischen zu Polarkoordinaten (Betrag und Phase) etc. finden sich VIs in ProgrammierungÆNumerischÆKomplex.

Weiterhin sind viele VIs polymorph ausgelegt, passen sich dem Eingangsdatenformat an und können somit Komplexe Zahlen, -Arrays, -Signalverläufe etc. direkt verarbeiten.

Eine besondere Rolle haben die Transformations-VIs. Da im Weiteren verstärkt im Frequenzbereich gearbeitet werden soll, sind die Fouriertransformation und deren Umkehrung, die Inverse-Fouriertransformation, besonders wichtig.

Die Fouriertransformation und deren programmtechnische Abbildung die Fast Fouriertransformation (FFT und iFFT) wird in [10] und [9] ausführlich beschrieben.

Wichtig ist hier das Grundprinzip. Aus einer Zeitfunktion, z. B. moduliertes Signal, werden alle Frequenzkomponenten und deren Stärke berechnet. Man bezeichnet dies als Spektrale Leistungsdichte über die Frequenz.

Da mit Diskreten Sequenzen gerechnet wird, handelt es sich um die Diskrete Variante der FFT und iFFT. Weiterhin wird hier die Variante genutzt, die ein Komplexes Eingangssignal in den Frequenzbereich transformiert, dort ein Komplexes Spektrum nach Bild 23 erzeugt.

Wird ein Reales Signal in den Realteil eingebracht, daher der Imaginärteil ist null, so ergeben sich die beschriebenen positiven und negativen Frequenzanteile. Ein zusätzliches Signal eingespeist in den Imaginärteil würde sich dem beschriebenen Frequenzspektrum überlagern, also weitere Real- und Imaginärteile im Spektrum erzeugen. Dabei ist zu berücksichtigen, dass das Signal mit j multipliziert wird (a + jb).

Der erstellte Zweitongenerator kann einfach um verschiedene Spektraldarstellungen erweitert werden. Bild 24 zeigt das Blockdiagramm, Bild 25 das Frontpanel mit einem Anwendungsfall.


 

 

Bild 24: Blockdiagramm modifizierter Zweitongenerator

Bild 24: Blockdiagramm modifizierter Zweitongenerator HIGHRES Version

 

Bild 25: Frontpanel modifizierter Zweitongenerator

In der programmtechnischen Umsetzung ist zu beachten, dass die FFT am effizientesten mit einer Blockgröße der Basis 2 arbeitet. Das Ergebnis ist durch die Blockgröße zu teilen, um ein richtig skaliertes Spektrum zu erhalten.

Die X-Achse des Graphen wurde durch die Anzeige einer relativen Frequenz ersetzt. Dies geschieht durch Bündelung des Startwertes und Inkrements der Skala mit dem Signal.

Zusätzlich wurde die Verkürzung der Latenzzeit durch die Bildung eines kleineren Sinussignal-Arrays entfernt, zugunsten einer besseren Übersichtlichkeit. Mit einer Sekunde Latenzzeit kann man für den gegeben Zweck leben.  

Der Labview FFT-Algorithmus erstellt das Spektrum normalerweise mit der niedrigsten Frequenz am Rande des Ergebnis-Arrays, dann zunehmende positive und negative Frequenz bis zur +- halben Abtastfrequenz in der Mitte. Mittels des Schalters FFT-Shift wird das Ergebnis-Array so umsortiert, dass sich die Nullkomponente in der Mitte befindet und die Frequenzen zu den Rändern zunehmen. Dies ist die im Amateurfunk übliche  Darstellungsweise.

Mit dem modifizierten Zweitongenerator kann die Theorie nun anhand einiger Fälle bestätigt werden.

Um das in den Realteil der FFT eingespeiste Signal (Sinus 1) von dem in den Imaginärteil der FFT Eingespeisten (Sinus 2) zu unterscheiden, wähle man zwei unterschiedliche Frequenzen, hier 5000Hz und 10000Hz. Die Signale können über die Amplitude ein- und ausgeschaltet werden. Eine Phasenverschiebung ist vor dem Starten des VIs einzugeben.

Fall 1: Sinus in Realteil, 5 kHz

 

Der Exponent der e-Funktion gibt an, ob die Frequenz positiv oder negativ ist (Minuszeichen). Der j Faktor vor der e-Funktion zeigt, dass die Spektralspitze auf der Imaginären Achse liegt. Fehlt das j, ist es die Reale Achse. Der Vorfaktor 0,5 gewichtet die Spektralspitze. Wurde bei der FFT richtig skaliert, sollte dieser Wert direkt ablesbar sein.

Es zeigen sich Spektralspitzen mit der Größe 0,5. Diese liegen beide auf der Imaginären Achse, bei plus und minus 5 kHz. Bei positiver Frequenz negativ, bei negativer Frequenz positiv. Die Theorie ist bestätigt.

 

Fall 2: Kosinus in Realteil, 5 kHz

 

Um einen Kosinus statt des Sinus zu erzeugen, ist die Phase um + 90 Grad zu verstellen. Das VI beginnt gerade 90 Grad später mit der Sinusfunktion, also mit einem Kosinus.

Die Spektralspitzen finden sich wie erwartet.

 

Fall 3 (und 4): Sinus (und Kosinus) in Imaginärteil, 10 kHz

 

Da in den Imaginärteil der FFT eingespeist wird, ist das Eingangssignal mit j zu multiplizieren. Aus der Definition ergibt sich: j mal j = -1

Die erwarteten Spektralspitzen zeigen sich auch hier.

Ähnliches gilt für die Einspeisung eines 10 kHz Kosinus in den Imaginärteil der FFT.

 

Fall 5: Sinus 5 kHz in den Realteil , Sinus 10 kHz in den Imaginärteil

 

Bild 25 zeigt diesen Fall. Alle Spektralspitzen sind da, wo sie erwartet wurden.

 

Fall 6: Kosinus 5 kHz in den Realteil, Sinus 5 kHz in den Imaginärteil

Die Rechnung zeigt, dass sich die Terme teilweise neutralisieren, teilweise addieren. Wie auch aus dem Spektrum ersichtlich, ist das Resultat lediglich eine Spektralspitze bei der positiven Frequenz, allerdings mit der Gewichtung eins (Energieerhaltung).

Das entstandene Signal mit ausschließlich positiven Frequenzanteilen wird als Analytisches Signal bezeichnet.