一種應(yīng)用補碼方法的正余弦cordic算法在fpga實現(xiàn)的方法
【專利摘要】本發(fā)明公開了一種應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,該方法包括:采用數(shù)學(xué)歸納法由CORDIC算法推導(dǎo)正余弦CORDIC算法;采用補碼法判斷正余弦CORDIC算法坐標(biāo)旋轉(zhuǎn)方向,根據(jù)坐標(biāo)旋轉(zhuǎn)方向求出旋轉(zhuǎn)坐標(biāo)量,獲取旋轉(zhuǎn)坐標(biāo)運算結(jié)果;通過對正余弦CORDIC算法的仿真實驗,對旋轉(zhuǎn)坐標(biāo)運算結(jié)果進(jìn)行分析。本發(fā)明能有效解決迭代法不停迭代過程所消耗很多時間資源與流水線所消耗的邏輯資源的缺點,減少比較次數(shù),減少時間延遲,能更好地解決實時性問題,在信號實時計算中具有重要的實際意義。
【專利說明】—種應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種應(yīng)用補碼方法的正余弦CORDIC算法,尤其涉及一種應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法。
【背景技術(shù)】
[0002]坐標(biāo)旋轉(zhuǎn)數(shù)字計算(CoordinateRotation Digital Computer, C0RDIC)算法是1959年由Voider J提出,通過一系列固定與運算基數(shù)有關(guān)角度不斷偏擺迭代以逼近所需旋轉(zhuǎn)角度,由簡單加法、移位操作即可完成三角函數(shù)、指數(shù)函數(shù)、對數(shù)函數(shù)等超越函數(shù)的計算。1971年Walther J D把圓周旋轉(zhuǎn)、雙曲旋轉(zhuǎn)和直線旋轉(zhuǎn)統(tǒng)一成標(biāo)準(zhǔn)CORDIC迭代方程,進(jìn)一步增加算法運算功能。CORDIC算法具有規(guī)則化、結(jié)構(gòu)簡單的特點,容易通過硬件方法實現(xiàn)。流水線法、迭代法是目前CORDIC算法在FPGA實現(xiàn)的主要方法。其中流水線法基于并行結(jié)構(gòu),處理速度快,而帶來結(jié)構(gòu)復(fù)雜、占用硬件資源多的問題,初始時延較大;迭代法基于串行結(jié)構(gòu),結(jié)構(gòu)簡單、占用資源少,則存在迭代次數(shù)多、運算速度慢的問題,初始時延較大。為提高CORDIC算法在FPGA實現(xiàn)性能,國內(nèi)外開展很多有益研究,從不同角度對CORDIC算法進(jìn)行結(jié)構(gòu)改進(jìn),減少存儲單元、降低功耗,但部分仍存在算法復(fù)雜的問題。為此,本發(fā)明針對CORDIC算法在FPGA實現(xiàn)存在問題,研究通項式正余弦CORDIC算法,并在FPGA實現(xiàn)本算法。
【發(fā)明內(nèi)容】
[0003]為解決上述技術(shù)問題,本發(fā)明的目的是提供一種應(yīng)用補碼方法的正余弦CORDIC(Coordinate Rotation Digital Computer,坐標(biāo)旋轉(zhuǎn)數(shù)字計算)算法在FPGA實現(xiàn)的方法,該方法降低結(jié)構(gòu)復(fù)雜度、減少迭代次數(shù)和時間延遲,提高實時性。
[0004]本發(fā)明的目的通過以下的技術(shù)方案來實現(xiàn):
[0005]一種應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,包括:
[0006]A采用數(shù)學(xué)歸納法由CORDIC算法推導(dǎo)正余弦CORDIC算法;
[0007]B采用補碼法判斷正余弦CORDIC算法坐標(biāo)旋轉(zhuǎn)方向,根據(jù)坐標(biāo)旋轉(zhuǎn)方向求出旋轉(zhuǎn)坐標(biāo)量,獲取旋轉(zhuǎn)坐標(biāo)運算結(jié)果;
[0008]C通過對正余弦CORDIC算法的仿真實驗,對旋轉(zhuǎn)坐標(biāo)運算結(jié)果進(jìn)行分析。
[0009]與現(xiàn)有技術(shù)相比,本發(fā)明的一個或多個實施例可以具有如下優(yōu)點:能有效解決迭代法不停迭代過程所消耗很多時間資源與流水線所消耗的邏輯資源的缺點,減少比較次數(shù),減少時間延遲,能更好的解決實時性問題,在信號實時計算中有重要的實際意義。
【專利附圖】
【附圖說明】
[0010]附圖用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例共同用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0011]圖1是應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法流程圖;[0012]圖2是直角坐標(biāo)系旋轉(zhuǎn)向量圖;
[0013]圖3是基于通項法的正余弦函數(shù)CORDIC算法流程圖;
[0014]圖4是傳統(tǒng)流水線法、傳統(tǒng)迭代法和通項法的仿真模擬波形圖;
[0015]圖5是傳統(tǒng)流水線法、傳統(tǒng)迭代法和通項法的仿真延時情況圖。
【具體實施方式】
[0016]容易理解,根據(jù)本發(fā)明的技術(shù)方案,在不變更本發(fā)明的實質(zhì)精神下,本領(lǐng)域的一般技術(shù)人員可以提出本發(fā)明的多個結(jié)構(gòu)方式和制作方法。因此以下【具體實施方式】以及附圖僅是本發(fā)明的技術(shù)方案的具體說明,而不應(yīng)當(dāng)視為本發(fā)明的全部或者視為本發(fā)明技術(shù)方案的限定或限制。
[0017]下面結(jié)合實施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述。
[0018]圖1是應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,該包括:
[0019]步驟10將CORDIC算法采用數(shù)學(xué)歸納法推導(dǎo)正余弦CORDIC算法;
[0020]在直角坐標(biāo)系旋轉(zhuǎn)向量圖中(如圖2所示),單位向量PciUci, yj旋轉(zhuǎn)角Θ至IjPn (Xn,yn),可表不為:
【權(quán)利要求】
1.一種應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,該包括: A采用數(shù)學(xué)歸納法由CORDIC算法推導(dǎo)正余弦CORDIC算法; B采用補碼法判斷正余弦CORDIC算法坐標(biāo)旋轉(zhuǎn)方向,根據(jù)坐標(biāo)旋轉(zhuǎn)方向求出旋轉(zhuǎn)坐標(biāo)量,獲取旋轉(zhuǎn)坐標(biāo)運算結(jié)果; C通過對正余弦CORDIC算法的仿真實驗,對旋轉(zhuǎn)坐標(biāo)運算結(jié)果進(jìn)行分析。
2.根據(jù)權(quán)利要求1所述的應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,其特征在于,所述步驟A具體包括: 在直角坐標(biāo)系旋轉(zhuǎn)向量圖中,確定單位向量Pcl(Xc^yo)旋轉(zhuǎn)角θ的關(guān)系式; 根據(jù)所述單位向量Po (Xt), yo)旋轉(zhuǎn)角Θ ill Pn(xn, yn)的關(guān)系式得到CORDIC公式,從而計算轉(zhuǎn)化為旋轉(zhuǎn)方向的移位和加法運算,確定正余弦CORDIC算法坐標(biāo)旋轉(zhuǎn)次數(shù),通過角度變量確定旋轉(zhuǎn)坐標(biāo)方向。
3.根據(jù)權(quán)利要求1所述的應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,其特征在于,所述步驟B具體包括: 用一條數(shù)據(jù)鏈連續(xù)求出η位正余弦CORDIC算法坐標(biāo)旋轉(zhuǎn)方向; 通過補碼法求解η次旋轉(zhuǎn)坐標(biāo)值,根據(jù)所述坐標(biāo)值獲得正余弦函數(shù)運算結(jié)果。
4.根據(jù)權(quán)利要求1所述的應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,其特征在于,所述步驟C具體包括: 初始化旋轉(zhuǎn)坐標(biāo)變量初值和初始角度值,確定輸入角度位寬及迭代次數(shù)參數(shù); 轉(zhuǎn)換輸入角度的范圍,并根據(jù)位寬將角度浮點數(shù)轉(zhuǎn)化為定點數(shù); 應(yīng)用補碼法求解角度變量,確定坐標(biāo)旋轉(zhuǎn)方向,求解旋轉(zhuǎn)坐標(biāo)變量,輸出待求角度的正弦和余弦值; 對待求角度的正弦和余弦值的計算速度、初始時延、存儲資源和運算精度進(jìn)行分析。
5.根據(jù)權(quán)利要求1所述的應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,其特征在于,所述步驟B中采用補碼法判斷坐標(biāo)旋轉(zhuǎn)方向具體包括: 根據(jù)角度中間變量Zi大小判斷,設(shè)固定旋轉(zhuǎn)角度Λ位寬為《,Zi符號位以及擴(kuò)展到w位分別表示為Cz1、|Czi|w,第i次旋轉(zhuǎn)固定角度衝的原碼、補碼及反碼分別表示為W#' [fik,其公式為:
6.根據(jù)權(quán)利要求1所述的應(yīng)用補碼方法的正余弦CORDIC算法在FPGA實現(xiàn)的方法,其特征在于,所述旋轉(zhuǎn)坐標(biāo)量的求解具體包括: 設(shè)旋轉(zhuǎn)坐標(biāo)(X^yi)位寬Idi符號位以及擴(kuò)展到w位分別表示為Cd1、|Cdi |w !Xi^yi右移i位后分別表示為Xi (?i)、yi (?i),它們的反碼、補碼分別表示為[Xi (?i) ] &和[yi (?i)]反、[Xi (?i) ] #和Eyi (?i)]補,其公式為:
【文檔編號】G06F7/544GK103713878SQ201410012830
【公開日】2014年4月9日 申請日期:2014年1月10日 優(yōu)先權(quán)日:2014年1月10日
【發(fā)明者】劉桂雄, 林若波, 唐文明, 洪曉斌 申請人:華南理工大學(xué)