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