Pregunta
Recepción de los valores de I y Q a través de control remoto. ¿Cómo se insertan los valores de I y Q en el flujo de datos?
Recepción de los valores de I y Q a través de control remoto. ¿Cómo se insertan los valores de I y Q en el flujo de datos?
Lectura remota de datos I/Q desde el FSV de R&S
En la descripción se explica el formato de la lectura de datos I/Q en modo binario. El orden de los datos I y Q en la secuencia de binaria de bytes está especificada por el formato de la transferencia. Hay tres formatos de transferencia distintos.
El comando de control remoto para especificar el formato de transferencia es:
TRACe<n>:IQ:DATA:FORMat <Format>
Los tres formatos de transferencia tienen el nombre siguiente:
COMPatible -> 512 k muestras de datos I, 512 k muestras de datos Q, 512 k muestras de datos I ......
IQBLock -> bloque de datos I, bloque de datos Q
IQPair -> muestra de datos I, muestra de datos Q, muestra de datos I, muestra de datos Q, muestra de datos I ......
El dibujo contiene muestras (no bytes). Cuatro bytes contienen una muestra.
En el caso de los bloques de datos de 512 k muestras de datos I es: 512 k muestras = 512 * 1024 = 524 288 muestras
En el caso de los bloques de datos de 512 k muestras de datos Q es: 512 k muestras = 512 * 1024 = 524 288 muestras
Hay dos formas distintas de iniciar una transferencia de datos: obtener todos los datos de una vez y obtener los datos en pequeñas cantidades.
Para obtener todos los datos de una vez: TRACe<n>:IQ:DATA?
Para obtener los datos en pequeñas cantidades: TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
El número global de bytes de datos transferidos a través de la interfaz es el siguiente:
L = H + s * b * i
L -> número global de bytes de datos transferidos
H -> longitud de la información de encabezamiento (ver la especificación del encabezamiento al final de esta nota)
s -> número de muestras
b -> siempre 4 porque cuatro bytes contienen una muestra
i -> siempre 2 porque una muestra incluye datos I y datos Q
Ejemplos:
===================================================================================================
Formato de transferencia: "COMPatible"
Número de muestras medidas: 10
Número de bytes por transferir: 10 muestras * 4 * 2 + encabezamiento = 80 bytes + encabezamiento
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA?
El flujo de datos contiene: Encabezamiento
40 bytes datos I
40 bytes datos Q
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
El flujo de datos contiene: Encabezamiento
12 bytes datos I
12 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
El flujo de datos contiene: Encabezamiento
12 bytes datos I
12 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
El flujo de datos contiene: Encabezamiento
12 bytes datos I
12 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
==============================================================
==============================================================
Formato de transferencia: "COMPatible"
Número de muestras medidas: 700 000
Número de bytes por transferir: 700 000 muestras * 4 * 2 + encabezamiento = 5 600 000 bytes + encabezamiento
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA?
El flujo de datos contiene: Encabezamiento
2 097 152 bytes datos I
2 097 152 bytes datos Q
702 848 bytes datos I
702 848 bytes datos Q
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
El flujo de datos contiene: Encabezamiento
20 000 bytes datos I
20 000 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600 000
El flujo de datos contiene: Encabezamiento
2 097 152 bytes datos I
2 097 152 bytes datos Q
302 848 bytes datos I
302 848 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 605 000, 95 000
El flujo de datos contiene: Encabezamiento
380 000 bytes datos I
380 000 bytes datos Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Formato de transferencia: "IQBLock"
Número de muestras medidas: 10
Número de bytes por transferir: 10 muestras * 4 * 2 + encabezamiento = 80 bytes + encabezamiento
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA?
El flujo de datos contiene: Encabezamiento
40 bytes datos I
40 bytes datos Q
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
El flujo de datos contiene: Encabezamiento
12 bytes datos I
12 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
El flujo de datos contiene: Encabezamiento
12 bytes datos I
12 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
El flujo de datos contiene: Encabezamiento
12 bytes datos I
12 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
==============================================================
==============================================================
Formato de transferencia: "IQBLock"
Número de muestras medidas: 700 000
Número de bytes por transferir: 700 000 muestras * 4 * 2 + encabezamiento = 5 600 000 bytes + encabezamiento
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA?
El flujo de datos contiene: Encabezamiento
2 800 000 bytes datos I
2 800 000 bytes datos Q
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
El flujo de datos contiene: Encabezamiento
20 000 bytes datos I
20 000 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600 000
El flujo de datos contiene: Encabezamiento
24 000 000 bytes datos I
24 000 000 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 605 000, 95 000
El flujo de datos contiene: Encabezamiento
380 000 bytes datos I
380 000 bytes datos Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Formato de transferencia: "IQPair"
Número de muestras medidas: 10
Número de bytes por transferir: 10 muestras * 4 * 2 + encabezamiento = 80 bytes + encabezamiento
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA?
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
........
........
4 bytes datos I
4 bytes datos Q
En total, hay 40 bytes datos I y 40 bytes datos Q
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
==============================================================
==============================================================
Formato de transferencia: "IQPair"
Número de muestras medidas: 700 000
Número de bytes por transferir: 700 000 muestras * 4 * 2 + encabezamiento = 5 600 000 bytes + encabezamiento
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA?
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
......
......
4 bytes datos I
4 bytes datos Q
En total, hay 2 800 000 bytes datos I y 2 800 000 bytes datos Q
------------------------------------------------------------------------------------------------------------
Utilizando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
......
......
4 bytes datos I
4 bytes datos Q
En total, hay 20 000 bytes datos I y 20 000 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600 000
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
......
......
4 bytes datos I
4 bytes datos Q
En total, hay 24 000 000 bytes datos I y 24 000 000 bytes datos Q
TRACe<n>:IQ:DATA:MEMory? 605 000, 95 000
El flujo de datos contiene: Encabezamiento
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
4 bytes datos I
4 bytes datos Q
......
......
4 bytes datos I
4 bytes datos Q
En total, hay 380 000 bytes datos I y 380 000 bytes datos Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Especificación del encabezamiento de un flujo de datos binarios:
#45168xxxxxxxx
El carácter ASCII # introduce el bloque de datos. El número siguiente indica cuántos de los dígitos siguientes describen la longitud del bloque de datos. En el ejemplo, los 4 dígitos siguientes indican una longitud de 5168 bytes. Siguen los bytes de datos. Durante la transmisión de estos bytes de datos, se ignoran los "End" y otras señales de control hasta que se transmiten todos los bytes.
Este formato solo admite un recuento de bytes hasta 9 dígitos para el número de bytes. Si hay más de 999 999 999 bytes, se utiliza el siguiente formato adicional.
#(1100000000) xxxxxxxx
Recuento de longitud de bytes si va entre paréntesis. En este ejemplo, el recuento de bytes indica una longitud de 1 100 000 000 bytes. Siguen los bytes de datos después del cierre de paréntesis.