Question
Réception des valeurs I et Q via contrôle à distance. Comment les valeurs I et Q sont-elles insérées dans le flux de données ?
Réception des valeurs I et Q via contrôle à distance. Comment les valeurs I et Q sont-elles insérées dans le flux de données ?
Lecture à distance des données I/Q issues du R&S FSV
La description explique les formats des données I/Q en mode binaire. L'ordre des informations I et Q dans le flux d'octets binaires est spécifié par le format de transfert. Trois formats de transfert différents ont été spécifiés.
La commande à distance pour la spécification du format de transfert est
TRACe<n>:IQ:DATA:FORMat <Format>
Ces trois formats de transfert sont nommés comme suit :
COMPatible -> 512 k d'échantillons de données I, 512 k d'échantillons de données Q, 512 k de données I ......
IQBLock -> bloc de données I, bloc de données Q
IQPair -> échantillon de données I, échantillon de données Q, échantillon de données I, échantillon de données Q, données I ......
Le schéma contient des échantillons (pas d'octets). Quatre octets contiennent le contenu d'un échantillon.
Dans le cas de blocs de données de 512 k, le nombre d'échantillons de données I est le suivant : 512 k d'échantillons = 512 * 1 024 = 524 288 échantillons
Dans le cas de blocs de données de 512 k, le nombre d'échantillons de données Q est le suivant : 512 k d'échantillons = 512 * 1 024 = 524 288 échantillons
Il existe deux manières différentes de déclencher un transfert de données : obtention de toutes les données en une seule fois ou obtention des données en petites quantités.
Obtention de toutes les données en une seule fois : TRACe<n>:IQ:DATA?
Obtention de toutes les données en petites quantités : TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
Le nombre total d'octets de données transférés via l'interface est le suivant :
L = H + s * b * i
L -> nombre total d'octets de données transférés
H -> longueur de l'information d'en-tête (voir la spécification d'en-tête à la fin de cette note)
s -> nombre d'échantillons
b -> toujours égal à 4 étant donné que quatre octets renferment le contenu d'un échantillon
i -> toujours égal à 2 étant donné qu'un échantillon représente les données I et Q
Exemples :
===================================================================================================
Format de transfert : COMPatible
Nombre d'échantillons mesurés : 10
Nombre d'octets à transférer : 10 échantillons * 4 * 2 + en-tête = 80 octets + en-tête
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA?
Le flux de données contient : En-tête
40 octets de données I
40 octets de données Q
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Le flux de données contient : En-tête
12 octets de données I
12 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
Le flux de données contient : En-tête
12 octets de données I
12 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
Le flux de données contient : En-tête
12 octets de données I
12 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
==============================================================
==============================================================
Format de transfert : COMPatible
Nombre d'échantillons mesurés : 700 000
Nombre d'octets à transférer : 700 000 échantillons * 4 * 2 + en-tête = 5 600 000 octets + en-tête
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA?
Le flux de données contient : En-tête
2 097 152 octets de données I
2 097 152 octets de données Q
702 848 octets de données I
702 848 octets de données Q
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Le flux de données contient : En-tête
20 000 octets de données I
20 000 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Le flux de données contient : En-tête
2 097 152 octets de données I
2 097 152 octets de données Q
302 848 octets de données I
302 848 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Le flux de données contient : En-tête
380 000 octets de données I
380 000 octets de données Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Format de transfert : IQBLock
Nombre d'échantillons mesurés : 10
Nombre d'octets à transférer : 10 échantillons * 4 * 2 + en-tête = 80 octets + en-tête
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA?
Le flux de données contient : En-tête
40 octets de données I
40 octets de données Q
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Le flux de données contient : En-tête
12 octets de données I
12 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
Le flux de données contient : En-tête
12 octets de données I
12 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
Le flux de données contient : En-tête
12 octets de données I
12 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
==============================================================
==============================================================
Format de transfert : IQBLock
Nombre d'échantillons mesurés : 700000
Nombre d'octets à transférer : 700 000 échantillons * 4 * 2 + en-tête = 5 600 000 octets + en-tête
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA?
Le flux de données contient : En-tête
2 800 000 octets de données I
2 800 000 octets de données Q
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Le flux de données contient : En-tête
20 000 octets de données I
20 000 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Le flux de données contient : En-tête
24 000 000 octets de données I
24 000 000 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Le flux de données contient : En-tête
380 000 octets de données I
380 000 octets de données Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Format de transfert : IQPair
Nombre d'échantillons mesurés : 10
Nombre d'octets à transférer : 10 échantillons * 4 * 2 + en-tête = 80 octets + en-tête
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA?
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
........
........
4 octets de données I
4 octets de données Q
Au total, il y a 40 octets de données I et 40 octets de données Q
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
==============================================================
==============================================================
Format de transfert : IQPair
Nombre d'échantillons mesurés : 700000
Nombre d'octets à transférer : 700 000 échantillons * 4 * 2 + en-tête = 5 600 000 octets + en-tête
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA?
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
......
......
4 octets de données I
4 octets de données Q
Au total, il y a 2 800 000 octets de données I et 2 800 000 octets de données Q
------------------------------------------------------------------------------------------------------------
Utilisation de TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
......
......
4 octets de données I
4 octets de données Q
Au total, il y a 20 000 octets de données I et 20 000 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
......
......
4 octets de données I
4 octets de données Q
Au total, il y a 24 000 000 octets de données I et 24 000 000 octets de données Q
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Le flux de données contient : En-tête
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
4 octets de données I
4 octets de données Q
......
......
4 octets de données I
4 octets de données Q
Au total, il y a 380 000 octets de données I et 380 000 octets de données Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Spécification de l'en-tête d'un flux de données binaires :
#45168xxxxxxxx
Le caractère ASCII # introduit le bloc de données. Le nombre suivant indique combien parmi les chiffres suivants décrivent la longueur du bloc de données. Dans l'exemple, les 4 chiffres suivants indiquent une longueur de 5 168 octets. Les octets de données suivent. Pendant la transmission de ces octets de données, tous les signes de fin ou autres signes de contrôle sont ignorés jusqu'à ce que tous les octets soient transmis.
Ce format supporte uniquement un nombre d'octets jusqu'à 9 chiffres. Pour un nombre supérieur à 999 999 999 octets, le format additionnel suivant est utilisé.
#(1100000000) xxxxxxxx
Le nombre indiquant la longueur d'octets est mis entre parenthèse. Dans l'exemple, le nombre d'octets indique une longueur de 1 100 000 000 octets. Les octets de données suivent après la parenthèse fermante.