python流实现简易VNA
实验准备
1、实验器材
LimeSDR、合适频段定向耦合器、短路校准件、待测件(DUT)
2、软件支持(win10下)
PothoSDR(注意版本与Python一致)、WinDriver_LimeSDR-USB、Pycharm(其他编译器亦可)、Python(相关包:pyLMS7002Soapy-master)
实验步骤
- 连接好实验装置(LimeSDR、定向耦合器、10 dB衰减器)
- 用 SoapySDR 连接 LimeSDR(在 cmd 中先 cd 到 SoapySDRUtil.exe 所在目录,后输入以下指令)
SoapySDRUtil.exe --find
SoapySDRUtil --probe=lime
- 连接好 LimeSDR 之后,打开 python 编辑器(此处采用的是 pycharm),打开测试程序 measureVNA_900M.py
- 修改测试程序中,测试频段和间隔,保存数据的文件夹
startFreq = 800e6
endFreq = 850e6
stepFreq = 1e6
now_time = time.strftime('%Y-%m-%d-%H-%M',time.localtime(time.time()))
index = measName + '_' + str(startFreq) + '_' + str(endFreq) + '_' + str(nPoints);
filename = now_time + index
- 设置输入参数,为测试实验名,如 test
- 运行程序
runfile('C:/Users/26094/PycharmProjects/limesdr/measureVNA_900M.py', args=['test'], wdir='C:/Users/26094/PycharmProjects/limesdr')
-
连接短路件,测试数据,保存
-
连接待测 DUT,测试数据,保存
-
测试结果保存于 txt 文件中,顺序为频率、RSSI、相位
outFileName = filename + '/' + 'vna_' + measName + '_DUT_' + str(startFreq) + '_' + str(endFreq) + '_' + str(nPoints) + '.txt'
实验结果
运行画图程序 calculateVNA.py
原函数需要有两个输入参数分别为 测试实验名(与之前相同,test)和绘图(plot)/ 存图(save)
runfile('C:/Users/26094/PycharmProjects/limesdr/calculateVNA.py', args=['test', 'plot', '2020-04-10-11-52'], wdir='C:/Users/26094/PycharmProjects/limesdr')
绘制并保存 phase、S11、VSWR 的图像
同时保存 S11 的实部和虚部于 txt 文件中,保存顺序为 频率、实部、虚部
注意原程序中 pySmithPlot 在 python3 中会报错,无法运行
不过阻抗值保存在 ZDut 中,可将其输出后用 origin/matlab 等绘制 Smith 原图
最后给出原实验以及翻译作为参考
原实验链接:https://myriadrf.org/news/limesdr-made-simple-part-9-vna/
中文翻译:https://blog.csdn.net/shukebeta008/article/details/79830430