基于CORDIC算法數(shù)字下變頻器設(shè)計_第1頁
基于CORDIC算法數(shù)字下變頻器設(shè)計_第2頁
基于CORDIC算法數(shù)字下變頻器設(shè)計_第3頁
基于CORDIC算法數(shù)字下變頻器設(shè)計_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于CORDIC算法數(shù)字下變頻器設(shè)計         摘  要 本文以軟件無線電為指導(dǎo),提出基于CORDIC算法利用FPGA平臺數(shù)字下變頻器設(shè)計方案。首先分析下變頻器的結(jié)構(gòu);然后采用模塊化設(shè)計思想,將數(shù)字下變頻的功能模塊包括數(shù)字控制振蕩器、CIC抽取濾波、HBF抽取濾波器、FIR低通濾波器進(jìn)行分析和FPGA的設(shè)計;最后在MATLAB/DSPBuilder下硬件仿真模塊進(jìn)行仿真并給出仿真結(jié)果。   關(guān)鍵字 數(shù)字下變頻;CORDIC;FPGA1  引言   

2、軟件無線電的設(shè)計思想之一是將A/D 轉(zhuǎn)換器盡可能靠近天線,即把A/D從基帶移到中頻甚至射頻,把接收到的模擬信號盡早數(shù)字化。由于數(shù)字信號處理器(DSP)的處理速度有限,往往難以對 A/D采樣得到的高速率數(shù)字信號直接進(jìn)行各種類別的實(shí)時處理。為了解決這一矛盾,需要采用數(shù)字下變頻(DDC)技術(shù),將采樣得到的高速率信號變成低速率基帶信號,以便進(jìn)行下一步的信號處理。數(shù)字下變頻技術(shù)在軟件無線電和各類數(shù)字化接收機(jī)中得到了廣泛應(yīng)用。因此建立軟件無線電的通用數(shù)字下變頻器是非常必要的。2  下變頻器的結(jié)構(gòu)與組成   我們要設(shè)計數(shù)字下變頻器如圖1所示。   量化的中頻

3、數(shù)字信號進(jìn)入數(shù)字下變頻器后,先與數(shù)字控制振蕩器產(chǎn)生的本地數(shù)字載波混頻,經(jīng)過CIC抽取濾波器,HBF抽取濾波器,F(xiàn)IR低通濾波對信號進(jìn)行D倍抽取后得到正交基帶信號,這是下變頻過程。虛線框內(nèi)為數(shù)字下變頻部分是我們設(shè)計和討論的重點(diǎn)。3  數(shù)字控制振蕩器振蕩器    如圖1所示。正交數(shù)字下變頻器前端包括兩部分一是乘法器;一是NCO。乘法器設(shè)計很簡單,NCO的目標(biāo)是產(chǎn)生一個理想的正弦和余弦波。更確切地說是產(chǎn)生一個可變頻率的正弦波樣本如公式:其中 為本地振蕩頻率; 為DDC輸入信號的采樣頻率。正弦波樣木可以用實(shí)時計算的方法產(chǎn)生,但這只適用信號采樣頻率很低的情況。在軟件無線電高

4、速信號采樣頻率的情況下,NCO實(shí)時計算的方法是不可取的。NCO產(chǎn)生正弦波樣本通常采用查表法,通過輸入的相位數(shù)據(jù)來尋址查表輸出相應(yīng)的正弦波幅值。對于一個相位位數(shù)為n,輸出信號幅度位數(shù)為M的數(shù)控振蕩器,這就需要耗費(fèi)大量的ROM資源(2nX Mbit)。為了避免使用大容量的存儲器??刹捎昧艘环N基于CORDIC( Coordinate Rotation Digital Computer)算法來產(chǎn)生正/余弦樣本。該算法有線性的收斂域和序列特性。只要迭代次數(shù)足夠,即可保證結(jié)果有足夠的精度。并且用于混頻的乘法器也可以省掉。從而還節(jié)省了大量的邏輯硬件資源。使得數(shù)字下變頻更易于用FPGA來實(shí)現(xiàn)。3.1 

