System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及cordic算法領域,具體而言,涉及基于cordic算法的向量模長計算方法和系統。
技術介紹
1、cordic(coordinate?rotation?digital?computer)算法的核心思想是通過一系列的固定角度旋轉來逼近目標函數的計算。這些旋轉角度通常是2的冪次方的反正切值,可以通過查表得到。算法包括兩種模式:旋轉模式(rotation?mode)和向量模式(vectoringmode)。旋轉模式用于計算目標角度的正余弦值,而向量模式則用于將極坐標轉換為笛卡爾坐標系。
2、通常cordic的電路引擎在計算模長mod時,因為算法的偽旋轉時引入的固定誤差存在,導致模長結果不能超過單位圓半徑r的k倍。此限制會導致諸多問題,因為電路實現中基本會將初始向量的坐標限制在[-1,1]之間。其中有大部分的數據不可用,限制了電路的實用性和性能。
技術實現思路
1、本申請提供基于cordic算法的向量模長計算方法和系統,本申請通過對模長溢出的初始向量進行縮放,以解決cordic模長計算中,由于偽旋轉誤差導致的初始向量選擇范圍過小的問題。具體的,本申請的技術方案如下:
2、第一方面,本申請公開基于cordic算法的向量模長計算方法,包括:
3、獲取初始向量的坐標,計算初始模長;判斷所述初始向量在經過進行cordic算法向量模式迭代后是否會產生模長溢出;
4、若是,則在所述初始模長進行cordic算法向量模式迭代之前,將所述初始模長乘以
5、在進行cordic算法向量模式迭代結束后,對得到的計算結果乘以放大系數m,以得到最終模長計算結果。
6、在一些實施方式中,所述的獲取初始向量的坐標,計算初始模長;判斷所述初始模長在經過進行cordic算法向量模式迭代后是否會產生模長溢出;包括如下步驟:
7、獲取所述初始向量的坐標(x,y);
8、計算初始模長p:
9、當所述初始模長p滿足時;所述初始向量在經過進行cordic算法向量模式迭代后不會產生模長溢出;
10、其中,n為迭代次數;an是n次偽旋轉后向量的模長被放大的誤差系數;r為系統可表達的最大模長;
11、在一些實施方式中,當所述初始模長p滿足p>r*k時;所述初始模長在經過進行cordic算法向量模式迭代后會產生模長溢出;
12、計算縮小系數n;所述縮小系數用于將會產生模長溢出的所述初始模長縮小為原來的n倍;
13、
14、其中,p為初始模長;r為系統可表達的最大模長;n為迭代次數;an是n次偽旋轉后向量的模長被放大的誤差系數。
15、在一些實施方式中,所述的基于cordic算法的向量模長計算方法,還包括:計算放大系數m;所述放大系數m用于將縮小后的模長結果恢復;
16、
17、其中,p為初始模長;r為系統可表達的最大模長。
18、在一些實施方式中,所述的基于cordic算法的向量模長計算方法,還包括:
19、設置所述初始向量的x坐標和y坐標的取值范圍為[-t,t];其中,t為任意取值;
20、基于所述初始向量的取值范圍,判斷所述初始向量在經過進行cordic算法向量模式迭代后是否會產生模長溢出;
21、具體包括:
22、計算該取值范圍內最大初始模長p,
23、當t取值滿足時;所述初始向量在經過進行cordic算法向量模式迭代后不會產生模長溢出。
24、第二方面,本申請還公開基于cordic算法的向量模長計算系統,包括:
25、判斷模塊,用于獲取初始向量的坐標,計算初始模長;判斷所述初始向量在經過進行cordic算法向量模式迭代后是否會產生模長溢出;
26、縮放模塊,用于若是,則在所述初始模長進行cordic算法向量模式迭代之前,將所述初始模長乘以縮小系數n,使得所述初始模長縮小為原來的n倍;
27、算法模塊,用于執行cordic算法向量模式迭代;
28、所述縮放模塊,還用于在進行cordic算法向量模式迭代結束后,對得到的計算結果乘以放大系數m,以得到最終模長計算結果。
29、在一些實施方式中,所述判斷模塊,還用于:獲取所述初始向量的坐標(x,y);計算初始模長p:
30、當所述初始模長p滿足時;所述初始向量在經過進行cordic算法向量模式迭代后不會產生模長溢出;
31、其中,n為迭代次數;an是n次偽旋轉后向量的模長被放大的誤差系數;r為系統可表達的最大模長;
32、在一些實施方式中,所述縮放模塊,還用于當所述初始模長p滿足p>r*k時;所述初始模長在經過進行cordic算法向量模式迭代后會產生模長溢出;
33、計算縮小系數n;所述縮小系數用于將會產生模長溢出的所述初始模長縮小為原來的n倍;
34、
35、其中,p為初始模長;r為系統可表達的最大模長;n為迭代次數;an是n次偽旋轉后向量的模長被放大的誤差系數。
36、在一些實施方式中,所述縮放模塊,還用于計算放大系數m;所述放大系數m用于將縮小后的模長結果恢復;
37、
38、其中,p為初始模長;r為系統可表達的最大模長。
39、在一些實施方式中,所述判斷模塊,還用于設置所述初始向量的x坐標和y坐標的取值范圍為[-t,t];其中,t為任意取值;基于所述初始向量的取值范圍,判斷所述初始向量在經過進行cordic算法向量模式迭代后是否會產生模長溢出;
40、具體包括:計算該取值范圍內最大初始模長p,
41、當t取值滿足時;所述初始向量在經過進行cordic算法向量模式迭代后不會產生模長溢出。
42、與現有技術相比,本申請至少具有以下一項有益效果:
43、本申請旨在解決cordic模長計算中,由于偽旋轉誤差導致的初始向量選擇范圍過小的問題,引入對初始向量的縮放,計算完成對模長復原的方法,可以將初始向量的選擇范圍無限擴大。
44、本申請在cordic圓周系統向量模式的旋轉計算中提出一種新的方法,旨在解決旋轉過程中由于誤差因子和初始模長導致的旋轉計算過程中,模長超出圓周半徑的問題。此方法在不更改原有精度與性能等情況下,顯著提高cordic算法可選擇的初始向量范圍,將其由圓周的部分范圍,擴充到整個單位圓周甚至到半徑為的圓周。
本文檔來自技高網...【技術保護點】
1.基于CORDIC算法的向量模長計算方法,其特征在于,包括如下步驟:
2.如權利要求1所述的基于CORDIC算法的向量模長計算方法,其特征在于,所述的獲取初始向量的坐標,計算初始模長;判斷所述初始模長在經過進行CORDIC算法向量模式迭代后是否會產生模長溢出;包括如下步驟:
3.如權利要求2所述的基于CORDIC算法的向量模長計算方法,其特征在于:當所述初始模長P滿足P>R*k時;所述初始模長在經過進行CORDIC算法向量模式迭代后會產生模長溢出;
4.如權利要求3所述的基于CORDIC算法的向量模長計算方法,其特征在于,還包括:計算放大系數M;所述放大系數M用于將縮小后的模長結果恢復;
5.如權利要求1-4任一項所述的基于CORDIC算法的向量模長計算方法,其特征在于,還包括:
6.基于CORDIC算法的向量模長計算系統,其特征在于,包括:
7.如權利要求6所述的基于CORDIC算法的向量模長計算系統,其特征在于:所述判斷模塊,還用于:獲取所述初始向量的坐標(x,y);計算初始模長P:
8.如
9.如權利要求6所述的基于CORDIC算法的向量模長計算系統,其特征在于,所述縮放模塊,還用于計算放大系數M;所述放大系數M用于將縮小后的模長結果恢復;
10.如權利要求6-9任一項所述的基于CORDIC算法的向量模長計算系統,其特征在于,所述判斷模塊,還用于設置所述初始向量的x坐標和y坐標的取值范圍為[-t,t];其中,t為任意取值;基于所述初始向量的取值范圍,判斷所述初始向量在經過進行CORDIC算法向量模式迭代后是否會產生模長溢出;
...【技術特征摘要】
1.基于cordic算法的向量模長計算方法,其特征在于,包括如下步驟:
2.如權利要求1所述的基于cordic算法的向量模長計算方法,其特征在于,所述的獲取初始向量的坐標,計算初始模長;判斷所述初始模長在經過進行cordic算法向量模式迭代后是否會產生模長溢出;包括如下步驟:
3.如權利要求2所述的基于cordic算法的向量模長計算方法,其特征在于:當所述初始模長p滿足p>r*k時;所述初始模長在經過進行cordic算法向量模式迭代后會產生模長溢出;
4.如權利要求3所述的基于cordic算法的向量模長計算方法,其特征在于,還包括:計算放大系數m;所述放大系數m用于將縮小后的模長結果恢復;
5.如權利要求1-4任一項所述的基于cordic算法的向量模長計算方法,其特征在于,還包括:
6.基于cordic算法的向量模長計算系統,其特征在于,包括:
【專利技術屬性】
技術研發人員:魏凱,
申請(專利權)人:普冉半導體上海股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。