宋定昆,劉桂雄,唐文明
(華南理工大學機械與汽車工程學院,廣東 廣州 510641)
改進SF CORDIC算法正余弦函數求解及其應用
宋定昆,劉桂雄,唐文明
(華南理工大學機械與汽車工程學院,廣東 廣州 510641)
為降低無需擴展因子坐標旋轉數字算法(scaling-free coordinate rotation digital computer,SF CORDIC)計算正余弦函數的迭代次數,該文提出一種改進SF CORDIC算法,改變原有迭代角度序列、迭代角度選擇方法,加快收斂速度,并將算法應用于超聲回波信號正交解調器中。仿真實驗表明:改進SF CORDIC算法比經典SF CORDIC算法減少29%全加器、61%寄存器的消耗量,并且具有較高的計算精度,具有重要推廣價值。
無需擴展因子坐標旋轉數字算法;正余弦函數;迭代角度;正交解調
數字信號處理技術作為工業測控領域的關鍵技術,近年來得到快速發展。吞吐率、精度是數字信號處理系統性能好壞的重要指標,學者們提出各種算法來實現信號處理中涉及到的各種復雜函數的快速、高精度運算,其中坐標旋轉數字算法(coordinate rotation digital computer,CORDIC)[1]是解決三角函數、指數函數等運算的經典算法之一,其特點在于將復雜運算分解成一系列加減、移位運算之和,大大加快運算速度,適用于高速數字信號處理場合。目前CORDIC算法體系已經逐步完善,算法性能不斷進步,并產生系列改進算法,比如高基數CORDIC算法[2-3]、角度重編碼(angle-recording)算法[4-5]、冗余CORDIC算法[6-7]和SF CORDIC算法[8-9]等。其中,SF CORDIC算法由Maharatna K提出,特點在于免去比例因子的計算,但迭代角度序列收斂域較小,需重復旋轉初始角度α0才能使算法收斂,大大增加算法對硬件資源的消耗[6-7]。為此,本文主要研究一種改進SF CORDIC算法,通過改變算法角度迭代序列、迭代角度的選擇方式,加快算法收斂速度,并將其應用于超聲相控陣回波信號正交解調,實現超聲回波信號幅相信息的高精度提取。
SF CORDIC算法是一種不需要計算縮放因子的CORDIC算法,圖1是SF CORDIC傳統算法與改進算法原理框圖,圖1(a)為SF CORDIC經典算法原理圖,首先將初始輸入角度壓縮到小角度φ∈[0,π/8],再通過重復迭代初始旋轉角擴大算法收斂域,迭代后得到小角度φ正余弦輸出,通過小角度φ與初始輸入角度映射關系求出初始角度的正余弦值;圖1(b)為SF CORDIC改進算法圖,它對SF CORDIC經典算法中小角度的正余弦求解步驟進行優化,舍棄經典算法中重復迭代初始旋轉角度步驟,采用預旋轉、最優旋轉角度選擇方式計算小角度φ正余弦值,修改原角度序列,提高算法收斂速度。

圖1 SF CORDIC傳統算法與改進算法原理框圖
1.1 改進SF CORDIC算法求解步驟
1)角度區間壓縮
當輸入角度為任意角度θ時,可先通過三角函數特性將其映射到第一象限內,映射后角度θ0∈[0,π/2],再將第一象限均勻劃分成4個區域,圖2為角度區間劃分示意圖,其中:


圖2 第一象限區域劃分
對落在不同區域的初始角度θ0做不同預處理:

其中φ∈[0,π/8],這就建立任意輸入角度θ與小角度φ的對應關系。
2)小角度正余弦計算
根據經典CORDIC算法思想,小角度[sinφ,cosφ]求解問題可歸納為將初始輸入向量[1,0]分多次旋轉至與x軸夾角為φ角度,每次旋轉角度為αi(逆時針為正),則每次旋轉后向量Vi+1[xi+1,yi+1]與旋轉之前向量Vi[xi,yi]有如下關系[1-2]:

用變量z記錄當前向量與目標向量的角度差,zi+1=zi-αi,初始輸入z0=φ。每次旋轉角度αi=tan-12-i,則每次迭代為[1-2]:

式中σi=±1用于控制向量旋轉方向。
若干次迭代后,zi+1→0時,旋轉向量逼近目標向量,得到φ角度正余弦輸出,迭代結果為


下面采用高基數CORDIC算法的思想,以4作為迭代角度序列的基數來實現小角度φ的正余弦計算。
對于足夠小角度αi,通常可做以下近似計算:

其中αi=tan-14-i,則CORDIC算法第i次迭代變為

