FAQs from Rohde & Schwarz

Transferência de dados no modo I/Q

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?

Resposta

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

I/Q mode data transfer - FSV

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.