国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文帶你們了解什么是CORDIC算法

電子工程師 ? 來源:OFweek維科網 ? 作者: 科學文化人 ? 2021-04-11 11:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

CORDIC算法簡介

信號處理領域,CORDIC(Coordinate Rotation Digital Computer,坐標旋轉數字計算機)算法具有重大工程意義。CORDIC算法由Vloder于1959年在設計美國航空導航控制系統時提出,主要用于解決導航系統中三角函數、反三角函數和開方等運算的實時計算問題。

1971年,Walther將圓周系統、線性系統和雙曲線系統統一到一個CORDIC迭代方程里,從而額提出了一種統一的CORDIC算法形式。

CORDIC算法的核心是利用加法和移位的迭代操作去替代復雜的運算,從而非常有利于硬件實現。CORDIC算法應用廣泛,如離散傅里葉變換(DFT)、離散余弦變換(DCT)、離散Hartley變換、Chirp-Z變換、各種濾波以及矩陣中的奇異值分解。

在工程領域,可采用CORDIC算法實現直接數字頻率合成器(DDS)、計算I/Q信號的幅度和相位。

01CORDIC基本原理

我們假設在笛卡爾坐標系(也就是我們常見的XY直角坐標系)中,將點(x1,y1)旋轉θ角度到點(x2,y2)的標準方法如下所示:

4e0868e4-99a8-11eb-8b86-12bb97331649.png

根據上圖,我們利用高中學習的三角函數、圓方程和極坐標等中學知識,可以得到:

4e1d3544-99a8-11eb-8b86-12bb97331649.png

這被稱為是平面旋轉、向量旋轉或者線性 ( 矩陣) 代數中的 Givens 旋轉。

上面的式子,我們將大學二年級學習的線性代數知識拿出來,用矩陣的形式來表示,于是得到:

4e28e5a6-99a8-11eb-8b86-12bb97331649.png

例如,我們做一個90°的相移,即θ=90:

4e3b4016-99a8-11eb-8b86-12bb97331649.png

這里注意cos和sin函數在直角坐標系下的物理意義,于是我們得到下面的圖示。

4e4b0ffa-99a8-11eb-8b86-12bb97331649.png

上面的第一個式子,我們假設提出一個公因子cosθ,那么我們可以得到:

4e5399cc-99a8-11eb-8b86-12bb97331649.png

如果去除項,我們得到 偽旋轉 方程式 :

4e683a44-99a8-11eb-8b86-12bb97331649.png

即旋轉的角度是正確的,但是x 與 y 的值增加cos-1θ 倍 ( 由于cos-1θ》 1),所以模值變大。

注意我們并不能通過適當的數學方法去除cosθ 項 , 然而隨后我們發現去除項可以簡化坐標平面旋轉的計算操作。

怎么說呢?

在XY坐標系中,結合上面的偽旋轉公式,我們可以用下圖表示:

4e73f26c-99a8-11eb-8b86-12bb97331649.png

于是,我們得出以下結論:

經過偽旋轉之后,向量 R 的模值將增加1/cosθ 倍。

向量旋轉了正確的角度 , 但模值出現錯誤。

經過偽旋轉后, 輸出進行適當的幅度伸縮(1/cosθ),是不是就可以得到旋轉后的坐標了。

02CORDIC方法

CORDIC 方法的核心是 ( 偽) 旋轉角θ,其中,

4e81160e-99a8-11eb-8b86-12bb97331649.png

這個等式是怎么推導出來的呢?

所以方程為:

4e9c3628-99a8-11eb-8b86-12bb97331649.png

下面的表格指出用于 CORDIC 算法中每個迭代 (i) 的旋轉角度 (精確到 9位小數):

4eb06ee0-99a8-11eb-8b86-12bb97331649.png

note:由于i是整數,所以對應的角度值都是一一確定的,只能通過幾個角度的加減組合來達到你所想要的角度值。

注意有三個方面的變化:

角度累加(減)

坐標值累加(減)

向量的模(也就是長度的,相對于橫縱坐標的)累加(減)

這三個累加的變化時不一樣的,注意區別,角度的累加和長度的累加有一定的對應關系。

4ed6a65a-99a8-11eb-8b86-12bb97331649.png

03角度累加器

4f11f962-99a8-11eb-8b86-12bb97331649.png

4f58711c-99a8-11eb-8b86-12bb97331649.png

上述三個方程式為圓周坐標系中用于角度旋轉的 CORDIC 算法的表達式。后續部分中我們還將看到CORDIC 算法被用于其它的坐標系,通過使用這些坐標系可以執行更大范圍的函數計算。

04移位-加法算法

因此, 原始的算法現在已經被減化為使用向量的偽旋轉來表示的迭代移位-相加算法 :

4fadaccc-99a8-11eb-8b86-12bb97331649.png

因此,每個迭代需要:

4fe6347a-99a8-11eb-8b86-12bb97331649.png

