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