DSP Builder是Altera公司提供的一個系統(tǒng)級(或算法級)設計工具,。它架構(gòu)在多個軟件工具之上,,并把系統(tǒng)級(算法仿真建模)和RTL級(硬件實現(xiàn))兩個設計領(lǐng)域的設計工具連接起來,,最大程度地發(fā)揮了兩種工具的優(yōu)勢,。DSP Builder可以幫助設計者完成基于FP-GA的DSP設計,。除了圖形化的系統(tǒng)建模外,,DSPBuilder還可以自動完成大部分的設計過程和仿真,直到把設計文件下載至DSP開發(fā)板上,。該設計采用DSPBuilder開發(fā)工具,,首先實現(xiàn)輸出頻率變化可控的直接數(shù)字合成(DDS)模塊;然后根據(jù)Chirp函數(shù)的變化規(guī)律,,控制DDS的輸出頻率變化規(guī)律,。
1 Chirp函數(shù)的一般特性
電磁波在傳輸過程中,經(jīng)過色散介質(zhì),,如不均勻的波導,,在高空電離層時會發(fā)生色散現(xiàn)象。Chirp函數(shù)在射電天文信號的消色散處理中發(fā)揮著重要的作用,,研究在FPGA中實現(xiàn)Chirp函數(shù)是基于FPGA的射電宇宙信號處理的重要組成部分,,如圖1所示,。
根據(jù)輸出頻率與當前采樣時刻對應遞變規(guī)律,Chirp函數(shù)一般分線性(Linear)Chirp函數(shù)和非線性(Nonlinear)chirp函數(shù)兩種,。圖2,,圖3是兩種Chirp函數(shù)在頻域上的表現(xiàn)圖。
從圖2,,圖3可以看出,Chirp函數(shù)的頻率輸出與時間關(guān)系f-t關(guān)系可以總結(jié)為:對于線性Chirp函數(shù),,在連續(xù)域時間域內(nèi)有關(guān)系式:
式中:k為常數(shù),;f0為初始輸出頻率;t為連續(xù)時間,。
在離散時間域有關(guān)系式:
式中:k為常數(shù),;f0為初始輸出頻率;n為采樣點,。
對于非線性Chirp函數(shù),,在連續(xù)域時間域內(nèi)有關(guān)系式:
式中:f(t)為非線性函數(shù);f0為初始輸出頻率,;t為連續(xù)時間,。
在離散時間域有關(guān)系式:
式中:f(n)為非線性函數(shù);f0為初始輸出頻率,;n為采樣點,。
2 DDS模塊的設計
數(shù)字式頻率合成器(DDS)模塊的工作原理是:將0~2π的正弦函數(shù)值分為N份,將各點的幅度值存入ROM中,,再用一個相位累加器每次累加相位值ωT,,得到當前的相位值,通過查找ROM得到當前的幅度值,,其系統(tǒng)框圖如圖4所示,。
DDS的主要參數(shù)包括:系統(tǒng)時鐘頻率、頻率控制字長,、頻率分辨率,、ROM單元數(shù)、ROM字長,。該設計的DDS是10位的,,時鐘頻率為轉(zhuǎn)化為VHDL文件后的輸入時鐘頻率。這是一個很靈活的輸入頻率,。在此,,假設輸入頻率為fin,頻率控制字長為16位,,ROM單元數(shù)為210,,ROM字長為9位,,而且頻率分辨率為:
式中:fc為系統(tǒng)時鐘頻率。
頻率控制字為:
式中:f為要合成的頻率,;T為系統(tǒng)時鐘,。可見,,當輸入頻率控制字發(fā)生變化時,,輸出頻率fout也發(fā)生相應的變化,從DDS到Chirp信號源的設計就是基于這一思想,,如圖5所示,。
其中,輸入端口1為初始相位控制字輸入端,,它的輸入值決定了信號源的初始輸出相位,。輸入口2為頻率控制字FTW輸入端,若在該輸入端寫入不同的頻率控制字值,,則可以在輸出端口得到不同的輸出頻率,。輸入端口3為初始頻率控制字輸入端,它的輸入值決定了信號源的初始偏置頻率,。
LUT為正弦數(shù)據(jù)查找表模塊(Look Up Table),。根據(jù)DSP Builder的算法將一個完整的正弦波周期進行1 024次采樣,并存儲于LUT中,。在Matlab中設置Matlab array:511*sin([0:2*pi/(2^10):2*pi]),,左邊的輸入端為查找數(shù)據(jù)的地址輸入端,右邊的輸出端為離散正弦波信號輸出端,。
第一個并行累加器模塊(Parallel Adder Subtrac-tor)作為相位累加器,,采用Altera提供的總線結(jié)構(gòu)(AltBus)模塊決定了該累加器的長度為16位,即該累加器最大可輸出范圍為216,,由此決定了公式(5),。
第二個并行累加器模塊(Parallel Adder Subtractor1)作為初相位偏置累加器,將初相位控制字與頻率控制字累加,,為輸出頻率提供一個初始偏置相位,。
第三個并行累加器模塊(Parallel Addersubtractor 2)作為初始頻率偏置累加器,給輸入的頻率控制字提供一個偏置,,是輸出頻率從一個用戶自己可定義的初始頻率開始變換運行,。
利用總線位寬轉(zhuǎn)換模塊(Bus Conversion)只取出總線信號的高10位,用作驅(qū)動數(shù)據(jù)查找表模塊的地址驅(qū)動信號,。為了方便下一步設計,,將圖5封裝成子系統(tǒng)模塊(Subsystem Block),并命名為:DDS_Subsystem,如圖6所示,。
圖6中in1為初始相位輸入端,,in2為輸入頻率控制字端,in3為初始頻率輸入端,。
3 變頻控制模塊的設計
根據(jù)Chirp函數(shù)在頻域上的性質(zhì),,可以得出輸入控制字與輸出頻率之間的對應關(guān)系有線性和非線性兩種:
首先采用DSP Builder庫中的單步增/減子模塊(Increment/Decrement Block)建立采樣點控制字產(chǎn)生單元。該模塊能按照階梯式規(guī)律步進逐一產(chǎn)生控制字信號,,并保持一段時間在模塊設置項(Clock Phase Se-lection)中設置,,當增減方向(Direction)設置為Incre-ment時得時域輸出,其表現(xiàn)如圖7所示,。
其次根據(jù)需要建立控制字變換模塊,,即對Incre-ment/Decrement模塊輸出的采樣點控制字進行換算,轉(zhuǎn)化為DDS的頻率控制字,。這需要根據(jù)不同Chirp函數(shù)的變化規(guī)律,例如:如果是線性頻率的輸出,,則采樣點應該與輸出頻率有線性的函數(shù)對應關(guān)系,;如果是非線性頻率的輸出,則采樣點應該與輸出頻率有非線性的函數(shù)對應關(guān)系,。根據(jù)不同的傳輸函數(shù)建立該子模塊:
例如:fout=kn+f0,。當k=3時,建立子模塊如圖8所示,。
將上述模塊向上生成子模塊后,,連接的整體仿真如圖9所示。
并在DDS的輸出端建立FFT觀測窗口,。
4 驗證與仿真
假設現(xiàn)在的初始相位為0,,初始頻率也為0,采樣點步進控制字設置為輸出12為步進循環(huán)增加模式,。在時域輸出觀測窗口(Scope)中觀察到圖形如圖10所示,。
從圖11中可見,輸出信號的頻率發(fā)生了周期性并且有規(guī)律的變化,,證明了該設計能很好地實現(xiàn)Chirp信號源的功能,。并且通過Altera DSP Builder提供的SignalComplier工具,能很輕松地生成HDL(VHDL或者Verilog HDL)代碼下載到FPGA中運行,,大大簡化了FPGA設計,。
5 結(jié) 語
根據(jù)Chirp函數(shù)特定的輸入/輸出(線性和非線性)關(guān)系,計算得出當前輸入字與輸出頻率的對應關(guān)系,,然后設計控制字子模塊產(chǎn)生DDS模塊的頻率控制字,,驅(qū)動DDS產(chǎn)生不同的輸出頻率,通過在Matlab的Simu-link環(huán)境下的仿真驗證,,得出不同時刻輸出的頻譜圖,,驗證了該設計能很好地實現(xiàn)Chirp信號源,。