加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

MATLAB处理ZurichInstruments锁相放大器测量的数据

(2018-01-12 09:15:08)
标签:

hf2li

mfli

uhfli

matlab数据处理

高性能数字锁相放大器

分类: LabVIEW/Python/MATLAB编程
锁相放大器用来测量nV级的电压或电流信号,测量的数据有直角坐标系的x和y或者极坐标系下的R和theta。把锁相放大器测量出来的数据保存成txt格式、CSV格式或.mat格式的文件后,后续可以使用Origin8.0、MATLAB、R、Python+NumPy+Matplotlib或anaconda Spyder等软件来处理这些不同格式的测量数据。本文用MATLAB软件来处理Zurich Instruments HF2LI锁相放大器测量的数据,测量的数据分别来自plotter(txt格式)和record(mat格式)中保存的数据。

      plotter工具中保存的数据处理
      在LabOne软件中,把plotter工具调出来,然后点击下图plotter工具中“1”的按钮,直接保存锁相放大器的测量数据。plotter工具中水平“时间”长度的调节可在右侧11按钮的“setting”中进行选择。

MATLAB处理ZurichInstruments锁相放大器测量的数据

     plotter保存的数据形式如下所示:
MATLAB处理ZurichInstruments锁相放大器测量的数据

       首先,把上图中txt文档的%部分的文字部分删除或者后续在编写语句过程中通过循环语句跳过文字部分。本例子中采用删除文字部分的处理方式。

       其次,打开MATLAB软件(软件版本为R2009-R2016b),使用“load”语句加载txt的数据或者直接使用MATLAB软件中的import导入数据。

MATLAB处理ZurichInstruments锁相放大器测量的数据

       最后,在MATLAB的命令行窗口内编写几条简单的语句来绘制锁相放大器的测量数据。最后绘制的图形如上图中Demodulator 1的图形形式。如果需要添加其他的标签、改变曲线的颜色与宽度等,均可以通过在“命令行窗口”内添加语句进行修改。
对于本例中的MATLAB语句如下:
time1=VarName1; %获取txt文档中的时间列
time=-time1;%把时间转化为正数
R=VarName2;%获取txt文档中的振幅值
plot(time,R);
title('Demodulator 1');
xlabel('time (s)');
ylabel('Amplitude (V)');
ylim([0.0716,0.07174])
text(3,0.07168,'data directly from plotter tool in LabOne')

record中保存的测量数据的处理
      首先,在LabOne软件中的Config页面,在下图中Record Data的列表中选择需要保存的数据,随后点击Record按钮(图标2)后即可保存测量数据,再次点击一次Record按钮就会停止数据的保存。相同时间内保存数据量的大小与下图中3位置处Data Transfer的数值大小有关,该数值越大,保存的数据量也会越大。一般情况下,Data transfer中的数值可以设置为4位置处BW 3dB数值的7-10倍,当然,Data transfer的数值也可以设置的比BW 3dB的数值高。

MATLAB处理ZurichInstruments锁相放大器测量的数据

其次,record中保存的mat格式的文件形式如下图所示。本例中采用下图中圈住的数据为例进行数据处理。

MATLAB处理ZurichInstruments锁相放大器测量的数据

     采用“load”语句导入上图中的数据或者采用MATLAB软件中的“import”按钮导入mat格式的数据。数据导入后在a位置处的“工作区”显示导入的数据。双击“dev249”并逐次调节到b位置处的数据显示形式。我们会用到timestamp、x、y等。

MATLAB处理ZurichInstruments锁相放大器测量的数据

       最后,通过在“命令行窗口”内编写语句提取所需要的timestamp、x和y并利用plot进行绘图。绘图结果如下图右侧demodulator 1图所示。在处理测量时间的时候,需要利用timestamp的数据来获取测量的时间段,根据所使用的仪器型号,来获得相应的采样率,如HF2LI仪器的采样率是210MSample/s,MFLI的采样率是60MSample/s,UHFLI的采样率是1.8GSample/s。此外,通过编写其他MATLAB语句,可以改变图中曲线的颜色、曲线的大小、文字注释等。

MATLAB处理ZurichInstruments锁相放大器测量的数据

      本示例的MATLAB语句如下:
      x=dev249.demods.sample.x;%获取x数据
      y=dev249.demods.sample.y;%获取y数据
      time1=dev249.demods.sample.timestamp-dev249.demods.sample.timestamp(1);%获取测量时间段
      time2=double(time1);%把数据类型转化为double型
     sample_rate=210*10^6;%获取所用测量仪器的采样率,HF2LI的采样率为210MSample/s
     time=time2/sample_rate;%把时间转化为“秒”为单位
     R=sqrt(x.^2+y.^2);%获得测量振幅值R(amplitude)
     plot(time, R)%使用plot语句绘制time-R的曲线图
     title('Demodulator 1')%为曲线图添加标题
     xlabel('time (s)')%为曲线图的x轴添加名称
     ylabel('Amplitude (V)')%为曲线图的y轴添加名称
     ylim([0.07170,0.07179])%调节y轴的坐标范围

       上述语句的txt文档可从该链接中下载MATLAB语句

       最后,对于MATLAB处理Zurich Instruments锁相放大器的参考语句也可从LabOne Programming Manual中Chapter 3. Matlab Programming一章中查看。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有