FFT 在單片機C8051中的實現(xiàn)
3 FFT優(yōu)化
已經出現(xiàn)了很多優(yōu)化FFT的方法。而這些優(yōu)化方法的目的都是為了使得計算速度增快且盡可能的減少存儲數(shù)據(jù)所需要的RAM。
我們都知道,計算FFT的一個重要方法是蝶式方法。但是蝶式計算的每一次迭代都需要一個復雜的乘法(總共是四次的長整數(shù)乘法)。長整數(shù)乘法需要很多處理內存來完成。但是我們仔細觀察會發(fā)現(xiàn)其中一些乘法是不需要的,并且是可以省去的。特別是,當乘數(shù)為零時,結果將為零和當乘數(shù)為1時,相乘的結果將不變。對那些正弦和余弦函數(shù)是否為0或1進行查詢的代碼可以利用這些優(yōu)點來減少計算量。這種優(yōu)化方法能節(jié)省的計算量為:其中N為FFT的點數(shù)。
4 程序總體設計
首長分成三個模塊集合而成。即數(shù)據(jù)采集模塊,A/D轉換模塊及FFT運算模塊。數(shù)據(jù)采集模塊主要是通過定時器來控制A/D轉換器的采樣周期,將采集到的數(shù)據(jù)轉換成有符號數(shù),并且可以以復數(shù)形式存貯。FFT的運算模塊是在8051單片機的數(shù)據(jù)存貯器上運行256點的FFT,并經一快速平方根或快速對數(shù)運算,計算出對應128個頻率點的幅值或分貝表示值。具體流程如圖3。
5 在電話視頻中的應用
在一個會議中,當說話人變換時。我們需要攝像頭能自動跟蹤并檢測出說話人的位置,這就需要用到FFT及其反變換來計算角度。
6 結論
本文主要介紹了一種在單片機中實現(xiàn)FFT算法的優(yōu)化方法,由于這可大大減少FFT的計算量及減少存儲數(shù)據(jù)所需要的RAM。因此其可應用在電話視頻會議中。
評論