虛擬儀器(Virtual Intrument)技術(shù)是測(cè)控領(lǐng)域測(cè)量的一個(gè)重要方向,是計(jì)算機(jī)技術(shù)與儀器技術(shù)深層次結(jié)合產(chǎn)生的全新概念的儀器,是對(duì)傳統(tǒng)儀器概念的重大突破。為了滿足高校、科研機(jī)構(gòu)等對(duì)一些實(shí)驗(yàn)設(shè)備的需求,在低成本條件下開(kāi)發(fā)一些虛擬儀器成為一種趨勢(shì)。組建虛擬示波器為例介紹如何開(kāi)發(fā)虛擬實(shí)驗(yàn)儀器。
1 從數(shù)據(jù)采集的角度看聲卡
從數(shù)據(jù)采集的角度來(lái)看,聲卡是一種音頻范圍內(nèi)的數(shù)據(jù)采集卡,是計(jì)算機(jī)與外部的模擬量環(huán)境聯(lián)系的重要途徑。
1.1 聲卡的工作原理
聲卡的工作原理其實(shí)很簡(jiǎn)單,其工作流程圖如圖1所示。我們知道,麥克風(fēng)和喇叭所用的都是模擬信號(hào),而電腦所能處理的都是數(shù)字信號(hào),聲卡的作用就是實(shí)現(xiàn)兩者的轉(zhuǎn)換。從結(jié)構(gòu)上分,聲卡可分為模數(shù)轉(zhuǎn)換電路和數(shù)模轉(zhuǎn)換電路兩部分,模數(shù)轉(zhuǎn)換電路負(fù)責(zé)將麥克風(fēng)等聲音輸入設(shè)備采到的模擬聲音信號(hào)轉(zhuǎn)換為電腦能處理的數(shù)字信號(hào);而數(shù)模轉(zhuǎn)換電路負(fù)責(zé)將電腦使用的數(shù)字聲音信號(hào)轉(zhuǎn)換為喇叭等設(shè)備能使用的模擬信號(hào)。
2 聲卡的主要技術(shù)參數(shù)
(1)采樣的位數(shù)。
采樣位數(shù)可以理解為聲卡處理聲音的解析度。這個(gè)數(shù)值越大,解析度就越高,錄制和回放的聲音也就越真實(shí)。聲卡的位是指聲卡在采集和播放聲音文件時(shí)所使用的數(shù)字聲音信號(hào)的二進(jìn)制位數(shù),它客觀地反映了數(shù)字聲音信號(hào)對(duì)輸入聲音信號(hào)描述的準(zhǔn)確度。例如,8位代表28=256;16位則代表216=64000。比較一下一段相同的音樂(lè)信息,16位聲卡能把它分為64000個(gè)精度單位進(jìn)行處理,而8位聲卡只能處理256個(gè)精度單位,最終采樣效果自然是無(wú)法相提并論的。
(2)采樣頻率。
目前,聲卡的最高采樣頻率是44.1kHz。少數(shù)達(dá)到48kHz。對(duì)于民用聲卡,一般將采樣頻率設(shè)為4檔,分別是44.1kHz、22.05kHz、11.025kHz和8kHz。22.05kHz只能達(dá)到FM廣播的聲音品質(zhì);44.1kHz是理論上的CD音質(zhì)界限,48kHz則更好一些。對(duì)20kHz范圍內(nèi)的音頻信號(hào),最高的采樣頻率才48kHz,雖然理論上沒(méi)問(wèn)題,但似乎余量不大。使用聲卡比較大的局限在于它不允許用戶在最高采樣頻率之下隨意設(shè)定采樣頻率,而只能分為4檔設(shè)定。這樣雖然可使制造成本降低,但卻不便于使用。用戶基本上不可能控制整周期采樣,只能通過(guò)信號(hào)處理的方法來(lái)彌補(bǔ)非整周期采樣帶來(lái)的問(wèn)題。
(3) 緩沖區(qū)。
與一般數(shù)據(jù)采集卡不同,聲卡面臨的D/A和A/D任務(wù)通常是連續(xù)狀態(tài)的。為了在一個(gè)簡(jiǎn)潔的結(jié)構(gòu)下較好地完成某個(gè)任務(wù),聲卡緩沖區(qū)的設(shè)計(jì)有其獨(dú)到之處。為了節(jié)省CPU資源,計(jì)算機(jī)的CPU并不是每次聲卡A/D或D/A結(jié)束后都要響應(yīng)一次中斷,而是采用了緩沖區(qū)的工作方式。在這種工作方式下,聲卡的A/D、D/A都對(duì)某一緩沖區(qū)進(jìn)行操作。以輸入聲音的A/D變換為例,每次轉(zhuǎn)換完畢后,聲卡控制芯片都將數(shù)據(jù)存放在緩沖區(qū),待緩沖區(qū)滿時(shí),發(fā)出中斷給CPU,CPU響應(yīng)中斷后一次性將緩沖區(qū)內(nèi)的數(shù)據(jù)全部讀走。計(jì)算機(jī)總線的數(shù)據(jù)傳輸速率非常高,讀取緩沖區(qū)數(shù)據(jù)所用時(shí)間極短,不會(huì)影響A/D變換的連續(xù)性。緩沖區(qū)的工作方式大大降低了CPU響應(yīng)中斷的頻度,節(jié)省了系統(tǒng)資源。聲卡輸出聲音時(shí)的A/D變換也是類似的。
一般聲卡使用的緩沖區(qū)長(zhǎng)度的默認(rèn)值是8KB(8192字節(jié))。這是由于對(duì)X86系列處理器來(lái)說(shuō),在保護(hù)模式(Windows等系統(tǒng)使用的CPU工作方式下)下,內(nèi)存以8KB為單位被分成很多頁(yè),對(duì)內(nèi)存的任何訪問(wèn)都是按頁(yè)進(jìn)行的,CPU保證了讀寫8KB長(zhǎng)度的內(nèi)存緩沖區(qū)時(shí),速度足夠快,并且一般不會(huì)被其他外來(lái)事件打斷。設(shè)置8192字節(jié)或其整數(shù)倍(例如32768字節(jié))大小的緩沖區(qū),可以較好地保證聲卡與CPU的協(xié)調(diào)工作。
(4) 無(wú)基準(zhǔn)電壓。