聲卡數(shù)據(jù)采集設(shè)計(jì)論文

時(shí)間:2022-07-14 08:40:00

導(dǎo)語(yǔ):聲卡數(shù)據(jù)采集設(shè)計(jì)論文一文來(lái)源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

聲卡數(shù)據(jù)采集設(shè)計(jì)論文

摘要:介紹了一種利用vc++實(shí)現(xiàn)基于聲卡的雙通道數(shù)據(jù)采集系統(tǒng),實(shí)現(xiàn)了波形發(fā)生器與頻率測(cè)量等基本功能,為低成本下構(gòu)建數(shù)據(jù)采集系統(tǒng)與波形發(fā)生器提供了一種思路。

關(guān)鍵詞:聲卡數(shù)據(jù)采集頻率測(cè)量

一、概述

數(shù)據(jù)采集是信號(hào)分析與處理的一個(gè)重要環(huán)節(jié),在許多工業(yè)控制與生產(chǎn)狀態(tài)監(jiān)控中,都需要對(duì)各種物理量進(jìn)行數(shù)據(jù)采集與分析。但是,專用數(shù)據(jù)采集卡的價(jià)格一般比較昂貴,而我們PC機(jī)的聲卡就是一個(gè)很好的雙通道數(shù)據(jù)采集卡。實(shí)際測(cè)量中,在滿足測(cè)量要求的前提下,可以充分利用計(jì)算機(jī)自身資源,完成數(shù)據(jù)采集任務(wù),從而節(jié)省成本。

本文利用vc編程實(shí)現(xiàn)了聲卡的雙通道數(shù)據(jù)采集,并且對(duì)信號(hào)進(jìn)行頻譜分析同時(shí)實(shí)時(shí)測(cè)量出信號(hào)的頻率。還利用聲卡的DA通道,實(shí)現(xiàn)了正弦波、方波、三角波輸出的信號(hào)發(fā)生器。波形發(fā)生器產(chǎn)生的信號(hào)同時(shí)還可以作為內(nèi)部測(cè)試用信號(hào),檢驗(yàn)數(shù)據(jù)采集的準(zhǔn)確性。

二、聲卡數(shù)據(jù)采集系統(tǒng)硬件組成

LineOut

圖1聲卡數(shù)據(jù)采集的硬件組成圖

利用聲卡進(jìn)行數(shù)據(jù)采集的硬件組成如圖1所示。通常,利用聲卡的LineIn端作為信號(hào)輸入端口,兩路被測(cè)的模擬信號(hào)經(jīng)過(guò)左右聲道,A/D轉(zhuǎn)換進(jìn)入計(jì)算機(jī),通過(guò)vc編寫的虛擬儀器界面顯示出來(lái)。聲卡一般都具有單、雙聲道輸入,從而可實(shí)現(xiàn)單雙通道的采集.雙通道采集時(shí),聲卡采用并行采集,并具有采樣保持功能,兩個(gè)通道的數(shù)據(jù)不存在時(shí)間差,第一通道和第二通道數(shù)據(jù)存儲(chǔ)在同一個(gè)數(shù)據(jù)緩沖區(qū)中,且等間隔存儲(chǔ),奇數(shù)序列是一個(gè)通道數(shù)據(jù),偶數(shù)序列為另一個(gè)通道數(shù)據(jù).讀取數(shù)據(jù)時(shí),將緩沖區(qū)中的數(shù)據(jù)全部讀入到一個(gè)數(shù)組中,然后對(duì)該數(shù)組數(shù)據(jù),采用隔一點(diǎn)取一點(diǎn)的方法,將數(shù)據(jù)分開(kāi)并分別存到另外的兩個(gè)數(shù)組中,即將兩個(gè)通道的數(shù)據(jù)分開(kāi),從而實(shí)現(xiàn)了雙通道的采集.單通道采集時(shí),緩沖區(qū)中僅僅是一個(gè)通道的數(shù)據(jù),直接保存到一個(gè)數(shù)組即可。同時(shí),信號(hào)發(fā)生器產(chǎn)生的波形也可經(jīng)過(guò)Lineout端輸出。