由式(3)、式(4)可以看出,SF CORDIC算法省去經典CORDIC算法中比例因子計算步驟。
在角度區間壓縮后,先對小角度進行預旋轉,為得到最大收斂速度,可設置一個判斷是否需要預旋轉邊界角度(如將8.8°作為判斷是否需要預旋轉邊界角度,φ≥8.8°則需要進行預旋轉,φ<8.8°則跳過預旋轉步驟),進一步壓縮待求角度,每一次迭代開始之前,將當前角度與角度序列中每一個角度作差,比較后選出使收斂速度最快角度,作為此次迭代旋轉角。表1給出改進SF CORDIC算法旋轉角度序列。

表1 算法迭代序列表
3)映射到原角度
近似計算小角度φ正余弦值xout、yout后,通過第一步劃分區域時列出θ與φ之間關系可得到θ與φ正余弦輸出值之間關系,如表2所示。

表2 θ與φ正余弦輸出映射關系
1.2 改進SF CORDIC算法收斂性分析
對于任意輸入小角度φ、φp為預旋轉之后角度,有φp=|φ-σ·α0|,其中σ=0或1,0°≤φp≤8.8°。
設第k次旋轉中αj(j=1,2,3,4,…)為最優旋轉角度,則有Δk|φk-αj|,必存在整數列N使得:

其中i=1,2,…,n。即進行第k+∑Ni旋轉后,當前向量角度和目標角度的角度差小于αj+n,則:

這表明對于任意輸入角度,當迭代次數足夠多時,算法收斂。
1.3 算法性能
下面僅用原迭代角度序列的前5項作為迭代角度,通過在0°~22.5°中等間距選取10個初始輸入角度驗證,圖3是改進SF CORDIC算法迭代次數與收斂程度的關系圖,可以看出經過第1次迭代預旋轉后向量和目標向量角度差縮小到10°以內,最優角度選擇使每次迭代都能達到最快收斂速度。對于任意輸入角度,經過6次迭代后基本能夠收斂結束計算。

圖3 改進SF CORDIC算法收斂曲線
圖4為改進SF CORDIC算法模型的單級FPGA流水線結構圖。為提高小角度正余弦的計算精度、運算速度,下面采用16位2進制數表示輸入角度,將浮點數部分定點化,再通過加減、移位實現小角度正余弦值快速精確求解,只需要通過兩個乘法器即可實現由小角度到原角度正余弦值映射求解。
在QuartusII13.0軟件上進行仿真,選用Cyclone IV系列的EP4CE15F17A7芯片,測試時鐘頻率為100MHz。表3是改進算法對系統資源消耗與傳統SF CORDIC算法對比表。可以看出,相比于傳統SF CORDIC算法消耗768個全加器和533個邏輯單元[4],改進算法減少29%全加器、61%寄存器資源消耗。

圖4 改進SF CORDIC算法單級流水線結構

表3 算法硬件資源消耗情況
在Modelsim10.0c軟件上進一步測試算法精度,在0°~90°內等間距取10個角度作為輸入角度測試改進算法下正余弦輸出值與真值比較,表4是算法計算正弦值與實際值的絕對誤差表。

表4 算法精度測試表
通過Matlab軟件對算法誤差進行測試,在[0,2π]內對改進SF CORDIC算法產生正弦曲線均勻采集100個采樣點,與標準正弦曲線比較。圖5是測試得到算法輸出結果絕對誤差圖,可以看出,在一個完整周期內輸出結果的最大絕對誤差不超過8×10-3,可滿足實際應用要求。

圖5 改進SF CORDIC算法絕對誤差
正交解調是在超聲相控陣檢測領域中一項重要技術,通過改進SF CORDIC算法產生兩路正交正余弦信號,可實現對超聲回波信號幅值相位信息的高精度提取。
2.1 數字正交解調原理
超聲相控陣回波信號數學模型為[6]

式中:A——電路系統中存在的直流分量;
f(t)——被測信號幅值;
cosω0t——載波信號,ω0=2πf,f為載波頻率(換能器中心頻點);
φ——傳輸過程中產生的隨機相位偏差。

圖6 正交解調原理框圖
圖6是正交解調原理圖,將經過A/D采樣后信號s(nTs)與數控振蕩器NCO產生兩路同頻正交正余弦信號相乘后得到I、Q兩路正交信號,即:

兩路信號經過低通濾波器后,可得對應I路低頻分量ILP、Q路低頻分量QLP,有:

