基于TMS32OLF24O7的FFT算法的實現(xiàn)及應(yīng)用
TMS320LF2407定點DSP是一款專為工業(yè)控制、電機(jī)控制和數(shù)字信號處理等用途而設(shè)計的DSP,具備單周期乘加指令,具有FFT反序間接尋址功能,最高運(yùn)行速度為40MIPS。為了充分利用DSP芯片特有的反序間接尋址等功能,FFT算法程序采用匯編語言編寫,主程序采用C語言,因此程序具有良好的兼容性和可擴(kuò)展性。
主程序流程圖如圖4所示。系統(tǒng)初始化主要完成DSP的系統(tǒng)控制和狀態(tài)寄存器、等待狀態(tài)發(fā)生器控制寄存器、中斷寄存器等的必要設(shè)置。
本程序采樣函數(shù)為:x=sin(20πt),采樣頻率為640Hz。
輸入數(shù)據(jù)波形如圖5所示。一般情況下,我們只關(guān)心信號頻域的幅度譜。幅度譜|X(k)|2的計算:X(k)=XR(k)+jX(k),|X(k)2|=|Xr(k)|2+|Xi(k)|2。FFT計算結(jié)果的信號幅度譜|X(k)|2如圖6所示。
輸入信號頻率是10Hz,根據(jù)公式f=kfs/N,f是原始信號的頻率,k表示峰值出現(xiàn)的位置,fS是采樣頻率,N是計算的點數(shù),從幅度譜中看出,峰值出現(xiàn)在k=1處,那么,f=1×640/64=10,與原始信號的實際頻率一致,說明計算結(jié)果正確。
3 快速傅里葉變換(FFT)的應(yīng)用
FFT在生產(chǎn)實踐和科學(xué)研究中有著廣泛的應(yīng)用。圖7為FFT的典型應(yīng)用方案。下面簡單介紹一下FFT的應(yīng)用領(lǐng)域。
(1)頻譜分析。對各類旋轉(zhuǎn)機(jī)械、電機(jī)、機(jī)床等機(jī)器的主體或部件進(jìn)行實際運(yùn)行狀態(tài)下的頻譜分析,可以提供設(shè)計數(shù)據(jù)和檢驗設(shè)計結(jié)果,或者找尋震源和診斷故障,保證設(shè)備的安全運(yùn)行等。在聲納系統(tǒng)中,為了尋找海洋水面船只或潛艇,需要對噪聲信號進(jìn)行頻譜分析,以提供有用信息,判斷艦艇運(yùn)行速度、方向、位置、大小等。
(2)濾波。濾波是FFT最廣泛的應(yīng)用,它使對波形的頻率分量濾波變得十分簡單。比如對采樣信號進(jìn)行FFT后,去掉不需要的頻率分量,再進(jìn)行FFT反變換,就得到濾波后的期望信號。
(3)電力監(jiān)控系統(tǒng)的諧波分析。電力監(jiān)控系統(tǒng)的諧波分析,需要對采樣數(shù)據(jù)進(jìn)行FFT運(yùn)算,然后通過液晶屏或其它人機(jī)界面重新繪畫出來,以方便技術(shù)人員掌握電力的質(zhì)量。
4 總結(jié)
實驗證明,此程序在TMS320LF2407定點DSP中運(yùn)行良好,速度快且運(yùn)算結(jié)果十分可靠,其用于一般的信號處理和工業(yè)控制都能滿足精度和實時的要求,具有較高的學(xué)術(shù)價值和良好的應(yīng)用前景。其次,掌握FFT,學(xué)會在空域和頻域中同時思考問題,很多時候可以讓我們使用簡單的方法來解決復(fù)雜的問題。
評論