FAQs from Rohde & Schwarz

Transfert de données en mode I/Q

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éponse

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 ......

I/Q mode data transfer - FSV

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.