5、; CORDIC算法   CORDIC算法基本原理是:設(shè)初始向量x0+jy0經(jīng)旋轉(zhuǎn) 角度后得到的向量 xn+jyn即 , ,設(shè)旋轉(zhuǎn)基本角度 i,令 ,那么初始向量可通過一系列的基本角度 i的旋轉(zhuǎn),逐漸逼近目標(biāo)向量。在旋轉(zhuǎn)模式下,如果設(shè)Z0= ,根據(jù)J,S,WALTER的推導(dǎo)有:        (1)   其中     i代表向量旋轉(zhuǎn)方向   經(jīng)過n 次旋轉(zhuǎn)迭代后的結(jié)果為:   其中, ,稱為模校正

6、因子。如果令 , y0=0,則  ,由上述推導(dǎo)可知:若已知角度Z0 和初始向量的 x0,y0 可由式(1)迭代運(yùn)算得到角度 Z0的正余弦值,而式(3)中的迭代運(yùn)算用硬件實(shí)現(xiàn)時非常方便,只有加(減)和移位操作。3.2  基于CORDIC算法實(shí)現(xiàn)NCO   我們設(shè)計的NCO頂層結(jié)構(gòu)為圖2所示。我們可以看到,頻率控制字寄存器將接收到的頻率控制字K送入相位累加器,累加器對系統(tǒng)時鐘進(jìn)行累加計數(shù),當(dāng)?shù)竭_(dá)輸入頻率控制字的值時對相位進(jìn)行累加,隨后將累加值送入相位相加器,與相位控制字寄存器接收到的初始相位相加,得到當(dāng)前的相位值。經(jīng)過上述相位處理之后,即可獲得相位

7、的正/余弦相位序列,將此序列送入基于CORDIC算法的波形發(fā)生器,最終獲得兩路正交的正/余弦輸出序列。   采用了流水線型實(shí)現(xiàn)結(jié)構(gòu),它用n級相似的算法單元在同一個時鐘周期內(nèi)并行工作,每級算法單元的具體實(shí)現(xiàn)結(jié)構(gòu)如圖3所示。圖中的三個累加器分別完成了該級中xi,yi,zi的迭代,累加器的加/減控制信號為上一級算法單元中的di信號,兩個i位的右移寄存器(注:圖中的i表示右移i位)完成了迭代等式中的乘2-i運(yùn)算,而該級的基本旋轉(zhuǎn)角度值(2-i)可以采用直接硬連接。   流水線結(jié)構(gòu)的最大優(yōu)點(diǎn)在于它的運(yùn)算速度很快在任何一個時鐘周期,n級算法單元都同時工作,如在輸入端

8、連續(xù)不斷地送入數(shù)據(jù),那么在n個時鐘周期的延遲之后,輸出端將連續(xù)得到相應(yīng)的下變頻后的數(shù)據(jù)與傳統(tǒng)的串行結(jié)構(gòu)相比,流水線結(jié)構(gòu)的運(yùn)算速提高了n倍。圖4給出了16級流水線算法的實(shí)現(xiàn)結(jié)構(gòu)虛線框中部分是個初始化旋轉(zhuǎn)單元,是因為 。由此可見,當(dāng)?shù)拇螖?shù)n趨近于無窮大時,所被 覆蓋的角度只能是在-99.9度99.9度之間,若想讓 的覆蓋范圍擴(kuò)展到,必須在迭代之前再增加一個初始化旋轉(zhuǎn),將輸入向量先旋轉(zhuǎn) ,之后是16級流水線算法單元,最右邊的是級的基本旋轉(zhuǎn)角度值(2-i),di為各級累加器加/減控制信號"X0,Y0,Z0為下變頻模塊的數(shù)據(jù)輸端口,Xn,Yn,Zn是三個輸出端口"。 &

9、#160;       3.3  初始化旋轉(zhuǎn)單元代碼   輸入為x_in y_in z_in 輸出為 phi,eps,r 定義信號為x,y,z-Test for x_in0 rotate 0,+90,or -90 degreesIF x_ino THEN   x =x_in;   y=y_in;   z=z_in;ELSEIF y_in0 THEN   x=y_in;   y=-x_in; 

10、60; z=z_in+90;ELSE    x=-y_in;   y=x_in;   z=z_in-90;END IF;4  積分梳狀(CIC)濾波器的FPGA設(shè)計   CIC濾波器由兩部分組成,積分器和梳狀濾波器的級聯(lián)其沖擊響應(yīng)為         (4)     圖5顯示的是它的頻譜圖。CIC所有系數(shù)都為1,實(shí)現(xiàn)起來極其簡單,它不需要任何乘法運(yùn)算,不需要存儲濾波器系數(shù)。為了加大阻帶衰減,通常采用

