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