Désignation
Je souhaite générer manuellement un fichier de forme d'onde (*.wv) avec Python, que je puisse charger dans mon générateur de signaux vectoriels.
Je souhaite générer manuellement un fichier de forme d'onde (*.wv) avec Python, que je puisse charger dans mon générateur de signaux vectoriels.
Afin de générer un fichier *.wv manuellement, vous avez besoin des données I et Q de votre forme d'onde et de la fréquence d'échantillonnage (horloge) avec laquelle le signal a été échantillonné.
Dans cet exemple simple, une horloge de 10 MHz et une séquence I/Q de 20 échantillons sont utilisés.
Dans l'en-tête du fichier de la forme d'onde, ce que l'on appelle des balises sont insérées. Les balises TYPE, CLOCK, LEVEL OFFS et WAVEFORM sont obligatoires pour chaque forme d'onde.
Toutes les autres balises sont optionnelles et peuvent être insérées après la balise TYPE dans un ordre arbitraire.
La gamme numérique entre –1.0 et +1.0 des données I et Q correspond à la gamme de modulation de la forme d'onde sur convertisseur N/A 16 bits de -32767 à +32767.
Ces nombres entiers 16 bits avec signe doivent être convertis en valeurs résultantes I et Q représentées au format hexadécimal Little endian.
Donc les données doivent être insérées au format binaire au sein de votre balise WAVEFORM avec la structure suivante :
Après l'exécution du code précédent, le fichier généré peut être ouvert avec le R&S ARB Toolbox et délivrer la forme d'onde suivante. Par rapport aux données I et Q du code Python, on peut voir que les données ont été correctement générées.
Références :
Manuel d'utilisation du SMBV100B
https://www.rohde-schwarz.com/produkte/messtechnik/vektorsignalgeneratoren/rs-smbv100b-vektorsignalgenerator_63493-519808.html