基于TMS320LF2407的FFT算法的實(shí)現(xiàn)
2 快速傅里葉算法在TMS320LF2407上的實(shí)現(xiàn)
根據(jù)FFT算法的特點(diǎn),處理器要在一個(gè)指令周期內(nèi)完成乘和累加的工作,因?yàn)閺?fù)數(shù)運(yùn)算要多次查表相乘才能實(shí)現(xiàn)。其二就是間接尋址,可以實(shí)現(xiàn)增/減1個(gè)變址量,方便各種查表方法。再次,FFT變換的輸入序列x(n)是按所謂的碼位倒序排列的,處理器要有反序間接尋址的能力。DSP控制器專門設(shè)計(jì)了特有的反序間接尋址,并能在一個(gè)指令周期內(nèi)完成乘和累加的運(yùn)算。因此,對數(shù)字信號的分析處理,DSP比其它的處理器有絕對的優(yōu)勢。本文采用TI公司C2000系列TMS320LF2407芯片來實(shí)現(xiàn)FFT算法。
TMS320LF2407定點(diǎn)DSP是一款專為工業(yè)控制、電機(jī)控制和數(shù)字信號處理等用途而設(shè)計(jì)的DSP,具備單周期乘加指令,具有FFT反序間接尋址功能,最高運(yùn)行速度為40MIPS。為了充分利用DSP芯片特有的反序間接尋址等功能,F(xiàn)FT算法程序采用匯編語言編寫,主程序采用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的計(jì)算:X(k)=XR(k)+jX(k),|X(k)2|=|Xr(k)|2+|Xi(k)|2。FFT計(jì)算結(jié)果的信號幅度譜|X(k)|2如圖6所示。
輸入信號頻率是10Hz,根據(jù)公式f=kfs/N,f是原始信號的頻率,k表示峰值出現(xiàn)的位置,fS是采樣頻率,N是計(jì)算的點(diǎn)數(shù),從幅度譜中看出,峰值出現(xiàn)在k=1處,那么,f=1×640/64=10,與原始信號的實(shí)際頻率一致,說明計(jì)算結(jié)果正確。
評論