一、引言
MATLAB是由美國mathworks公司釋出的主要面對科學計算、視覺化以及互動式程式設計的高科技計算環境。它不但包含高效的數值計算、資料處理能力,而且簡單易用,是工程師日常研發過程中不可缺少的工具。本文使用matlab 生成一組簡單的資料檔案然後轉換成 《GK101 任意波發生器》波形資料檔案,由此為大家演示資料生成、格式轉換的過程。
二、檔案轉換函式
我們已經做好了任意波檔案格式轉換檔案,原始碼如下:
1 %======================================= 2 % 生成GK101 任意波資料檔案的程式 3 % Copyright GINGKO @2014 4 %======================================= 5 6 function arb(x,fre,amp,offs) 7 %清理工作臺 8 close all 9 clc 10 %建立檔案 11 fid=fopen('arb0.wvt','wt') ; 12 %寫入註釋頭 13 fprintf(fid,';==== arb file generator for gk101 ====\n'); 14 %寫入頻率資訊 15 fprintf(fid,'[frequency] = %f;\n',fre); 16 %寫入幅度資訊 17 fprintf(fid,'[amplitude] = %f;\n',amp); 18 %寫入直流偏置資訊 19 fprintf(fid,'[offset] = %f;\n',offs); 20 %寫入日期資訊 21 fprintf(fid,'[date] = %d-%d-%d;\n',year(now),month(now),day(now)); 22 %提取矩陣大、小範圍,並寫入 23 fprintf(fid,'[datarange] = %f,%f;\n',min(x),max(x)); 24 [m,n]=size(x); 25 %提取矩陣長度,並寫入 26 fprintf(fid,'[length] = %d;\n',n); 27 %寫入資料 28 fprintf(fid,'[data] = \n'); 29 fprintf(fid,'%f,%f,%f,%f,%f,\n',x); %輸出矩陣 30 %關閉檔案 31 fclose(fid)
這個程式很簡單,沒接觸過 matlab 的估計也能看個大概,大家不用複製,我上傳個檔案(arb.m):http://files.cnblogs.com/xiaomagee/arb.rar
大家下載這個檔案後解壓縮,為了方便使用,把它放在任意一個硬碟的根目錄下。
三、資料生成例項
本節通過產生一個疊加白噪聲的正弦波,來演示整個資料產生、格式轉換並儲存的過程。
1.進入 arb.m 所在的目錄:
我把arb.m 檔案儲存在了 D 盤的 matlab 目錄,所以通過下面的命令列進入:
2.通過命令列產生一個正弦波:
其中: x = 0:0.01:2*pi; 表示生成一個矩陣 x ,它包含從 0到 2π 、間隔為 0.01 的資料。
y = sin(x) 計算正弦訊號,儲存在矩陣 y 中。
3. 疊加白噪聲:
其中:z = awgn(y,20) 表示在矩陣 y 上,疊加訊雜比位 20dB 的白噪聲,並儲存在矩陣 z 中。
1 subplot(2,1,1); 2 plot(y) 3 subplot(2,1,2); 4 plot(z)
四句為繪製波形,執行後如圖所示,分別為原始波形和疊加噪聲後的波形。
4. 呼叫函式,儲存檔案:
其中 arb(z,1000,5,0) 引數分別為:z 為需要儲存的矩陣資料,1000 為波形頻率,5 為波形幅度,0 為波形直流偏置。
執行後會在工作目錄生成任意波資料檔案:arb0.wvt。
這裡我們也提供下載:http://files.cnblogs.com/xiaomagee/arb0.rar
生成檔案後,把 《GK101 任意波發生器》連線電腦,就可以把波形檔案複製進去了並重現波形了。通過本例疊加噪聲的正弦波,我們可以測試低通、帶通濾波器的效能。
通過《GK101 任意波發生器》衝先後的波形:
四、結束語
本文通過 matlab 生成資料並轉換成 GK101 所能識別的檔案格式,使得《GK101任意波發生器》更容易與計算機配合工作,重現大家工作中想要的激勵訊號。
實際工作中,資料來源可以多種多樣,例如ADC採集的原始資料、經過處理後的資料、標準函式疊加等等,完全不受限制。極大的發揮了《GK101 任意波發生器》 的潛能,為電子工程師研發過程推波助瀾。
儀器介紹頁面:
http://item.taobao.com/item.htm?id=40313916417