Pergunta
Recebi os valores de I e Q via controle remoto. Como são inseridos os valores de I e Q no fluxo de dados?
Recebi os valores de I e Q via controle remoto. Como são inseridos os valores de I e Q no fluxo de dados?
Leitura remota de dados I/Q do R&S®FSV
A descrição explica os formatos da leitura de dados I/Q em modo binário. A ordem da informação I e Q em fluxo de bytes binários é especificado pelo formato de transferência. Foram especificados três formatos diferentes de transferência.
O comando remoto para especificar o formato de transferência é
“TRACe<n>:IQ:DATA:FORMat <Format>”
Esses três formatos de transferência são nomeados da seguinte forma:
“COMPatible” -> 512k I data, 512k Q data samples, 512k I data...
“IQBLock” -> I data block, Q data block
“IQPair” -> I data sample, Q data sample, I data sample, Q data sample, I data ...
O desenho contém amostras (não bytes). Quatro bytes contêm o conteúdo de uma amostra.
No caso dos blocos de dados de 512k, a amostra de dados I é: amostras de 512k = 512 * 1024 = 524288 amostras
No caso dos blocos de dados de 512k, a amostra de dados Q é: amostras de 512k = 512 * 1024 = 524288 amostras
Há duas formas diferentes de iniciar a transferência de dados: receber todos os dados de uma vez e receber os dados em pequenas quantidades.
Receber todos os dados de uma vez: “TRACe<n>:IQ:DATA?”
Receber todos os dados em pequenas quantidades: TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
O número total de bytes de dados transferidos através da interface é o seguinte:
L = H + s * b * i
L -> número total de bytes de dados transferidos
H -> comprimento de informações de cabeçalho (ver especificação de cabeçalho no final desta nota)
s -> número de amostras
b -> sempre 4 porque quatro bytes contêm o conteúdo de uma amostra
i -> sempre 2 porque uma amostra faz a amostra de dados I e Q
Exemplos:
===================================================================================================
Formato de transferência: COMPatible
Número de amostras medidas: 10
Número de bytes a transferir: 10 amostras * 4 * 2 + cabeçalho = 80 bytes + cabeçalho
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA?
O fluxo de dados contém: Cabeçalho
40 bytes dados I
40 bytes dados Q
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
O fluxo de dados contém: Cabeçalho
12 bytes dados I
12 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
O fluxo de dados contém: Cabeçalho
12 bytes dados I
12 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
O fluxo de dados contém: Cabeçalho
12 bytes dados I
12 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
==============================================================
==============================================================
Formato de transferência: COMPatible
Número de amostras medidas: 700000
Número de bytes a transferir: 700000 amostras * 4 * 2 + cabeçalho = 5600000 bytes + cabeçalho
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA?
O fluxo de dados contém: Cabeçalho
2097152 bytes dados I
2097152 bytes dados Q
702848 bytes dados I
702848 bytes dados Q
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
O fluxo de dados contém: Cabeçalho
20000 bytes dados I
20000 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
O fluxo de dados contém: Cabeçalho
2097152 bytes dados I
2097152 bytes dados Q
302848 bytes dados I
302848 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
O fluxo de dados contém: Cabeçalho
380000 bytes dados I
380000 bytes dados Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Formato de transferência: IQBLock
Número de amostras medidas: 10
Número de bytes a transferir: 10 amostras * 4 * 2 + cabeçalho = 80 bytes + cabeçalho
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA?
O fluxo de dados contém: Cabeçalho
40 bytes dados I
40 bytes dados Q
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
O fluxo de dados contém: Cabeçalho
12 bytes dados I
12 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
O fluxo de dados contém: Cabeçalho
12 bytes dados I
12 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
O fluxo de dados contém: Cabeçalho
12 bytes dados I
12 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
==============================================================
==============================================================
Formato de transferência: IQBLock
Número de amostras medidas: 700000
Número de bytes a transferir: 700000 amostras * 4 * 2 + cabeçalho = 5600000 bytes + cabeçalho
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA?
O fluxo de dados contém: Cabeçalho
2800000 bytes dados I
2800000 bytes dados Q
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
O fluxo de dados contém: Cabeçalho
20000 bytes dados I
20000 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
O fluxo de dados contém: Cabeçalho
24000000 bytes dados I
24000000 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
O fluxo de dados contém: Cabeçalho
380000 bytes dados I
380000 bytes dados Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Formato de transferência: IQPair
Número de amostras medidas: 10
Número de bytes a transferir: 10 amostras * 4 * 2 + cabeçalho = 80 bytes + cabeçalho
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA?
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
........
........
4 bytes dados I
4 bytes dados Q
Ao todo, são 40 bytes de dados I e 40 bytes de dados Q
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 3, 3
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 6, 3
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
TRACe<n>:IQ:DATA:MEMory? 9, 1
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
==============================================================
==============================================================
Formato de transferência: IQPair
Número de amostras medidas: 700000
Número de bytes a transferir: 700000 amostras * 4 * 2 + cabeçalho = 5600000 bytes + cabeçalho
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA?
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
......
......
4 bytes dados I
4 bytes dados Q
Ao todo, são 2800000 bytes de dados I e 2800000 bytes de dados Q
------------------------------------------------------------------------------------------------------------
Usando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
......
......
4 bytes dados I
4 bytes dados Q
Ao todo, são 20000 bytes de dados I e 20000 bytes de dados Q
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
......
......
4 bytes dados I
4 bytes dados Q
Ao todo, são 24000000 bytes de dados I e 24000000 bytes de dados Q
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
O fluxo de dados contém: Cabeçalho
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
4 bytes dados I
4 bytes dados Q
......
......
4 bytes dados I
4 bytes dados Q
Ao todo, são 380000 bytes de dados I e 380000 bytes de dados Q
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Especificação do cabeçalho de um fluxo de dados binário:
#45168xxxxxxxx
O caractere # ASCII introduz o bloco de dados. O próximo número indica a quantidade dos dígitos seguintes que descrevem o comprimento do bloco de dados. No exemplo, os seguintes 4 dígitos indicam um comprimento de 5168 bytes. Seguem os bytes de dados. Durante a transmissão desses bytes de dados, todos os sinais de controle End ou outros sinais são ignorados até que todos os bytes sejam transmitidos.
Esse formato somente suporta uma contagem de bytes de até 9 dígitos para o número de bytes. Para mais de 999999999 bytes, o seguinte formato adicional é usado:
#(1100000000) xxxxxxxx
O comprimento de Byte é contado se colocado entre parênteses. No exemplo, a contagem de bytes indica um comprimento de 1.100.000.000 bytes. Os dados de bytes seguem após o fechamento do parênteses.