聲卡不提供基準(zhǔn)電壓,因此無論是A/D還是D/A在使用時,都需要用戶自己參照基準(zhǔn)電壓進(jìn)行標(biāo)定。
(5)聲卡頻率范圍與頻率響應(yīng)。
某聲卡的頻率響應(yīng)如圖2所示,可以看出在200Hz~5kHz之間的曲線還是比較平坦的,其余部分信號有較多衰減。在合適的頻率范圍內(nèi),可以用聲卡代替昂貴的數(shù)據(jù)采集卡進(jìn)行工作。
2 利用G語言LabVIEW組建虛擬實(shí)驗(yàn)儀器
虛擬儀器是在美國國家儀器公司(National Instruments Corp.簡稱NI)于1986年提出的“軟件就是儀器”這一口號的基礎(chǔ)上發(fā)展起來的,其概念是用戶在通用計算機(jī)平臺上,在必要的數(shù)據(jù)采集硬件的支持下,根據(jù)測試任務(wù)的需要,通過軟件設(shè)計來實(shí)現(xiàn)和擴(kuò)展傳統(tǒng)儀器的功能。傳統(tǒng)臺式儀器是由廠家設(shè)計并定義好功能的一個封閉結(jié)構(gòu),有固定的輸入/輸出接口和儀器操作面板。每種儀器只能實(shí)現(xiàn)一類特定的測試功能,并以確定的方式提供給用戶。虛擬儀器的出現(xiàn),打破了傳統(tǒng)儀器由廠家定義、用戶無法改變的模式,使得用戶可以根據(jù)自己的要求,設(shè)計自己的儀器系統(tǒng),并可通過修改軟件來改變或增減儀器的功能,真正體現(xiàn)了“軟件就是儀器”這一新概念。
(1)G語言LabVIEW關(guān)于聲卡的模塊介紹。
LabVIEW中提供了一系列使用Windows底層函數(shù)編寫的聲卡有關(guān)的函數(shù)。這些函數(shù)集中在Sound VI下。由于使用Windows底層函數(shù)直接與聲卡驅(qū)動程序打交道,因而封裝層次低,速度快,而且可以訪問,采集緩沖區(qū)中任意位置的數(shù)據(jù),具有很大的靈活性,能夠滿足實(shí)時不間斷采集的需要。
LabVIEW函數(shù)庫中Sound Input子模版(Functions Palette→Graphics&Sound→Sound→Sound Input)提供了聲卡函數(shù),可以通過聲卡采集外部模擬信號。
(2)基于聲卡的虛擬示波器的組建。
應(yīng)用LabVIEW構(gòu)建基于聲卡的虛擬示波器,其整體思想就是在一個While循環(huán)中,添加各輸入節(jié)點(diǎn),使其對采集到的聲音波形進(jìn)行顯示,而在內(nèi)部又添加了若干的屬性節(jié)點(diǎn)來對各種附加功能進(jìn)行實(shí)現(xiàn)。流程圖如圖3所示。
虛擬示波器的軟件的設(shè)計是把整個軟件分別分成幾個模塊,然后組建成一個整體。分別為數(shù)據(jù)采集,存儲,顯示,處理等。
數(shù)據(jù)采集模塊是虛擬示波器軟件的硬件驅(qū)動部分,在這里主要是利用LabVIEW里面的聲卡函數(shù)完成聲卡的硬件參數(shù)設(shè)置、啟動聲卡采集數(shù)據(jù)、等待采樣數(shù)據(jù)緩沖區(qū)滿的消息、通知聲卡停止采集等任務(wù)。
波形顯示模塊使用了波形操作函數(shù),主要用到Build Waveform函數(shù)。Build Waveform函數(shù)。建立或修改已有的波形。默認(rèn)情況下函數(shù)只有waveform和t0輸入端子,向下拖拽函數(shù)下邊沿還可以增加dt、Y和attribuates輸入端子。使用操作工具單擊端子可以彈出元素選擇快捷菜單。如果waveform端子沒有接入,則Build Waveform根據(jù)輸入?yún)?shù)建立新的波形數(shù)據(jù),并在輸出端子中返回。在本設(shè)計中,只用到t0,dt,Y三個輸入端子。其中t0為波形的起始時間,dt為波形數(shù)據(jù)點(diǎn)中間的時間間隔或持續(xù)時間,Y為包含了波形的數(shù)據(jù)值。此處,設(shè)置起始時間為0,但因?yàn)閿?shù)據(jù)格式不匹配,增加了一個數(shù)據(jù)格式轉(zhuǎn)換函數(shù)to time stamp,從而把一個數(shù)值轉(zhuǎn)換成時間值。dt值取自SI Config的格式中的采樣倒數(shù),倒數(shù)取得的方法利用了reciprocal函數(shù)。Y值來自SI Read的stereo 16-bit輸出端子。
因?yàn)槠邢?,不能對各個模塊進(jìn)行詳細(xì)介紹。下面是組建好的示波器。
3 虛擬示波器和傳統(tǒng)示波器的比較