Matlab与TDS系列数字示波器的通信过程
RS-232串行通信接口被广泛应用于近距离的计算机和终端之间的相互通信当中,TDS210示波器也配接有DB9型插件的RS-232接口。当采用硬件握手方式进行通信控制时,示波器使用CD、CTS、RI三个控制信号表明其当前状态,而Matlab使用RTS信号请求数据发送。由于采用异步通信协议对通信双方的时钟同步要求不太严格,由数据的起始位作为双方通信的同步信号,因此Matlab与示波器之间采用异步通信,编制的从示波器读取数据的部分程序如下:
%创造设备对象
g=serial(com1);
%通信初始化g.InputBufferSize=10000;
g.timeout=10;
%设定传输波特率为9600b/s,字符格式为:8位数据位,1位停止位,终止符为LF,没有奇偶校验位,使用硬件握手方式。
g.BaudRate=9600;
g.Parity=none;
g.StopBits=1;
g.Terminator=LF;
g.FlowControl=hardware;
%连接设备对象
fopen(g)
%数据传输
fprintf(g,select: refa on);
fprintf(g,data:source refa);
fprintf(g,data:encdg srib);
fprintf(g,data:start 1);
fprintf(g,data:stop 2500);
fprinft(g,data:width 2);
fprintf(g,wfmpre:xzero?);
xzero=fscanf(g,%f);
fprintf(g,wfmpre:xincr?);
xincr=fscanf(g,%f);
fprintf(g,wfmpre:yzero?);
yzero=fscanf(g,%f);
fprintf(g,wfmpre:ymult?);
ymult=fscanf(g,%f);
fprintf(g,wfmpre:yoff?);
yoff=fscanf(g,%f);
fprintf(g,curve?);
out=fread(g,2500,int16);
%释放设备对象与端口
fclose(g);
delete(g);
freeserial(com1);
用上述程序对示波器进行读取的方波信号如图2所示。
3 数据分析与实例
从示波器读取的数据按(1)式转换后就是实现测量所得的波形数据值,相应的采样频率为1/Xincr。L1空间的信号满足绝对可积条件,可以用快速傅立叶变换算法直接进行频谱分析。图3为对读取的方波所做的FFT结果。由于对采样信号的截取相当于对信号加矩形窗,不可避免地引起频谱泄漏和混叠,在满足采样定理和保证示波器波形周期完整的条件下,所做的频谱分析结果与示波器所得的波形周期数无关。对于噪声信号可作功率谱估计,上述采样信号的功率谱估计如图4所示。
从上面的数据通信过程和对采样信号频谱分析及功率谱估计实例可以看出:Matlab与示波器组成了一个信号采集及分析系统,示波器在其间起数据采集和存储作用,而Matlab则实现对采样得到的信号进行分析和处理。
评论