a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于計算機聲卡的虛擬實驗儀器開發研究

基于計算機聲卡的虛擬實驗儀器開發研究

作者: 時間:2012-10-23 來源:網絡 收藏

摘 要:虛擬儀器(Virtual Intrument)技術是測控領域測量的一個重要方向,是技術與儀器技術深層次結合產生的全新概念的儀器,是對傳統儀器概念的重大突破。為了滿足高校、科研機構等對一些實驗設備的需求,在低成本條件下開發一些虛擬儀器成為一種趨勢。組建虛擬示波器為例介紹如何開發儀器。

本文引用地址:http://www.j9360.com/article/202125.htm

關鍵詞:;儀器

1 從數據采集的角度看

從數據采集的角度來看,是一種音頻范圍內的數據采集卡,是與外部的模擬量環境聯系的重要途徑。

1.1 聲卡的工作原理

聲卡的工作原理其實很簡單,其工作流程圖如圖1所示。我們知道,麥克風和喇叭所用的都是模擬信號,而電腦所能處理的都是數字信號,聲卡的作用就是實現兩者的轉換。從結構上分,聲卡可分為模數轉換電路和數模轉換電路兩部分,模數轉換電路負責將麥克風等聲音輸入設備采到的模擬聲音信號轉換為電腦能處理的數字信號;而數模轉換電路負責將電腦使用的數字聲音信號轉換為喇叭等設備能使用的模擬信號。

2 聲卡的主要技術參數

(1)采樣的位數。

采樣位數可以理解為聲卡處理聲音的解析度。這個數值越大,解析度就越高,錄制和回放的聲音也就越真實。聲卡的位是指聲卡在采集和播放聲音文件時所使用的數字聲音信號的二進制位數,它客觀地反映了數字聲音信號對輸入聲音信號描述的準確度。例如,8位代表28=256;16位則代表216=64000。比較一下一段相同的音樂信息,16位聲卡能把它分為64000個精度單位進行處理,而8位聲卡只能處理256個精度單位,最終采樣效果自然是無法相提并論的。

(2)采樣頻率。

目前,聲卡的最高采樣頻率是44.1kHz。少數達到48kHz。對于民用聲卡,一般將采樣頻率設為4檔,分別是44.1kHz、22.05kHz、11.025kHz和8kHz。22.05kHz只能達到FM廣播的聲音品質;44.1kHz是理論上的CD音質界限,48kHz則更好一些。對20kHz范圍內的音頻信號,最高的采樣頻率才48kHz,雖然理論上沒問題,但似乎余量不大。使用聲卡比較大的局限在于它不允許用戶在最高采樣頻率之下隨意設定采樣頻率,而只能分為4檔設定。這樣雖然可使制造成本降低,但卻不便于使用。用戶基本上不可能控制整周期采樣,只能通過信號處理的方法來彌補非整周期采樣帶來的問題。

(3) 緩沖區。

與一般數據采集卡不同,聲卡面臨的D/A和A/D任務通常是連續狀態的。為了在一個簡潔的結構下較好地完成某個任務,聲卡緩沖區的設計有其獨到之處。為了節省CPU資源,計算機的CPU并不是每次聲卡A/D或D/A結束后都要響應一次中斷,而是采用了緩沖區的工作方式。在這種工作方式下,聲卡的A/D、D/A都對某一緩沖區進行操作。以輸入聲音的A/D變換為例,每次轉換完畢后,聲卡控制芯片都將數據存放在緩沖區,待緩沖區滿時,發出中斷給CPU,CPU響應中斷后一次性將緩沖區內的數據全部讀走。計算機總線的數據傳輸速率非常高,讀取緩沖區數據所用時間極短,不會影響A/D變換的連續性。緩沖區的工作方式大大降低了CPU響應中斷的頻度,節省了系統資源。聲卡輸出聲音時的A/D變換也是類似的。

一般聲卡使用的緩沖區長度的默認值是8KB(8192字節)。這是由于對X86系列處理器來說,在保護模式(Windows等系統使用的CPU工作方式下)下,內存以8KB為單位被分成很多頁,對內存的任何訪問都是按頁進行的,CPU保證了讀寫8KB長度的內存緩沖區時,速度足夠快,并且一般不會被其他外來事件打斷。設置8192字節或其整數倍(例如32768字節)大小的緩沖區,可以較好地保證聲卡與CPU的協調工作。

(4) 無基準電壓。

聲卡不提供基準電壓,因此無論是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→GraphicsSound→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輸出端子。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