新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于聲卡的數(shù)據(jù)采集及波形發(fā)生器設(shè)計(jì)

基于聲卡的數(shù)據(jù)采集及波形發(fā)生器設(shè)計(jì)

作者: 時(shí)間:2017-01-12 來(lái)源:網(wǎng)絡(luò) 收藏
  一、概述
  數(shù)據(jù)采集信號(hào)分析和處理的一個(gè)重要環(huán)節(jié),在很多產(chǎn)業(yè)控制和生產(chǎn)狀態(tài)監(jiān)控中,都需要對(duì)各種物理量進(jìn)行數(shù)據(jù)采集和分析。但是,專(zhuān)用數(shù)據(jù)采集卡的價(jià)格一般比較昂貴,而我們PC機(jī)的聲卡就是一個(gè)很好的雙通道數(shù)據(jù)采集卡。實(shí)際丈量中,在滿(mǎn)足丈量要求的條件下,可以充分利用計(jì)算機(jī)自身資源,完成數(shù)據(jù)采集任務(wù),從而節(jié)省本錢(qián)。
  本文利用vc編程實(shí)現(xiàn)了聲卡的雙通道數(shù)據(jù)采集,并且對(duì)信號(hào)進(jìn)行頻譜分析同時(shí)實(shí)時(shí)丈量出信號(hào)的頻率。還利用聲卡的DA通道,實(shí)現(xiàn)了正弦波、方波、三角波輸出的信號(hào)發(fā)生器。波形發(fā)生器產(chǎn)生的信號(hào)同時(shí)還可以作為內(nèi)部測(cè)試用信號(hào),檢驗(yàn)數(shù)據(jù)采集的正確性。
  二、聲卡數(shù)據(jù)采集系統(tǒng)硬件組成
  Line Out
  利用聲卡進(jìn)行數(shù)據(jù)采集的硬件組成。通常,利用聲卡的Line In端作為信號(hào)輸進(jìn)端口,兩路被測(cè)的模擬信號(hào)經(jīng)過(guò)左右聲道,A/D轉(zhuǎn)換進(jìn)進(jìn)計(jì)算機(jī),通過(guò)vc編寫(xiě)的虛擬儀器界面顯示出來(lái)。聲卡一般都具有單、雙聲道輸進(jìn),從而可實(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ù)全部讀進(jìn)到一個(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ò)Line out端輸出。
  為了保護(hù)聲卡,被測(cè)信號(hào)并不是直接進(jìn)進(jìn)聲卡,而是先經(jīng)過(guò)一個(gè)信號(hào)調(diào)理電路,對(duì)信號(hào)進(jìn)行放大或限幅,濾波等處理,信號(hào)調(diào)理電路直流電平疊加模塊摘要:C1代表信號(hào)的輸進(jìn),D1代表疊加直流電平后信號(hào)的輸出,電位器R8控制輸進(jìn)直流電平的大小信號(hào)疊加模塊摘要:A1、A2代表疊加信號(hào)的輸進(jìn),B1代表疊加后信號(hào)的輸出;(c)圖是模擬濾波模塊摘要:LPIN代表濾波器的輸出,LPOUT代表濾波器的輸出,調(diào)節(jié)R6可以控制輸出的、幅度大小。當(dāng)然可以根據(jù)需要在調(diào)理電路中加進(jìn)一些其它的模塊。
  三、聲卡采集系統(tǒng)的軟件編程
  微軟公司已經(jīng)提供了一系列API函數(shù)用于對(duì)聲卡的操縱,為了將需要用到的函數(shù)封裝成了一個(gè)類(lèi),編程時(shí)只需直接調(diào)用。使用的API函數(shù)有摘要:

waveInGetDevCaps
waveInOpen
waveInPrepareHeader
waveInAddBuffer
waveInStart
waveInUnprepareHeader
waveInStop
waveInClose
實(shí)現(xiàn)聲卡的性能測(cè)試
打開(kāi)波形輸進(jìn)設(shè)備
為波形輸進(jìn)預(yù)備緩沖區(qū)
將數(shù)據(jù)緩存發(fā)送給波形輸進(jìn)設(shè)備驅(qū)動(dòng)
啟動(dòng)向波形輸進(jìn)緩沖區(qū)存儲(chǔ)數(shù)據(jù)
開(kāi)釋波形輸進(jìn)緩沖區(qū)
停止向波形輸進(jìn)緩沖區(qū)存儲(chǔ)數(shù)據(jù)
封閉波形輸進(jìn)設(shè)備
  目前所實(shí)現(xiàn)的功能有摘要:
  1.兩路波形發(fā)生器??僧a(chǎn)生正弦波、方波和三角波,并且頻率和幅值可調(diào)。
  2.頻譜分析儀??梢詫?duì)采集的信號(hào)進(jìn)行頻譜分析。頻譜分析采用了快速傅立葉變換(FFT)算法,并且將其封裝成獨(dú)立的函數(shù),方便調(diào)用。
  3.頻率計(jì)。同時(shí)還可以實(shí)時(shí)地丈量出采集到的信號(hào)的頻率。在利用程序計(jì)算頻率時(shí),一般采用兩種方法。一種是利用快速傅立葉變換,它的優(yōu)點(diǎn)是不僅能對(duì)標(biāo)準(zhǔn)的周期波形進(jìn)行丈量,而且能夠計(jì)算出各種復(fù)雜波形和信噪比非常低的信號(hào)的頻率值,缺點(diǎn)是分辨率受到限制。另一種計(jì)算頻率的方法是采用脈沖計(jì)數(shù)法。它的優(yōu)點(diǎn)是丈量低頻信號(hào)時(shí)精度高,但它不適合波形復(fù)雜和信噪比低的信號(hào)頻率丈量。所以在丈量過(guò)程中,程序先判定信號(hào)上述的性質(zhì),根據(jù)信號(hào)的性質(zhì),自動(dòng)地采用相應(yīng)的丈量方法。


評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