罗德信号源:如何生成和转换wv基带波形文件
R&S矢量信号源,例如SMW、SMBV、SGT等,支持用户自定义基带数据波形文件,文件格式是R&S专用的*.wv文件。本文介绍几种wv文件的生成方法,把用户生成的IQ数据保存为wv格式,或把现有数据文件转换为wv格式。分别基于以下平台和软件:Matlab、python、C#和R&S ARB toolbox。
Matlab
R&S信号源官方文件工具包,使用此工具包可以在matlab中将IQ数组及其采样率等信息直接生成R&S信号源的专用*.wv文件,保存在电脑本地,或者控制信号源上传。
https://www.rohde-schwarz.com/applications/r-s-matlab-toolkit-for-signal-generators-application-note_56280-15774.html
工具包中关键函数文件是rs_generate_wave.m,文件开头注释详细的函数说明,其中IQinfo结构数组是必要参数,特别是其中的I/Q两个1*n数组和采样率。
设置参数InstrObj=0,KeepLocalFile=1, 不须连接仪器,生成wv保存本地;如需连接控制信号源上传,InstrObj = rs_connect函数返回值。
以下Matlab代码,是导入*.mat中的IQ数据,预览并生成*.wv文件,保存在本电脑当前路径下:
% #convert *.mat data file
load('IQ.mat');
IQInfo.I_data = Idata; % #I-data(1*n) from mat file
IQInfo.Q_data = Qdata; % #Q-data(1*n) from mat file
IQInfo.clock = 100E6; % #Sample Rate
IQInfo.filename = 'IQ.wv';
% #Plot Data for preview
rs_visualize( IQInfo.clock, IQInfo.I_data, IQInfo.Q_data );
% #generate *.wv file
rs_generate_wave(0, IQInfo, 0, 1) % #generate the wv file
disp(['waveform file "' IQInfo.filename '" saved...']);
Python
通过语句from RsSmw import *导入R&S SMW的官方模块,其它型号矢量信号源也有相应模块;需要预先导入RsSmw和pyVisa模块。此模块中关键函数是create_waveform_file_from_samples,IQ数组和采样率由用户自定义。
以下Python代码依据IQ数组生成*.wv文件:
from RsSmw import *
# 生成IQ数组:i_data,q_data,省略代码...
# 本地wv文件 arbFileExample.wv,采样率100MHz
clock_freq= 100E6
pc_wv_file = 'arbFileExample.wv'
# auto_scale=True代表基带电平自动调节,大值满量程
# ['MARKER LIST 1: 0:1;10:0']:在波形文件起始时刻,USER1输出10个采样时间宽度的脉冲
result = smw.arb_files.create_waveform_file_from_samples(i_data, q_data, pc_wv_file,
clock_freq=clock_freq, auto_scale=True,
additional_tags=['MARKER LIST 1: 0:1;10:0'],
comment='wv example')
C#
C#菜单Tools -> NuGet Packet Manager -> Manage NuGet Packages for Solution… 导入RsSmw。此模块中关键函数是smw.ArbFiles.CreateWaveformFileFromSamples,IQ数组和采样率由用户自定义。
以下C#代码依据IQ数组生成*.wv文件:
// Creating the I/Q vectors as lists: i_data / q_data
var pcWvFileA = @"c:\temp\arbFileAexampleCsharp.wv";
// Samples clock
var clockFreq = 100e6;
var autoScale = true;
var commentA = "Created from I/Q vectors";
// I-component an Q-component data
// var iSamples = ...;
// var qSamples = ...;
// create the pcWvFileA
smw.ArbFiles.CreateWaveformFileFromSamples(iSamples, qSamples, pcWvFileA, clockFreq, autoScale, commentA);
ARB-Toolbox
这是R&S信号源任意波形文件生成工具,官方免费软件,功能有生成多种类型调制信号波形文件、多种文件类型转换为*.wv文件、wv文件分析、控制频谱仪读取IQ数据并生成*.wv波形文件,还可以对数据进行重采样、滤波等操作。
生成的信号类型有:
- Function:自定义函数
- Expression:自定义公式
- AM/FM/PM
- FM Sweep:连续扫频(锯齿或三角)
- Multi Tone:多载波
- Pulse:脉冲(或线性调频)
- Noise:噪声
可以将以下格式的IQ数据文件,转换为*.wv
- Data:数据文件,二进制或文本格式可选,单列的I/Q两个文件或一个双列文件;
- MATLAB:*.mat数据文件,I/Q两个标量数据文件或一个矢量数据文件
- RIQ:*.riq数据文件,R&S PR100保存的文件格式
- WAV:*.wav数据文件,R&S EM100保存的文件格式
- iq-tar:*.iqtar数据文件,R&S频谱仪保存的文件格式
- IQR.wvh:*.wvh数据文件,R&S IQR保存的文件格式