FAQs from Rohde & Schwarz

Exemplo de como gerar manualmente um arquivo *.wv com o Python

Descrição

Eu quero gerar manualmente um arquivo de forma de onda (*.wv) com Python, que eu possa carregar mais tarde no meu gerador de sinais vetoriais.

Resolução

Para gerar um arquivo *.wv manualmente, você precisa dos dados I e Q de sua forma de onda e da frequência de amostragem (clock) com a qual o sinal é amostrado.

Neste exemplo fácil é usado um clock de 10 MHz e uma sequência I/Q de 20 amostras.

Exemplo-perguntas-frequentes-sobre-como-gerar-manualmente-um-arquivo-.wv com-Python_01

No cabeçalho do arquivo de forma de onda são inseridas as chamadas etiquetas. As etiquetas TYPE, CLOCK, LEVEL OFFS e WAVEFORM são obrigatórias para cada forma de onda.

Todas as outras etiquetas são opcionais e podem ser inseridas após a etiqueta TYPE em ordem arbitrária.

O intervalo numérico entre –1,0 e +1,0 dos dados I e Q corresponde à faixa de modulação do conversor A/D de 16 bits de forma de onda de -32767 a +32767.

Esses números inteiros com sinal de 16 bits devem ser convertidos para os valores I e Q resultantes, representados no formato hexadecimal little endian.

Em seguida, os dados devem ser inseridos em formato binário em sua etiqueta WAVEFORM com a seguinte estrutura:

  • Calcular o comprimento
  • Comprimento = Número de pares de I/Q * 4 + 1 = 20*4 + 1 = 81 bytes
  • Coloque a cadeia de caracteres {WAVEFORM-81:# no início do conjunto de dados
  • Coloque o símbolo } no final do conjunto de dados

Depois de executar o código acima, o arquivo gerado pode ser aberto com o R&S®ARB Toolbox e disponibiliza a forma de onda a seguir. Comparando os dados I e Q do código Python, é possível ver que os dados foram gerados corretamente.

Exemplo-perguntas-frequentes-sobre-como-gerar-manualmente-um-arquivo-.wv com-Python_02

Referências:
Manual do usuário do SMBV100B
https://www.rohde-schwarz.com/produkte/messtechnik/vektorsignalgeneratoren/rs-smbv100b-vektorsignalgenerator_63493-519808.html