《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計 > 設(shè)計應(yīng)用 > 數(shù)字下變頻(DDC)中坐標(biāo)變換模塊的ASIC實(shí)現(xiàn)
數(shù)字下變頻(DDC)中坐標(biāo)變換模塊的ASIC實(shí)現(xiàn)
摘要: 數(shù)字下變頻(DDC)技術(shù)是軟件無線電接收機(jī)的核心技術(shù),。其基本功能是從輸人的寬帶高速數(shù)字信號中提取所需的窄帶信號,,將其下變頻為數(shù)字基帶信號,并轉(zhuǎn)換成較低的數(shù)據(jù)率,,以供后續(xù)的DSP作進(jìn)一步的處理。
Abstract:
Key words :

 1.引言

數(shù)字下變頻(DDC)技術(shù)是軟件無線電接收機(jī)的核心技術(shù),。其基本功能是從輸人的寬帶高速數(shù)字信號中提取所需的窄帶信號,,將其下變頻為數(shù)字基帶信號,并轉(zhuǎn)換成較低的數(shù)據(jù)率,,以供后續(xù)的DSP作進(jìn)一步的處理,。目前許多型號的DDC芯片事實(shí)上其功能己遠(yuǎn)遠(yuǎn)不只是下變頻,還包括了成形濾波器,、定時同步內(nèi)插濾波器,、重采樣NCO、坐標(biāo)變換,、數(shù)字ACC等功能,,其結(jié)構(gòu)如圖1所示。

CORDIC(Coordinate Rotation Digital Computer)是一種迭代算法,,它提供了計算三角函數(shù)和欠量求模的方法,。該算法僅利用加法和移位兩種運(yùn)算通過迭代方式進(jìn)行矢量旋轉(zhuǎn),因此,,它非常適合于硬件A-SIC實(shí)現(xiàn),。本文所要闡述的就是基于CORDIC算法的數(shù)字下變頻器中坐標(biāo)變換模塊的ASIC實(shí)現(xiàn)結(jié)構(gòu),該模塊的主要功能是實(shí)現(xiàn)直角坐標(biāo)系到極坐標(biāo)系的變換,,從而求得由I路信號和Q路信號構(gòu)成的向量的幅度值和相位值,,將得到的幅度信息返回給前級的數(shù)字AGC進(jìn)行增益控制,還可以實(shí)現(xiàn)對FM信號的解調(diào),。

 

2.CORDIC算法與實(shí)現(xiàn)

2.1 CORDIC算法原理

CORDIC是一種迭代算法,它可以用來計算sin,,cos等三角函數(shù),,計算幅值和相位等到所需的精度,CORDIC算法計算幅值和相位的原理如下:

假設(shè)直角坐標(biāo)系內(nèi)有向量A(Xn,,Yn),,向量A順時針旋轉(zhuǎn)θn后得到向量B(Xn,Yn),,如圖2所示,。

向量A和向量B之間存在以下關(guān)系,用矩陣表示為

將cosθn提出以后得到

在這里我們?nèi)?i=arctan(1/2i),,所有迭代的總和為,,其中Si={-1,+1},則tanθi=Si2-i,,可得

上式Si中的符號決定了向量的旋轉(zhuǎn)方向,,當(dāng)時Yi≥0,Si=1,,順時針旋轉(zhuǎn),;當(dāng)Yi<0時,Si=-1,,逆時針旋轉(zhuǎn),,式中的cosθi=cos(arctan(1/2i),隨著迭代次數(shù)的增加它收斂于一個常數(shù),,我們暫不考慮這個常數(shù)增益,,這樣式(2-3)就變?yōu)?br />
設(shè)總共旋轉(zhuǎn)的角度為,初值為0,,則,,給定向量 一組初值如下

從上面的式子可以看出,當(dāng)向量A旋轉(zhuǎn)到X軸時,,可以得到迭代的結(jié)果為 ,,即可求得向量A的幅值和相位。由式(2-4)可知每次旋轉(zhuǎn)的角度的正切值都是2的負(fù)冪次,,在硬件實(shí)現(xiàn)時只需要執(zhí)行右移和相加運(yùn)算就可以實(shí)現(xiàn)每次迭代,,易于硬件的實(shí)現(xiàn)。

