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则实现对采样得到的信号进行分析和处理。
MatlabTDS系列数字示波器通信过 相关文章:
- 频宽、取样速率及奈奎斯特定理(09-14)
- 为什么要进行信号调理?(09-30)
- IEEE802.16-2004 WiMAX物理层操作和测量(09-16)
- 为任意波形发生器增加价值(10-27)
- 基于PCI 总线的高速数据采集系统(09-30)
- 泰克全新VM6000视频测试仪助力数字电视等产品测试 (10-06)