Beschreibung
Ich möchte eine Wellenform-Datei (*.wv) manuell mit Python generieren, die ich später in meinen Vektorsignalgenerator laden kann.
Ich möchte eine Wellenform-Datei (*.wv) manuell mit Python generieren, die ich später in meinen Vektorsignalgenerator laden kann.
Um eine *.wv-Datei manuell zu generieren, benötigen Sie die I- und Q-Daten Ihrer Wellenform und die Abtastfrequenz (Takt), mit dem das Signal abgetastet wurde.
In diesem einfachen Beispiel wird ein 10-MHz-Taktsignal und eine I/Q-Folge von 20 Abtastwerten verwendet.
Im Header der Wellenformdatei werden sogenannte Tags eingefügt. Die Tags TYPE, CLOCK, LEVEL OFFS und WAVEFORM sind für jede Wellenform zwingend erforderlich.
Alle weiteren Tags sind optional und können nach dem TYPE-Tag in beliebiger Reihenfolge eingesetzt werden.
Der numerische Bereich zwischen –1,0 und +1.0 der I- und Q-Daten entspricht dem Modulationsbereich des 16-bit-Wellenform-D/A-Konverters von -32767 bis +32767.
Diese Zahlen vom Typ "16 Bit Signed Integer" müssen in die resultierenden I- und Q-Werte konvertiert werden, die im hexadezimalen Little-Endian-Format repräsentiert werden.
Anschließend müssen die Daten im Binärformat mit der folgenden Struktur in Ihr WAVEFORM-Tag eingesetzt werden:
Nach Ausführen des obigen Codes kann die erzeugte Datei mit der R&S ARB Toolbox geöffnet werden und liefert die folgende Wellenform. Indem man die I- und Q-Daten aus dem Python-Code vergleicht, sieht man, dass die Daten korrekt generiert wurden.
Referenzen:
SMBV100B Bedienhandbuch
https://www.rohde-schwarz.com/produkte/messtechnik/vektorsignalgeneratoren/rs-smbv100b-vektorsignalgenerator_63493-519808.html