|
|
| <!--插入廣告JS代碼--> |
摘 要:介紹了一種新型的計算機測控系統(tǒng)的軟件開發(fā)平臺LabWindows/CVI。利用其C編譯環(huán)境及事件
驅(qū)動的特點,提出了一種基于LabWindows/CVI的數(shù)字處理實驗的輔助教學(xué)方法,并用實例說明方法的可行性。
關(guān)鍵詞:數(shù)字信號處理;LabWindows/CVI;輔助教學(xué)
0 前 言 在過去的幾十年中,數(shù)字信號處理(DSP)領(lǐng)域無論在理論上還是在技術(shù)上都有了非常重要的發(fā)展。由于開發(fā)和利用了廉價的硬件和軟件,DSP技術(shù)在工業(yè)中得到越來越廣泛的應(yīng)用;在工科教育中,過去只作為研究生課程的數(shù)字信號處理,其基本部分已納入電氣工程專業(yè)的大學(xué)本科教學(xué)計劃。
本文通過介紹一種為計算機測控系統(tǒng)設(shè)計的軟件開發(fā)環(huán)境Labwindows/CVI,結(jié)合專業(yè)教學(xué)安排,提出了在C語言編程環(huán)境下做數(shù)字信號處理實驗的輔助教學(xué)方法。
1 數(shù)字信號處理的教學(xué)難點
數(shù)字信號處理是一門以算法為核心的理論性很強的學(xué)科。現(xiàn)有關(guān)于DSP方面的書籍大多數(shù)都是講解算法、推導(dǎo)和證明算法的教科書。由于數(shù)字信號處理的概念比較抽象,本科學(xué)生學(xué)習這門課程具有一定的困難。其數(shù)值計算又比較繁瑣,教師不太好布置作業(yè),使學(xué)生的課后實踐受到相當?shù)南拗,在很大程度上影響本課的教學(xué)效果。
2 問題的解決
國外在若干年前,就開始把交互式軟件MATLAB 用于數(shù)字信號處理的教學(xué)過程中,其成功之處,便是采用了易學(xué)易用、功能強大的系統(tǒng)開發(fā)平臺作為計算機輔助教學(xué)軟件。鑒于我國工科教學(xué)安排的實際情況,本科生在DSP課程之前已經(jīng)學(xué)了兩門計算機課程,即計算機基礎(chǔ)和C語言,若再加學(xué)一門MATLAB,在普遍要求壓縮教學(xué)課時的今天,是不太好安排的。借鑒國外計算機輔助教學(xué)的經(jīng)驗,考慮到學(xué)生已有了C語言編程基礎(chǔ),如果將構(gòu)筑于C語言平臺的易學(xué)易用的LabWindows/CVI開發(fā)系統(tǒng)用于DSP的實驗平臺,不僅可以增強學(xué)生對概念與算法的理解,還可以培養(yǎng)學(xué)生的C語言編程設(shè)計能力。
3 LabVIEW/CVI簡介
LabVIEW/CVI是美國國家儀器公司提供的一套虛擬儀器系統(tǒng)開發(fā)平臺。它以ANSI C為核心,將功能強大、使用靈活的C語言平臺與用于數(shù)據(jù)采集、分析和表達的測控專業(yè)工具有機地結(jié)合起來,為熟悉C語言的開發(fā)人員建立檢測系統(tǒng),自動測量環(huán)境,數(shù)據(jù)采集系統(tǒng),過程監(jiān)控系統(tǒng)等提供了一個理想的軟件開發(fā)環(huán)境。
CVI作為開發(fā)環(huán)境具有以下優(yōu)點:
①CVI的編程技術(shù)主要采用事件驅(qū)動方式與回調(diào)函數(shù)方式,編程方法簡單易學(xué)。
②CVI運用“所見即所得”的可視化交互技術(shù),使人機界面的實現(xiàn)直觀簡捷。
③CVI對每一個函數(shù)都提供一個函數(shù)面板,用戶可以在函數(shù)面板上交互式輸入函數(shù)的各個參數(shù),提高了工程設(shè)計的效率與可靠性。
4 應(yīng)用實例
下面用幾個示例說明用CVI做數(shù)字信號處理實驗的可行性與便捷性。
4.1 用于頻譜分析
頻譜分析是反映復(fù)雜信號中各頻率所占能量的大小。為簡化過程,只考慮兩路正弦信號疊加的情況。這樣,只需要兩對輸入(振幅和頻率)就可以決定兩路正弦信號,輸出則包括一個時域波形顯示和一個頻域波形顯示。
在CVI 中建立一個工程(PRJ)文件后,先建立用戶接口資源(UIR)文件,在我們這個示例中主要是設(shè)定兩組輸入控件(對應(yīng)兩路正弦信號)和兩組圖形輸出控件 (分別對應(yīng)復(fù)雜信號的時域波形和頻域波形)。這一過程是在軟面板編輯窗口中完成的,所見即所得,很方便。按設(shè)計思路決定各屬性后,開發(fā)系統(tǒng)即可幫助生成程序的主體結(jié)構(gòu),接下來即可編寫相應(yīng)的C源程序。由于此實驗的目的是演示時域和頻域的關(guān)系,因此直接調(diào)用了高級數(shù)據(jù)分析庫函數(shù)中的能譜函數(shù) AutoPowerSpectrum (),不用為算法費神。程序也簡化到了只用完成讀入面板狀態(tài),形成波形數(shù)組,能譜變換及顯示這幾步,每一步都可調(diào)用庫函數(shù)來完成。下面是幾段主要程序。
/* 產(chǎn)生正弦信號 /*
SineWave (NUMPOINTS,wave1Amp,wave1freq/500,&zero,waveTime[0]);
SineWave (NUMPOINTS,wave2Amp,wave2freq/500,&zero,waveTime[1]);
/* 疊加形成復(fù)雜信號并顯示時域波形 */
Add1D (waveTime[0],waveTime[1],NUMPOINTS,tempArray);
PlotY (pane1Handle,PANEL_TIMEGRAPH,tempArray,(NUMPOINTS/100)*20+1,
VAL_DOUBLE,VALTHIN_LINE,VAL_NO_POINT,VAL_SOLID,1,
VAL_BLACK)
/* 對時域信號做頻域變換 */
AutoPowerSpectrum (tempArray,NUMPOINTS,1/1000.0,spectrum,&freqSpace);
程序完成后即可運行,編譯成可執(zhí)行文件后還可脫離開發(fā)平臺單獨運行。運行結(jié)果可參照圖1和圖2,顯示的是一路正弦波在混入了不同頻率、不同振幅的另一路正弦波后其時域波形和頻譜的變化情況。學(xué)生通過實際操作后應(yīng)該能理解并掌握頻譜分析的作用。

