• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > EDA/PCB > 設計應用 > 基于改進的CORDIC算法的FFT復乘及其FPGA實現

    基于改進的CORDIC算法的FFT復乘及其FPGA實現

    作者: 時間:2011-07-06 來源:網絡 收藏

    (快速傅里葉變換)在無線通信、語音識別、圖像處理和頻譜分析等領域有著廣泛應用。在運算中,核心操作是蝶形運算,而蝶形運算的主要操作是向量旋轉,實現向量旋轉可用復數乘法運算來實現,但復數乘耗費了運算中大量的乘法器資源。只需簡單的移位與加減運算就能實現向量旋轉,具有使用資源少、硬件規模小等優勢。因此在FFT蝶形運算中用其代替傳統FFT運算中的復數乘法器,可以獲得更好的性能。但傳統中每次迭代方向需由剩余角度的計算來確定,影響了工作速度。為此,本文根據定點FFT復乘中旋轉因子的旋轉方向可預先確定的特點,對CORDIC做了一些改進,在節省資源的同時保證了工作速度。
    1 CORDIC算法原理
    假設直角坐標系中有一向量A(Xa,Ya),逆時針旋轉?茲角度后得到另一個向量B(Xb,Yb),這個過程可用如下矩陣表示:


    本文引用地址:http://www.czjhyjcfj.com/article/191111.htm

    針對這一特點,可在CORDIC算法上做一點改進,把旋轉因子所對應的CORDIC旋轉系數預先存在ROM中(人工計算旋轉系數比較麻煩,可用MATLAB編一段程序來計算,并把旋轉系數存為.mif文件以便ROM初始化),而不是把旋轉因子角度預先存在ROM中。這樣,在進行CORDIC運算時,直接從ROM中取出旋轉系數,從而減少計算Zi來確定下一步旋轉方向的步驟,減少CORDIC模塊設計的復雜性,提高了運算速度,并且旋轉系數不比旋轉因子角度占用的ROM資源多。另外由于旋轉因子需要進行0°、-90°或+90°三種預旋轉,所以預旋轉還要分配兩位二進制數,這樣存儲旋轉系數的ROM就為18位的ROM。
    改進的CORDIC算法結構如圖1所示,所有旋轉因子所對應的CORDIC旋轉系數都存儲在ROM中,通過地址產生器的控制實現序列與相應的旋轉因子的復乘運算。與傳統CORDIC算法相比去掉了預旋轉角與已旋轉角之差的計算來確定下一次旋轉方向的結構,不但增加了系數寄存器模塊,而且總體上結構更為簡單。此CORDIC算法還采用流水線結構提高了運算的速度,從當前VLSI的發展趨勢上來看,芯片內的門資源相對富裕,對流水線CORDIC的實現規模約束很小。此外,流水線CORDIC不存在迭代式CORDIC的反饋回路,使得單元結構更加規則,有利于VLSI實現。


    上一頁 1 2 下一頁

    關鍵詞: CORDIC FPGA FFT 算法

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 安远县| 靖州| 永康市| 隆回县| 肥东县| 雅安市| 双峰县| 石屏县| 高州市| 陇西县| 藁城市| 上林县| 台州市| 南丹县| 南江县| 鹰潭市| 卢湾区| 合作市| 绥棱县| 宾阳县| 永清县| 张家界市| 普兰店市| 新津县| 石河子市| 宜丰县| 铜川市| 拉孜县| 甘泉县| 三台县| 独山县| 广州市| 普陀区| 黑山县| 商南县| 绍兴县| 澄迈县| 古浪县| 丰原市| 调兵山市| 桐柏县|