note:前面提到的去除 cos 項的原因是顯而易見的。當將該項去除時,轉換公式已經被簡化為偽旋轉的迭代移位相加計算。

CORDIC 硬件實現結構:

500ead74-99a8-11eb-8b86-12bb97331649.png

05伸縮因子

前面提到,為了得到偽旋轉公式,我們把公因子cosθ忽略了,但在實際運算中,不能就這樣簡單粗暴拋棄。

我們再次對cosθ進行變形:

50222e62-99a8-11eb-8b86-12bb97331649.png

于是,我們可以得到:

5036b080-99a8-11eb-8b86-12bb97331649.png

如果我們已知了將被執行的迭代次數,我們便可以預先計算出 1/Kn 的值,并通過將 1/Kn 與 x(n) 和 y(n)相乘來校正x(n) 和 y(n) 的最終值。

CORDIC有兩種工作模式:旋轉模式和向量模式。

50810b94-99a8-11eb-8b86-12bb97331649.png

50f33318-99a8-11eb-8b86-12bb97331649.png

51fd388a-99a8-11eb-8b86-12bb97331649.png

520ef584-99a8-11eb-8b86-12bb97331649.png

06三種坐標系下的CORDIC

5565e846-99a8-11eb-8b86-12bb97331649.png

55a30320-99a8-11eb-8b86-12bb97331649.png

然而, 我們將會看到,通過考慮其它坐標系中的旋轉, 我們可以直接計算更多的函數, 如乘法和除法, 進而間接計算更多的其它函數。

55d58d90-99a8-11eb-8b86-12bb97331649.png

使用其它坐標系的 CORDIC 算法的優點是可以計算更多的函數, 而缺點則是系統將變得更加復雜。當把CORDIC 算法用于線性或雙曲坐標系時, 在圓周坐標系中的旋轉角度集將不再有效。所以, 這些系統應使用其它的兩種旋轉角度集。

我們會發現,可以推導出可在 3 個坐標系中表示 CORDIC 方程的通用公式。這意味著在方程式中引入兩個新變量。其中一個新變量 (e(i)) 代表了適當的坐標系中用于表示旋轉的角度集。

當把CORDIC算法用于雙曲線旋轉時,伸縮因子K與圓周旋轉的因子有所不同。

5603f3a6-99a8-11eb-8b86-12bb97331649.png

我們通過引入一個新變量μ,得到CORDIC的通用方程:

562dfe80-99a8-11eb-8b86-12bb97331649.png

至此,三個坐標系下的CORDIC方程得到大一統。

5664387e-99a8-11eb-8b86-12bb97331649.png

5683033a-99a8-11eb-8b86-12bb97331649.png

56cfc0d0-99a8-11eb-8b86-12bb97331649.png

56d9721a-99a8-11eb-8b86-12bb97331649.png

在使用FPGA進行CORDIC算法實現時,理想CORDIC 架構取決于具體應用中速率與面積的權衡。

可以將 CORDIC 方程直接翻譯成迭代型的位并行設計,然而:

位并行變量移位器不能很好地映射到 FPGA 中

需要若干個 FPGA 單元。導致設計規模變大而設計時間變長

參考文獻

關于 CORDIC 算法的基礎以及細節問題,可參見下面的材料 :

[1] R. Andraka. A survey of CORDIC algorithms for FPGA based computers. www.andraka.com/cordic.htm

[2] The CORDIC Algorithms. www.ee.byu.edu/ee/class/ee621/Lectures/L22.PDF

[3] CORDIC Tutorial. http://my.execpc.com/~geezer/embed/cordic.htm

[4] M. J. Irwin. Computer Arithmetic. http://www.cse.psu.edu/~cg575/lectures/cse575-cordic.pdf

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 計算機
    +關注

    關注

    19

    文章

    7807

    瀏覽量

    93204
  • COS
    COS
    +關注

    關注

    1

    文章

    24

    瀏覽量

    20391
  • CORDIC算法
    +關注

    關注

    0

    文章

    17

    瀏覽量

    9979