圖1 正弦波形及頻譜 圖2 混入了低頻信號
4.2 用于IIR濾波器設(shè)計
|
|  |
巴特沃思低通濾波器的特征是其通帶和阻帶都有平的幅度響應(yīng)。N階的平方幅度響應(yīng)為:設(shè)計巴特沃思低通濾波器的基本思想就是根據(jù)濾波器的通帶和阻帶的指標得到階數(shù)N和截止頻率Ωc。CVI提供了BwCascadeCoef ()函數(shù)來設(shè)計巴特沃思濾波器。與上例類似,先設(shè)計顯示面板,再編寫C程序。主要程序如下:
/* 設(shè)計cascade 低通 Butterworth IIR 濾波器 */
double fs,fl,fh,x[256],y[256]:
int type,order,n;
IIRFilterPtr filtrerInfo;
n=256;
fs=1000.0;
fl=200.0;
order=5;
type=0; /* 低通 */
Uniform (n,17,x);
filterInfo=AllocIIRFilterPtr (type,order);
if(filterInfo!=0)
Bw[CD#2]CascadeCoef(fs,fl,fh,filterInfo);
IIRCascadeFiltering(x,n,filterInfo,y);
FreeIIRFilterPtr(filterInfo):
運行結(jié)果可參照圖3和圖4,顯示的是不同階數(shù)時濾波器的截止特性與相位特性的變化情況。學(xué)生通過操作可了解巴特沃思低通濾波器的特性。

圖3 4階濾波 圖4 27階濾波
5 結(jié)束語
CVI作為一種測控領(lǐng)域的C語言開發(fā)平臺,在儀表測控行業(yè)將有廣泛的應(yīng)用。它對于提高編程效率,縮短程序開發(fā)周期是極其有效的。將之作為已有一定C語言基礎(chǔ)的儀表測控專業(yè)學(xué)生學(xué)習數(shù)字信號處理的實驗平臺是可行的,既可以解決教學(xué)上的實踐問題,又能鞏固學(xué)生的程序設(shè)計知識。
參考文獻:
[1] A V 奧海姆數(shù)字信號處理[M]北京:科學(xué)出版社,1980.
[2]黃新VXIbus 寄存器基模件-32路驅(qū)動器的開發(fā)[J]計算機自動測量與控制,1998,20(1):18-22.
[3] NI公司虛擬儀器系統(tǒng)產(chǎn)品介紹[Z]北京:中科泛華測控技術(shù)有限公司,1998.