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