原文標題:什么是CORDIC算法

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    帶你徹底搞懂K8s網絡

    說實話,K8s 網絡是我見過最讓新手頭疼的知識點,沒有之。記得我剛接觸 K8s 那會兒,看著流量在 Pod、Service、Node 之間穿梭,完全是臉懵逼。后來踩了無數坑,熬了無數夜,總算把這套網絡模型摸透了。今天這篇文章,我會用最接地氣的方式,
    的頭像 發表于 02-06 10:15 ?448次閱讀

    CORDIC模塊——提高計算能力的性價比神器

    ,比如ARM的M4、M4F內核,因而價格也比較貴,導致在很多應用場景中,開發者往往還要為芯片上附帶的但卻不需要的功能進行買單,或者為過剩的性能買單。 于是工程師就研究了個新的算法,即坐標旋轉數字計算機算法
    的頭像 發表于 12-22 12:39 ?2949次閱讀
    <b class='flag-5'>CORDIC</b>模塊——提高計算能力的性價比神器

    搞清 BLE 藍牙 UUID

    帶你搞清楚藍牙 UUID ...... 矜辰所致
    的頭像 發表于 12-18 11:23 ?4270次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>搞清 BLE 藍牙 UUID

    SM4算法實現分享(算法原理

    對明文進行分組加密變換。SM4加密算法由32次迭代運算和次反序變換R組成。 設輸入明文為(X0,X 1,X 2,X 3),共128位,設密輸出為(Y0,Y 1,Y 2,Y 3),輪密鑰為rki
    發表于 10-30 08:10

    TCORDIC算法實現正余弦函數

    TCORDIC算法,由低延遲CORDIC算法和Taylor展開組成。Taylor展開計算作為CORDIC算法的補充,能夠結合
    發表于 10-29 06:30

    ALM(應用生命周期管理)解析:了解其概念、關鍵階段及Perforce ALM工具推薦

    什么是ALM(應用生命周期管理)?它遠不止是SDLC!了解其概念、關鍵階段以及如何借助Perforce ALM這類工具,實現端到端的可追溯性、加速發布并保障合規性。
    的頭像 發表于 09-19 11:03 ?1850次閱讀
    ALM(應用生命周期管理)解析:<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>其概念、關鍵階段及Perforce ALM工具推薦

    帶你了解海凌科毫米波雷達

    什么是毫米波雷達?毫米波雷達有什么特點?毫米波雷達有什么作用?海凌科有哪些系列毫米波雷達?帶你了解!毫米波的定義毫米波是指頻率在30GHz至300GHz之間、波長為1~10毫米的電
    的頭像 發表于 08-11 12:04 ?1834次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>海凌科毫米波雷達

    帶你了解什么是機器視覺網卡

    機器視覺網卡通常指的是在機器視覺系統中用于連接工業相機到計算機的以太網卡。它的核心作用是實現高速、穩定、低延遲的圖像數據傳輸。以下是關于機器視覺網卡的關鍵信息:1.核心功能:高速圖像傳輸:處理來自千兆以太網或萬兆以太網相機產生的大量圖像數據流。萬兆網卡能提供更高的帶寬,滿足高分辨率、高幀率相機的需求。支持GigEVision協議:這是機器視覺領域最重要的工業
    的頭像 發表于 07-09 16:18 ?669次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>什么是機器視覺網卡

    帶你了解電源測試系統的功能!

    在當今電子與電力技術飛速發展的時代,各類電子設備、電力系統以及新能源相關產品的研發、生產和維護過程中,電源測試系統扮演著至關重要的角色。本文將帶你了解源儀電子的電源測試系統的功能。
    的頭像 發表于 07-02 09:10 ?983次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>電源測試系統的功能!

    了解電壓諧波

    我們經常會聽到諧波,到底什么是諧波,怎么定義的?為什么要關注諧波?什么時候關注諧波?諧波如何計算或標準規定的諧波的算法是怎樣的?GB關于電壓諧波又是如何評估的?帶著諸多的問題,我們一起來了解
    的頭像 發表于 06-28 17:23 ?4750次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>電壓諧波

    【微五科技CF5010RBT60開發板試用體驗】Cordic數學計算測試

    Cordic數學計算測試本文分享cordic硬件數學計算。 Xprintf.h配置支持浮點打印#define XF_USE_FP1 /* 1: Enable support for floating
    發表于 06-27 23:55

    帶你了解工業計算機尺寸

    項艱巨的任務。本博客將指導您了解關鍵的工業計算機尺寸、使用案例。關鍵工業計算機外形要素及其使用案例、工業微型PC尺寸范圍:寬度:100毫米-180毫米深度:10
    的頭像 發表于 04-24 13:35 ?1046次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>工業計算機尺寸

    帶你了解芯片開封技術

    芯片開封的定義芯片開封,即Decap,是種對完整封裝的集成電路(IC)芯片進行局部處理的工藝。其目的是去除芯片的封裝外殼,暴露出芯片內部結構,同時確保芯片功能不受損。芯片開封是芯片故障分析實驗
    的頭像 發表于 04-07 16:01 ?1295次閱讀
    <b class='flag-5'>帶你</b><b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>了解</b>芯片開封技術

    帶你全面了解陶瓷電路板厚膜工藝

    陶瓷電路板厚膜工藝是種先進的印刷電路板制造技術,廣泛應用于電子、通信、航空航天等領域。本文將詳細介紹陶瓷電路板厚膜工藝的原理、流程、優勢以及應用,帶您全面了解技術……
    的頭像 發表于 03-17 16:30 ?1413次閱讀

    【干貨】什么是Node-RED?帶你了解

    什么是Node-RED?首先我們來認識下什么是Node-RED。Node-RED是個基于Node.js的開源可視化編程工具,于2013年由IBM公司推出。它可以通過瀏覽器的圖形化界面進行編程
    的頭像 發表于 03-13 19:32 ?1963次閱讀
    【干貨】什么是Node-RED?<b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>帶你</b><b class='flag-5'>了解</b>!