Frage
Empfangen der I- und Q-Werte per Fernsteuerung. Wie werden die I- und Q-Werte in den Datenstrom eingefügt?
Empfangen der I- und Q-Werte per Fernsteuerung. Wie werden die I- und Q-Werte in den Datenstrom eingefügt?
Fernauslesen der I/Q-Daten vom R&S FSV
Die Beschreibung erläutert die Formate für das Auslesen der I/Q-Daten im Binärmodus. Die Reihenfolge der I- und Q-Informationen im binären Byte-Strom wird durch das Übertragungsformat bestimmt. Es sind drei verschiedene Übertragungsformate definiert.
Der Fernsteuerbefehl für die Festlegung des Übertragungsformats lautet
TRACe<n>:IQ:DATA:FORMat <Format>
Diese drei Übertragungsformate haben die folgenden Bezeichnungen:
COMPatible -> 512k I-Musterdaten, 512k Q -Musterdaten, 512k I-Daten ......
IQBLock -> I-Datenblock, Q-Datenblock
IQPair -> I-Musterdaten, Q-Musterdaten, I-Musterdaten, Q-Musterdaten, I-Daten ......
Die Zeichnung enthält Muster (keine Bytes). Vier Bytes enthalten die Inhalte eines Musters.
Im Fall von Datenblöcken sind 512k I-Musterdaten: 512k Muster = 512 * 1024 = 524288 Muster
Im Fall von Datenblöcken sind 512k Q-Musterdaten: 512k Muster = 512 * 1024 = 524288 Muster
Es gibt zwei verschiedene Methoden für die Initiierung einer Datenübertragung: Abrufen aller Daten in einem Vorgang und Abrufen der Daten in kleinen Teileinheiten.
Abrufen aller Daten in einem Vorgang: TRACe<n>:IQ:DATA?
Abrufen der Daten in kleinen Teileinheiten: TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
Die Gesamtanzahl der über die Schnittstelle übertragenen Datenbytes ist:
L = H + s * b * i
L -> Gesamtanzahl der übertragenen Datenbytes
H -> Länge der Header-Informationen (siehe Header-Spezifikation am Ende dieser Hinweise)
s -> Anzahl der Muster
b -> immer 4, da vier Bytes die Inhalte eines Musters enthalten
i -> immer 2, da ein Muster I-Daten und Q-Daten umfasst
Beispiele:
===================================================================================================
Übertragungsformat: COMPatible
Anzahl der gemessenen Muster: 10
Anzahl der zu übertragenden Bytes: 10 Muster * 4 * 2 + Header = 80 Byte + Header
------------------------------------------------------------------------------------------------------------
Verwenden von TRACe<n>:IQ:DATA?
Der Datenstrom enthält: Header
40 Byte I-Daten
40 Byte Q-Daten
------------------------------------------------------------------------------------------------------------
Verwenden von Using TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Der Datenstrom enthält: Header
12 Byte I-Daten
12 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 3, 3
Der Datenstrom enthält: Header
12 Byte I-Daten
12 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 6, 3
Der Datenstrom enthält: Header
12 Byte I-Daten
12 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 9, 1
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
==============================================================
==============================================================
Übertragungsformat: COMPatible
Anzahl der gemessenen Muster: 700000
Anzahl der zu übertragenden Bytes: 700000 Muster * 4 * 2 + Header = 5600000 Byte + Header
------------------------------------------------------------------------------------------------------------
Verwenden von TRACe<n>:IQ:DATA?
Der Datenstrom enthält: Header
2097152 Byte I-Daten
2097152 Byte Q-Daten
702848 Byte I-Daten
702848 Byte Q-Daten
------------------------------------------------------------------------------------------------------------
Verwenden von Using TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Der Datenstrom enthält: Header
20000 Byte I-Daten
20000 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Der Datenstrom enthält: Header
2097152 Byte I-Daten
2097152 Byte Q-Daten
302848 Byte I-Daten
302848 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Der Datenstrom enthält: Header
380000 Byte I-Daten
380000 Byte Q-Daten
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Übertragungsformat: IQBLock
Anzahl der gemessenen Muster: 10
Anzahl der zu übertragenden Bytes: 10 Muster * 4 * 2 + Header = 80 Byte + Header
------------------------------------------------------------------------------------------------------------
Verwenden von TRACe<n>:IQ:DATA?
Der Datenstrom enthält: Header
40 Byte I-Daten
40 Byte Q-Daten
------------------------------------------------------------------------------------------------------------
Verwenden von Using TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Der Datenstrom enthält: Header
12 Byte I-Daten
12 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 3, 3
Der Datenstrom enthält: Header
12 Byte I-Daten
12 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 6, 3
Der Datenstrom enthält: Header
12 Byte I-Daten
12 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 9, 1
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
==============================================================
==============================================================
Übertragungsformat: IQBLock
Anzahl der gemessenen Muster: 700000
Anzahl der zu übertragenden Bytes: 700000 Muster * 4 * 2 + Header = 5600000 Byte + Header
------------------------------------------------------------------------------------------------------------
Verwenden von TRACe<n>:IQ:DATA?
Der Datenstrom enthält: Header
2800000 Byte I-Daten
2800000 Byte Q-Daten
------------------------------------------------------------------------------------------------------------
Verwenden von Using TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Der Datenstrom enthält: Header
20000 Byte I-Daten
20000 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Der Datenstrom enthält: Header
24000000 Byte I-Daten
24000000 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Der Datenstrom enthält: Header
380000 Byte I-Daten
380000 Byte Q-Daten
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Übertragungsformat: IQPair
Anzahl der gemessenen Muster: 10
Anzahl der zu übertragenden Bytes: 10 Muster * 4 * 2 + Header = 80 Byte + Header
------------------------------------------------------------------------------------------------------------
Verwenden von TRACe<n>:IQ:DATA?
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
........
........
4 Byte I-Daten
4 Byte Q-Daten
Insgesamt sind es 40 Byte I-Daten und 40 Byte Q-Daten
------------------------------------------------------------------------------------------------------------
Verwenden von Using TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 3, 3
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 6, 3
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 9, 1
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
==============================================================
==============================================================
Übertragungsformat: IQPair
Anzahl der gemessenen Muster: 700000
Anzahl der zu übertragenden Bytes: 700000 Muster * 4 * 2 + Header = 5600000 Byte + Header
------------------------------------------------------------------------------------------------------------
Verwenden von TRACe<n>:IQ:DATA?
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
......
......
4 Byte I-Daten
4 Byte Q-Daten
Insgesamt sind es 2800000 Byte I-Daten und 2800000 Byte Q-Daten
------------------------------------------------------------------------------------------------------------
Verwenden von Using TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
......
......
4 Byte I-Daten
4 Byte Q-Daten
Insgesamt sind es 20000 Byte I-Daten und 20000 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
......
......
4 Byte I-Daten
4 Byte Q-Daten
Insgesamt sind es 24000000 Byte I-Daten und 24000000 Byte Q-Daten
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Der Datenstrom enthält: Header
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
4 Byte I-Daten
4 Byte Q-Daten
......
......
4 Byte I-Daten
4 Byte Q-Daten
Insgesamt sind es 380000 Byte I-Daten und 380000 Byte Q-Daten
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Spezifikation des Headers eines Binärdatenstroms:
#45168xxxxxxxx
Das ASCII-Zeichen # leitet den Datenblock ein. Die nächste Zahl gibt an, wie viele der folgenden Ziffern die Länge des Datenblocks beschreiben. Im Beispiel geben die 4 folgenden Ziffern eine Länge von 5168 Byte an. Anschließend folgen die Datenbytes. Während der Übertragung dieser Datenbytes werden alle Endzeichen oder andere Steuerzeichen ignoriert, bis alle Bytes übertragen sind.
Dieses Format unterstützt nur eine Byte-Anzahl von bis zu 9 Ziffern für die Anzahl der Bytes. Bei mehr als 999999999 Byte wird das folgende zusätzliche Format verwendet.
#(1100000000) xxxxxxxx
Die Byte-Länge wird in Klammern angegeben. Im Beispiel gibt die Anzahl der Bytes eine Länge von 1.100.000.000 Byte an. Die Datenbytes folgen nach der schließenden Klammer.