再對IQR經過隔直處理去掉直流量A,得到所需包絡信號f(nTs)。
2.2 正交解調效果仿真
根據超聲回波物理特性,超聲換能器的脈沖響應可模擬成高斯信號[10]。圖7為超聲回波信號模擬圖,圖7(a)為通過Matlab軟件模擬的中心頻率為5 MHz、幅值系數為0.8、初相位1.8 rad超聲回波高斯信號模型,橫縱坐標分別是信號到達時間、幅值;圖7(b)為全波超聲回波信號模型,用改進SF CORDIC算法產生同頻率正余弦信號分別與超聲回波信號相乘得到兩路正交信號,再進行低通濾波、求兩路信號平方和的平方根,得到超聲回波信號的包絡圖;圖8為超聲回波正交解調仿真結果圖,其中黑線為原始超聲回波全波信號,紅線為經過正交解調后得到的信號包絡線,可以看出信號包絡線與原始信號契合程度較高,改進SF CORDIC算法應用于超聲回波信號正交解調取得較好解調效果。

圖7 超聲回波信號模擬圖

圖8 正交解調仿真結果圖
1)經典SF CORDIC算法雖免去比例因子計算,但使算法收斂必須重復迭初始旋轉角度,使算法迭代次數增多,硬件資源消耗嚴重,本文所提出改進SF CORDIC算法,通過預旋轉、最優角度選擇和改變原迭代角度序列,大大增加算法收斂速度,在保持較高精度同時,降低SF CORDIC經典算法29%全加器、61%寄存器消耗量。
2)將改進SF CORDIC算法應用于超聲回波信號正交解調器,產生同頻正交正余弦信號,通過正交檢波法對超聲回波調制信號進行幅相信息提取,獲得令人滿意的仿真結果,表明改進SF CORDIC算法具有重要實際應用價值。
[1]VOLDER J E.The CORDIC trigonometric computing technique[J].Electronic Computers Ire Transactions,1959,8(3):330-334.
[2]LAKSHMI B,DHAR A S.VLSI architecture for parallel radix-4 CORDIC[J].Microprocessors&Microsystems,2013,37(1):79-86.
[3]LIN R B,LIU G X,TANG W M.FPGA implementation of ultrasonic s-scan coordinate conversion based on radix-4 CORDIC algorithm [J].IACSIT International Journal of Engineering and Technology,2015,7(3):87-95.
[4]ABCHE A B,MAALOUF A,AYOUBI R,et al.An FPGA implementation of a high resolution phase shift beamformer[C]∥IEEE International Conference on Signal Processing and Communi-cations,2007:1319-1322.
[5]林若波,劉桂雄,唐文明.應用補碼的通項式正余弦CORDIC算法FPGA實現[J].中國測試,2014,40(4):102-106.
[6]DONG C,HE C,XING S,et al.Implementation of singleprecision floating-point trigonometric functions with small area[C]∥International Conference on Control Engineering and Communi-cation Technology.IEEE,2012:589-592.
[7]CHIH J C,CHEN K L,CHEN S G.A CORDIC processor with efficient table-lookup schemes for rotations and on-line scale factor compensations[C]∥International Symposium on Circuits and Systems,2005(4):3315-3318.
[8]陳旭文,劉桂雄,唐文明.擴展收斂域任意對數CORDIC算法與FPGA實現[J].中國測試,2015,41(7):108-111.
[9]GARRIDO M,K?LLSTR?M P,KUMM M,et al.CORDIC II:A New Improved CORDIC Algorithm[J].Circuits&Systems II Express Briefs IEEE Transactions,2016,63(2):186-190.
[10]劉桂雄,唐文明,譚大基.基于多級半帶濾波器的超聲相控陣聚焦延時[J].光學精密工程,2014(6):1571-1576.
(編輯:劉楊)
Solution for sine-cosine functions based on proposed scale-free CORDIC algorithm and applications
SONG Dingkun,LIU Guixiong,TANG Wenming
(School of Mechanical and Automotive Engineering,South China University of Technology,Guangzhou 510641,China)
In order to reduce the iterations of the conventional SF CORDIC algorithm in computing sine and cosine functions,an improved SF CORDIC algorithm was proposed in this paper.The proposed algorithm changed the original sequence and selection rules of iterating angles to enhanced the convergence rate,and was further applied to the quadrature demodulator of ultrasonic phased array to test the application value of the proposed algorithm.Simulation results show the proposed SF CORDIC algorithm reduced 29%of the full-adders and 61% of the registers consumption compared to the conventional SF CORDIC algorithm and is worth promotion.
SF CORDIC;sine cosine functions;iterating angle;quadrature demodulation
A
:1674-5124(2016)12-0100-05
10.11857/j.issn.1674-5124.2016.12.021
2016-05-22;
:2016-06-11
國家重大科學儀器設備開發專項(2013YQ230575)廣州市科技計劃項目(201509010008)
宋定昆(1994-),男,江西吉安市人,碩士研究生,專業方向為無損檢測、信號處理。