Matlab與TDS系列數(shù)字示波器的通信過程
RS-232串行通信接口被廣泛應(yīng)用于近距離的計(jì)算機(jī)和終端之間的相互通信當(dāng)中,TDS210示波器也配接有DB9型插件的RS-232接口。當(dāng)采用硬件握手方式進(jìn)行通信控制時(shí),示波器使用CD、CTS、RI三個(gè)控制信號(hào)表明其當(dāng)前狀態(tài),而Matlab使用RTS信號(hào)請(qǐng)求數(shù)據(jù)發(fā)送。由于采用異步通信協(xié)議對(duì)通信雙方的時(shí)鐘同步要求不太嚴(yán)格,由數(shù)據(jù)的起始位作為雙方通信的同步信號(hào),因此Matlab與示波器之間采用異步通信,編制的從示波器讀取數(shù)據(jù)的部分程序如下:
%創(chuàng)造設(shè)備對(duì)象
g=serial(com1);
%通信初始化g.InputBufferSize=10000;
g.timeout=10;
%設(shè)定傳輸波特率為9600b/s,字符格式為:8位數(shù)據(jù)位,1位停止位,終止符為LF,沒有奇偶校驗(yàn)位,使用硬件握手方式。
g.BaudRate=9600;
g.Parity=none;
g.StopBits=1;
g.Terminator=LF;
g.FlowControl=hardware;
%連接設(shè)備對(duì)象
fopen(g)
%數(shù)據(jù)傳輸
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);
%釋放設(shè)備對(duì)象與端口
fclose(g);
delete(g);
freeserial(com1);
用上述程序?qū)κ静ㄆ鬟M(jìn)行讀取的方波信號(hào)如圖2所示。
3 數(shù)據(jù)分析與實(shí)例
從示波器讀取的數(shù)據(jù)按(1)式轉(zhuǎn)換后就是實(shí)現(xiàn)測量所得的波形數(shù)據(jù)值,相應(yīng)的采樣頻率為1/Xincr。L1空間的信號(hào)滿足絕對(duì)可積條件,可以用快速傅立葉變換算法直接進(jìn)行頻譜分析。圖3為對(duì)讀取的方波所做的FFT結(jié)果。由于對(duì)采樣信號(hào)的截取相當(dāng)于對(duì)信號(hào)加矩形窗,不可避免地引起頻譜泄漏和混疊,在滿足采樣定理和保證示波器波形周期完整的條件下,所做的頻譜分析結(jié)果與示波器所得的波形周期數(shù)無關(guān)。對(duì)于噪聲信號(hào)可作功率譜估計(jì),上述采樣信號(hào)的功率譜估計(jì)如圖4所示。
從上面的數(shù)據(jù)通信過程和對(duì)采樣信號(hào)頻譜分析及功率譜估計(jì)實(shí)例可以看出:Matlab與示波器組成了一個(gè)信號(hào)采集及分析系統(tǒng),示波器在其間起數(shù)據(jù)采集和存儲(chǔ)作用,而Matlab則實(shí)現(xiàn)對(duì)采樣得到的信號(hào)進(jìn)行分析和處理。
評(píng)論