為了保護(hù)聲卡,被測(cè)信號(hào)并不是直接進(jìn)入聲卡,而是先經(jīng)過(guò)一個(gè)信號(hào)調(diào)理電路,對(duì)信號(hào)進(jìn)行放大或限幅,濾波等處理,信號(hào)調(diào)理電路如圖2所示。(a)圖是直流電平疊加模塊:C1代表信號(hào)的輸入,D1代表疊加直流電平后信號(hào)的輸出,電位器R8控制輸入直流電平的大?。唬╞)圖是信號(hào)疊加模塊:A1、A2代表疊加信號(hào)的輸入,B1代表疊加后信號(hào)的輸出;(c)圖是模擬濾波模塊:LPIN代表濾波器的輸出,LPOUT代表濾波器的輸出,調(diào)節(jié)R6可以控制輸出的、幅度大小。當(dāng)然可以根據(jù)需要在調(diào)理電路中加入一些其它的模塊。

圖2信號(hào)調(diào)理電路

三、聲卡采集系統(tǒng)的軟件編程

微軟公司已經(jīng)提供了一系列API函數(shù)用于對(duì)聲卡的操作,為了將需要用到的函數(shù)封裝成了一個(gè)類,編程時(shí)只需直接調(diào)用。使用的API函數(shù)有:

waveInGetDevCaps實(shí)現(xiàn)聲卡的性能測(cè)試

waveInOpen打開(kāi)波形輸入設(shè)備

waveInPrepareHeader為波形輸入準(zhǔn)備緩沖區(qū)

waveInAddBuffer將數(shù)據(jù)緩存發(fā)送給波形輸入設(shè)備驅(qū)動(dòng)

waveInStart啟動(dòng)向波形輸入緩沖區(qū)存儲(chǔ)數(shù)據(jù)

waveInUnprepareHeader釋放波形輸入緩沖區(qū)

waveInStop停止向波形輸入緩沖區(qū)存儲(chǔ)數(shù)據(jù)

waveInClose關(guān)閉波形輸入設(shè)備

設(shè)計(jì)的軟件界面如圖3所示。目前所實(shí)現(xiàn)的功能有:

圖3軟件界面設(shè)計(jì)

1.兩路波形發(fā)生器。可產(chǎn)生正弦波、方波和三角波,并且頻率和幅值可調(diào)。

2.頻譜分析儀??梢詫?duì)采集的信號(hào)進(jìn)行頻譜分析。頻譜分析采用了快速傅立葉變換(FFT)算法,并且將其封裝成獨(dú)立的函數(shù),方便調(diào)用。

3.頻率計(jì)。同時(shí)還可以實(shí)時(shí)地測(cè)量出采集到的信號(hào)的頻率。在利用程序計(jì)算頻率時(shí),一般采用兩種方法。一種是利用快速傅立葉變換,它的優(yōu)點(diǎn)是不僅能對(duì)標(biāo)準(zhǔn)的周期波形進(jìn)行測(cè)量,而且能夠計(jì)算出各種復(fù)雜波形和信噪比非常低的信號(hào)的頻率值,缺點(diǎn)是分辨率受到限制。另一種計(jì)算頻率的方法是采用脈沖計(jì)數(shù)法。它的優(yōu)點(diǎn)是測(cè)量低頻信號(hào)時(shí)精度高,但它不適合波形復(fù)雜和信噪比低的信號(hào)頻率測(cè)量。所以在測(cè)量過(guò)程中,程序先判斷信號(hào)上述的性質(zhì),根據(jù)信號(hào)的性質(zhì),自動(dòng)地采用相應(yīng)的測(cè)量方法。

四、小結(jié)

采用聲卡制作的信號(hào)采集系統(tǒng),具有廉價(jià)、方便等優(yōu)點(diǎn),它可用于振動(dòng)、噪聲、位移、溫度、壓力等各種物理量的測(cè)試。但是一般的聲卡支持的采樣頻率有11025、22050和44100,對(duì)高頻信號(hào)的采集會(huì)出現(xiàn)失真。總之,運(yùn)用廉價(jià)的聲卡,輔以適當(dāng)?shù)能浖幊?,可以?gòu)成一個(gè)較高采樣精度,中等采樣頻率且具有很大靈活性的數(shù)據(jù)采集系統(tǒng)。

參考文獻(xiàn)

[1]種蘭祥,閻麗,張首軍.基于計(jì)算機(jī)聲卡的多通道數(shù)據(jù)采集系統(tǒng).西北大學(xué)學(xué)報(bào),2002.

[2]云升,姚曉,夏志忠.vc++聲卡低層音頻服務(wù)的編程技術(shù).計(jì)算機(jī)應(yīng)用,2002.

[3]鄭繼明,李儀.聲卡在數(shù)據(jù)采集中的應(yīng)用[J].國(guó)外電子測(cè)量技術(shù),2000(5).

[4]MatthewMiller,BaoMi,Developmentofautomatedreal-timedataacquisitionsystemforroboticweldqualitymonitoring,Mechatronics,2002.12.