2.2 用CORDIC算法的流水結(jié)構(gòu)實(shí)現(xiàn)坐標(biāo)變換

CORDIC迭代結(jié)構(gòu)如圖3所示,,采用流水結(jié)構(gòu)每次迭代完成一次旋轉(zhuǎn),,每級迭代都用寄存器寄存,這樣每個時鐘周期都可以計算出一次幅度和相位,。迭代的次數(shù)越多,,精度越高,當(dāng)然耗費(fèi)的資源也就越多,。

在數(shù)字下變頻器輸出I,,Q兩路信號后(輸出信號用補(bǔ)碼表示),用CORDIC實(shí)現(xiàn)坐標(biāo)變換時,,為簡化電路結(jié)構(gòu),,只用計算的相角,其他象限的相角,,采用處理后再映射的辦法求取,,岡此,對剛進(jìn)入的數(shù)據(jù)會進(jìn)行預(yù)處理,。首先就是求輸人數(shù)據(jù)的絕對值,,并記錄符號位作為處理后象限映射的依據(jù)。接下來,會判斷I,,Q兩路數(shù)據(jù)的大小關(guān)系,,并將較小的值交換到Q路,這樣做的目的是要在同樣的迭代次數(shù)下,,達(dá)到更高的迭代精度,。進(jìn)入CORDIC迭代單元前會對I,Q兩路數(shù)據(jù)進(jìn)行位寬拓展,,從而保證CORDIC迭代過程中,,不會因截斷誤差造成太大的偏差。經(jīng)過CORDIC迭代后所得的幅度值是有增益的,,此時需要對其進(jìn)行修正,,另一方面,相位值需根據(jù)先前記錄的I,,Q兩路數(shù)據(jù)的符號位和I,,Q兩路數(shù)據(jù)交換的情況作象限映射,表1列出了相位映射的規(guī)則,。坐標(biāo)變換模塊的實(shí)現(xiàn)結(jié)構(gòu)如圖4所示,。


2.3 使用modeIsim仿真的結(jié)果

圖5是當(dāng)輸入激勵為I路:sin(sin2πf);Q路:COS(COS2πf)時的modelsim仿真結(jié)果,,由圖中可以看出坐標(biāo)變換得出的相位值是一個標(biāo)準(zhǔn)正弦信號,,幅度值為恒定值,幅度相位完全正確,。


2.4 硬件實(shí)現(xiàn)結(jié)果

在硬件實(shí)現(xiàn)時,,用verilog語言對坐標(biāo)變換模塊進(jìn)行描述,為滿足DDC的精度要求進(jìn)行了18次迭代,,并用DC基于UMC0.18μm的庫進(jìn)行了綜合,,硬件實(shí)現(xiàn)結(jié)果如圖6所示。

圖6(a)是DC綜合后的面積報告,,圖6(c)是關(guān)鍵路徑的時序報告,,綜合后的最大路徑延時為9.77ns,完全可以滿足本模塊數(shù)字下變頻器100MHz的處理速度要求,,綜合出的單元(cell)的總面積僅為0.27,。圖6(b)是該設(shè)計在FPGA上驗(yàn)證的結(jié)果,,該DDC的工作頻率為80MHz,,通道2為輸入的基帶信號頻率20kHz,載波頻率5MHz,,頻偏200KHz的FM信號,,通道1是通過DDC下變頻后交給坐標(biāo)變化模塊的I,O兩路信號求出的相位信息,即頻率為20kHz的正弦信號,,由圖可知該沒計實(shí)現(xiàn)了坐標(biāo)變換功能,。

3 結(jié)論

使用CORDIC算法,并用流水結(jié)構(gòu)實(shí)現(xiàn)幅度相位的求取可以獲得較高的處理速度,,增加迭代次數(shù)可以獲得更高的處理精度,,但會耗費(fèi)較多的資源,在設(shè)計時應(yīng)根據(jù)需要,,合理的確定迭代次數(shù),。該設(shè)計已成功應(yīng)用于高速數(shù)字下變頻芯片中。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。