新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > LTE系統中FFT的實現

        LTE系統中FFT的實現

        作者: 時間:2012-06-25 來源:網絡 收藏
        相同,所以,方案定義了輸入輸出變量及其調用格式。調用格式:Turbo_Code(int*,int,int,char*,char*,int*),其中,int分別表示輸入序列的長度和的級數;int*分別表示輸入序列的首地址和輸出序列的首地址;char*分別表示旋轉因子的余弦的首地址和旋轉因子的正弦的首地址。

          算法具體實現流程如下:

          (1)時間抽取法的中,每個蝶形的輸入、輸出數據節點在一條水平線上,所以每個蝶形的輸出數據可以立即存入原輸入數據所占用的存儲單元。這種原位計算可節省大量的內存,并且理論上減少不同寄存器之間存取數據的時間。

          

        LTE系統中FFT的實現

          使用C語言編寫主函數,匯編語言編寫FFT算法的實現函數。程序中假設輸入數據最大長度為1024,由于DSP C6455可以直接存取處理32bit,所以在內存中定義了長度為8192bit作為存放輸出序列的內存空間。為了提高運算精確度,輸入數的實部和虛部分別占用一個字,在程序中進行復數相乘操作是采用匯編指令MPYHI。內存定義了長度為2048bit的Tempsequence作為存放倒序序列,并且建立了2張旋轉因子查找表,分別為Wr和Wi。

          外循環中,在每次內循環之前從輸入比特序列中取出32bit放入一個寄存器,作為一個內循環的輸入,內循環結束后,取下一個32bit輸入比特更新這個寄存器。

        內循環中,計算蝶形過程采用查表的方式。對于每一級,計算出需要的旋轉因子個數以及相同旋轉因子相距的間隔。計算蝶形過程時,首先提取出X(k),根據相同旋轉因子間隔找到X(k+B)完成蝶形計算??紤]到旋轉因子的對稱性,在內存中存放旋轉因子時只存放一半,剩余的數據根據對稱性進行處理。圖2給出了FFT算法實現計算流程圖。

          

        LTE系統中FFT的實現

          按時間抽取法的FFT輸入序列是倒序,輸出序列是自然順序;按頻率抽取法的FFT輸入序列是自然順序,輸出序列是倒序的。不管采用哪種方法進行FFT計算,都需要倒序處理。倒序是整個FFT計算的重要部分,進行匯編程序時,按自然順序將輸入數據存入到存儲單元內,通過變址運算,將自然順序的序列按時間抽取法要求進行倒位。

          重新排序之前,存儲單元Y中依次存放輸入數據,I表示當前輸入數據比特的順序數的十進制數值,I的取值從0到N-I;J表示當前倒序數的十進制數值。輸入序列的第一個和最后一個數的位置不需要倒序處理,完成倒序的外循環的次數為N-2。為了保證調換數據的正確性,需要檢測一下是否I

          

        c語言相關文章:c語言教程




        關鍵詞: LTE系統 FFT

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 武功县| 合水县| 宁河县| 民县| 康平县| 长武县| 临安市| 招远市| 偃师市| 达州市| 客服| 高淳县| 扎鲁特旗| 望江县| 新田县| 周宁县| 宁化县| 闽清县| 和龙市| 曲阳县| 蓝田县| 泌阳县| 余姚市| 巴里| 略阳县| 马龙县| 石楼县| 石泉县| 肇州县| 桃江县| 临西县| 广宁县| 定州市| 长宁区| 枣阳市| 盐亭县| 丰原市| 吴忠市| 神池县| 涿州市| 西贡区|