1 高频信号的采集
当要对一个高频信号(比如高达100MHz的雷达波形)进行采集和处理的时候。通常会设计一个高速或者超高速硬件采集电路,包括放大部分、滤波部分;A/D和D/A转换部分等,这种电路的要求非常高,要求边采集边存储,电路速度高,而且要考虑各种辐射干扰等,同时,目前市场上成品价格很难承受。并且根据采样定理,一个最高频率为/的连续信号,完全可以用时间上相隔了=1/2f的一系列离散采样值来表示。所以采样频率F应等于或大于被采样信号的最高频率f的2倍,即F≥2f。考虑到实际恢复波形的低通滤波器不可能具有完全理想的特性,为了正确恢复信号,通常取9=(2.5-5)f或更高。当采样的信号高达100MHZ时,就应该达到500MHz的采样率。
2 示波器与计算机的通信
Tektronix公司的TDS系列数字实时示波器早已经在各处得到广泛应用,并且其配套的扩展模块TDS2CM和TDS2MM模块具有与外部设备双向通讯的功能,可直接与打印机、微机连接,使波形的存储打印等工作变得十分方便。其中TDS220数字示波器拥有100MHZ的带宽,以10 倍的扫描方式,达到1GS/s的采样率。当配套的TDS2CM模块采用RS232电缆用串口通信与计算机连接后,利用相应软件(如Matlab等)可以对示波器的数据、波形直接进行读取、处理。
因此可以采用数字示波器与PC机间的通讯,在数字信号处理方面,此时数字示波器相当于一个高速信号采集器,他把数据传输到计算机中,配合Matlab,能实现对高频信号的采集与处理,而且与一般意义上的硬件处理器相比没有了A/D和D/A转换过程,是处理的精度和速度都有了明显的提高,而且价格上示波器配套模块TDSCM2模块也比相应功能的硬件处理器便宜不少。
3 优缺点
数字示波器与PC机的通讯不仅具有一般台式数字存储示波器的功能,而且充分发挥了计算机强大的功能和软件设计的灵活性,他具有4个显著特征:
(1)采用编程语言Matlab和面向对象编程技术,软件开发效率高,可操作性和可维护性好;
(2)为数字存储示波器增加了频域分析功能;
(3)充分利用了计算机的存储与外设连接的能力,测量结果和波形可直接打印输出或通过网络共享;
(4)在相同硬件条件下,可以通过修改或增加软件模块,形成新的仪器功能。
由于要用到示波器,计算机以及RS232的连接,没有单个硬件电路简单明了,是其不足之处。
4 应用情况
4.1 通信原理
Matlab是美国Math Works公司推出的一种以矩阵为基本编程单位的高效数值计算语言,是一个集科学计算、图像处理、声音处理于一体的高度集成系统。他具有强大的数值计算功能,其中的Instrument Control Toolbox提供对GPIB,RS-232,VXI,Centronics等端口进行控制的功能。当用Matlab软件通过RS232与TDS2CM模块串口连接可以实现示波器与计算机之间的数据通讯,同时利用Matlab数值处理、矩阵运算功能对示波器记录的波形数据进行各种分析和处理。
Matlab通过调用M文件函数来创建设备对象,得到设备的文件句柄,这样可以像操作文件一样操作设备,对外设进行相关的读写。原理图如图1所示。
当直接通过RS232进行硬件通信控制时,示波器通过DCD(载波检测),CTS(清除发送),RI(振铃提示)3个控制信号表示当前状态,用RTS(请求发送)发送数据。
4.2 数据传榆
当Matlab以二进制格式对示波器的波形进行数据读写时,读写数据与示波器实际数据换算由式(1)给出:
Xn=Xzero+Xiner·n
Yn=yzero+Ymult(Yn-Yoff) (1)
其中:Yn为输入、输出缓冲区中的数据,
n为数据个数:
Xn,Yn为示波器中实际采样时间与信号幅值,
Xzero是所采集波形第一个点的时间,
Xiner是水平轴上的采样率,
yzero是0dB时的幅值'
Ymul是垂直轴上的比例因子;
Yoff是垂直偏移量。
由式(1)可见,所传输的数据完全按照示波器的采样率,波形真实可靠。
程序流程图如图2所示。
对示波器的命令由fprintf函数以字符串的形式输出。
设置和询问命令由具体的示波器厂商定义。
从示波器读取数据的部分程序如下:
g=serial(′coml′);
g.InputBufferSize=10000;
g.timeout=10;
g.BaudRate=9600;
g.Parity='none';
g.StopBits=1;
g.Terminator='LF'
g.FlowControl='hardware';
fopen(g);
fprintf(g,'select:chl on′);
fprintf(g,'data:source chl′);
fprintf(g,'data:encdg srib′);
fprintf(g,'data:start l′);
fprintf(g,'data:stop 2500′);
fprintf(g,'data:width 2′);
fprintf(g,'wfmpre:xzero? ′);
xzero=fscanf(g,'%f′);
fprintf(g,'curve? ′);
out=fread(g,2500,'intl6′);
fclose(g);
delete(g);
freeserial('coml′);
用上述程序对100MHz雷达波形的读取如图3所示。
4.3 数据分析处理与实例
从示波器读取的数据按式(1)转换后就是实现测量所得的波形数据值,并且可以在计算机中做相应的频谱分析。
5 结 语
在现有的实验条件下,利用数字示波器与计算机之间的通信对高频信号进行采集与处理,能完全满足一般意义上的信号采集工作,可以成为实验室物美价廉的实验工具。