11、N級CIC濾波器如圖6所示。5  半帶抽取濾波器(HBF)的FPGA設(shè)計   濾波器特別適合于實(shí)現(xiàn)的冪次方倍的抽取,且計算效率高、實(shí)時性強(qiáng)。其頻譜如圖7所示。半帶濾波器是頻率響應(yīng)滿足阻帶寬度與通帶寬度相等,當(dāng)抽取率為2的冪次方時實(shí)現(xiàn)如圖8所示。 6  使用Dspbuilder低通濾波器的設(shè)計   使用spbuilder可以方便地在圖形化環(huán)境中設(shè)計FIR數(shù)字濾波器,而且系數(shù)的計算可以借助MATLAB強(qiáng)大的計算能力和現(xiàn)成的濾波器設(shè)計工具來完成。6.1  利用MATLAB確定濾波器的參數(shù)   低通濾波器采用FI

12、R濾波器。FIR濾波器由于有線性相位穩(wěn)定性好等特征被廣泛運(yùn)用。并且其結(jié)構(gòu)易于用FPGA實(shí)現(xiàn) MATLAB中FDA TOOL的Filter Design & Analysis Tool對濾波器的設(shè)計很有用。進(jìn)入濾波器設(shè)計界面,選擇類型LOWPASS,設(shè)計方法為WINDOW,除數(shù)為15,窗口類型為aiser,Beta為.5 另 為48KHZ, 為10.8KHZ。此時利用FDA TOOL有關(guān)工具分析反應(yīng)設(shè)計的濾波器的各種特性如幅頻,相頻,沖激,階躍響應(yīng)零極點(diǎn)等。導(dǎo)出濾波器系數(shù),然后對系數(shù)進(jìn)行量化為位寬為位絕對值為位的數(shù)值導(dǎo)出后分另擴(kuò)大倍得到整數(shù):-19  6  29

13、60; 3  -45  -25  92  212  212  92  -25  -45  3  29  6  -19。6.2  FIR濾波器的設(shè)計   FIR濾波器采用直接型結(jié)構(gòu),主要由移位寄存、乘法器和加法器組成。其設(shè)計思想是利用 DSPBuilder模塊直接實(shí)現(xiàn)乘法器和加法器。基于乘、加的設(shè)計比較簡單,系統(tǒng)工作速度較高,但占用的資源很大,因速度要求較高、階數(shù)較小的濾波器設(shè)計。利用DSPBuilder模塊設(shè)計的FIR濾波器很容易進(jìn)行能擴(kuò)展,輸入

14、數(shù)據(jù)的位寬可以根據(jù)實(shí)際的需要進(jìn)行調(diào)整。如圖9為四階FIR的subsystem 要實(shí)現(xiàn)16階或更高階的濾波器,只需要將濾波器級聯(lián)數(shù)據(jù)相加即可。7  仿真驗證   Altera 的DPSBuilder提供的HIL模塊能很好的完成硬件仿真,HIL可以在Simulink模型與FPGA開發(fā)板間通過JTAG通信接口建立一種聯(lián)系,從而實(shí)現(xiàn)基于MATLAB/DSPBuilder平臺的硬件仿真。本文選用Altera公司的Cyclone系列EP1C6Q240C8為主芯片的開發(fā)板進(jìn)行仿真。NCO的仿真結(jié)果如圖10所示。圖10  兩輸出I/Q瞬時仿真結(jié)果   由仿真結(jié)果可見用CORDIC算法設(shè)計出來的NCO還是比較理想的,進(jìn)一步說明模型與代碼的正確性。8  結(jié)語   基于CORDIC上算法設(shè)計的下變頻器,不僅完全滿足通常各類接收機(jī)的要求,而且還能克服傳統(tǒng)NCO設(shè)計方法所要消耗的大量ROM。FPGA固有的硬件可重構(gòu)特點(diǎn)適合于下變頻器的開發(fā)和設(shè)計也適合于軟件無線電的開放平臺,本文中采用DSPBuilder系統(tǒng)工具和硬件傳真模塊極大的縮短了開發(fā)和仿真的時間,也方便了系統(tǒng)的更改和擴(kuò)展??墒乖O(shè)計更加靈活,便捷。參考文獻(xiàn)1 楊小牛,樓才義,徐建良軟件無線電原理與應(yīng)用北京:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論