基于PCI總線和DSP技術(shù)的虛擬儀器系統(tǒng)設(shè)計(jì)
2 FFT算法的實(shí)現(xiàn)
系統(tǒng)需要針對(duì)DSP數(shù)據(jù)采集模塊,開(kāi)發(fā)并實(shí)現(xiàn)對(duì)模擬信號(hào)的采集以及對(duì)數(shù)據(jù)進(jìn)行FFT(快速傅立葉變換)算法處理的程序。
作為一般的情況,設(shè):x(n)和X(k)都是復(fù)數(shù),因?yàn)閺膶?shí)際計(jì)算過(guò)程看,實(shí)數(shù)和復(fù)數(shù)沒(méi)有區(qū)別,唯一不同的是:實(shí)數(shù)的虛部為零,表達(dá)式簡(jiǎn)單些。而運(yùn)算過(guò)程所有的計(jì)算都是對(duì)實(shí)數(shù)進(jìn)行的,如果信號(hào)或頻譜是復(fù)數(shù),就把最后計(jì)算的結(jié)果再組合成為復(fù)數(shù)分量。FFT運(yùn)算的基本單元是“蝶形單元”,其蝶形運(yùn)算的基本形式如下式所示:
所有蝶形單元的運(yùn)算可統(tǒng)一表示為
(1)
式(1)中,A和B是蝶形單元的輸入,C和D是輸出。同時(shí)將表示為
(2)
式(1)可以表示為虛部和實(shí)部形式,帶下標(biāo)R的字符表示實(shí)部,帶下標(biāo)I的為虛部,即
(3)
根據(jù)算法原理和上面的說(shuō)明,用C語(yǔ)言編制出一個(gè)按時(shí)間抽取的FFT算法程序,結(jié)構(gòu)上分為幾個(gè)部分:首先是碼位的倒置,然后根據(jù)計(jì)算的點(diǎn)數(shù)確定蝶形運(yùn)算的級(jí)數(shù),接著是逐級(jí)進(jìn)行蝶形運(yùn)算,完成FFT運(yùn)算。
3 應(yīng)用控制軟件的設(shè)計(jì)
圖6 控制軟件功能模塊框圖
整個(gè)應(yīng)用控制軟件的功能模塊框圖如圖6所示。
基于以上的控制功能模塊圖,選擇使用VC++來(lái)實(shí)現(xiàn)本系統(tǒng)應(yīng)用軟件的人機(jī)界面以及對(duì)系統(tǒng)的控制功能。VC++的開(kāi)發(fā)環(huán)境集編輯、編譯、連接、調(diào)試、向?qū)У榷囗?xiàng)功能于一體,并且提供了目前成為業(yè)界標(biāo)準(zhǔn)的MFC(MicrosoftApplication Foundation Classes)類(lèi)庫(kù)。
我們開(kāi)發(fā)的虛擬儀器系統(tǒng)PC端控制軟件可實(shí)現(xiàn)數(shù)據(jù)波形顯示、端口配置、內(nèi)存讀寫(xiě)以及對(duì)儀器的控制功能,其主界面如圖7所示。
圖7 程序主界面
結(jié)語(yǔ)
本設(shè)計(jì)實(shí)現(xiàn)了基于DSP技術(shù)與PCI總線的數(shù)據(jù)采集處理卡,開(kāi)發(fā)了虛擬式實(shí)時(shí)多通道FFT頻譜分析儀的應(yīng)用程序以及主機(jī)監(jiān)控界面。通過(guò)在數(shù)據(jù)采集卡上集成DSP,使得該卡不但能實(shí)時(shí)不掉點(diǎn)地采集外界信號(hào),而且能在卡上實(shí)現(xiàn)數(shù)字濾波、FFT頻譜分析。
整個(gè)系統(tǒng)經(jīng)過(guò)綜合調(diào)試和嚴(yán)格測(cè)試后,達(dá)到設(shè)計(jì)需求,業(yè)已投入實(shí)際使用。
評(píng)論