基于頻域?yàn)V波數(shù)字均衡器的設(shè)計(jì)
2.2.2 蝶形運(yùn)算的算法
蝶形運(yùn)算是逐級(jí)運(yùn)算累加實(shí)現(xiàn)的,在傳統(tǒng)的蝶形運(yùn)算中,旋轉(zhuǎn)因子的N是保持一個(gè)固定的值而k是不斷變化的,第一級(jí)到第級(jí)中,k的變化是以2為底的冪指數(shù)的變化,而到第級(jí)時(shí),k的變化則是0,1,…,(N/2)-1。如果依照k的這種變化規(guī)律,在第級(jí)時(shí),就很難繼續(xù)依照前級(jí)進(jìn)行變化。因此,根據(jù)以上分析,采用另外一種思路來(lái)對(duì)蝶形運(yùn)算進(jìn)行重新的整理。在旋轉(zhuǎn)因子中,N是每個(gè)
蝶形單元輸入數(shù)據(jù)的個(gè)數(shù),k的變化規(guī)律是0,1,…,(N/2)-1,采用這種方法就可以有效的縮短代碼的長(zhǎng)度,提高運(yùn)行速度。圖1為蝶形運(yùn)算流程圖。本文引用地址:http://2s4d.com/article/187578.htm
2.3 快速傅里葉變換的實(shí)現(xiàn)
蝶形運(yùn)算的旋轉(zhuǎn)因子,輸入的復(fù)數(shù)表示為InputData=RealInData+j*ImagInData,因此在計(jì)算過(guò)程中,旋轉(zhuǎn)因子和輸入數(shù)據(jù)的計(jì)算過(guò)程是將實(shí)數(shù)和復(fù)數(shù)分開(kāi)計(jì)算所得到的。
因?yàn)樾D(zhuǎn)因子中k=0,1,…,(N/2)-1,因此隨著k的增長(zhǎng)cos(-2Pik/N)和sin(-2Pik/N)也相繼發(fā)生成倍的變化。
對(duì)這一現(xiàn)象采用的處理方法是使用正余弦的倍角公式:
這樣,處理的變化的過(guò)程就變?yōu)樘幚碚液陀嘞冶督亲兓倪^(guò)程,從而簡(jiǎn)化了程序。部分程序如下:
其中,Block是每一個(gè)蝶形單元輸入個(gè)數(shù)的一半即N/2,r0和i0分別是旋轉(zhuǎn)因子的實(shí)部和虛部。
評(píng)論