您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng) > 電子技術(shù)應(yīng)用 > 嵌入式技術(shù) > FPGA/ASIC技術(shù) >

基于FPGA IP核的線性調(diào)頻信號脈沖壓縮(2)

2011年06月29日 10:40 現(xiàn)代電子技術(shù) 作者:張 旭,李 巍 用戶評論(0
2.1 系統(tǒng)硬件平臺

  該系統(tǒng)硬件平臺主要包括:差分驅(qū)動電路,A/D采集電路、FPGA電路、晶振等電路、電路結(jié)構(gòu)框圖如圖3所示。

  

 

  FPGA采用的是Xilinx公司的芯片XQ2V1000,其配置芯片為Xilinx公司的PROM芯片XQ18V04,以主動串行方式對FPGA進(jìn)行上電配置。差分驅(qū)動電路選用ADI公司的AD8138,A/D、D/A電路分別為ADI公司的14位高速模/數(shù)轉(zhuǎn)換芯片ADS5500和14位高速數(shù)/模轉(zhuǎn)換芯片DAC5675A。硬件電路的設(shè)計(jì)注重細(xì)節(jié):I/Q兩通道傳輸線設(shè)計(jì)時保證線長相等,使得I/Q時延帶來的相位誤差一致;采用DCI(DigitaUy Controlled Impe-dance)端接技術(shù),在FPGA的每個bank上外接兩個參考電阻來對該bank的每個I/O管腳實(shí)現(xiàn)端接,減少外接電阻的數(shù)量,實(shí)現(xiàn)阻抗匹配,提高系統(tǒng)的穩(wěn)定性;做好電源濾波,對元器件進(jìn)行合理布局,布線,對模擬信號和數(shù)字信號進(jìn)行有效隔離,減小信號間串?dāng)_。

  2.2 軟件設(shè)計(jì)流程

  

 

  整個脈沖壓縮處理在時間上是順序的,是典型的數(shù)據(jù)流驅(qū)動的系統(tǒng),即先進(jìn)行FFT,復(fù)乘然后是IFFT及FIFO輸出,脈沖壓縮的總時序關(guān)系見圖4。該系統(tǒng)實(shí)現(xiàn)1 024點(diǎn)的脈沖壓縮,算法上采用基于IP核的設(shè)計(jì)方法。主要用到了FFT核,乘法器核以及單口Block Memory核,這些IP核的應(yīng)用及脈沖壓縮的具體實(shí)現(xiàn)如下所述。

  2.2.1 FFT運(yùn)算

  對于長度為N的時域序列X(n)的離散傅里葉變換為X(k):

  

 

  FFT算法主要是利用旋轉(zhuǎn)因子exp(-j2πnk/N)的周期性和對稱性的特點(diǎn)進(jìn)行改進(jìn)的算法,可以有效地減小運(yùn)算量。Xilinx公司的FFT核利用Cooley-Tukey算法實(shí)現(xiàn)FFT/IFFT運(yùn)算,最高支持216點(diǎn)長度的運(yùn)算,可以實(shí)現(xiàn)流水線型、基4、基2三種結(jié)構(gòu),蝶形運(yùn)算后可選擇對數(shù)據(jù)順序輸出還是倒序輸出,對IP核進(jìn)行不同的配置,可以實(shí)現(xiàn)資源和運(yùn)算速度的最優(yōu)化。在此選用基4蝶形運(yùn)算,對于1 024點(diǎn)數(shù)據(jù),需要5級蝶形運(yùn)算。

  

 

  Xilinx公司的FFT核的參數(shù)通過GUI界面(見圖5)進(jìn)行設(shè)置,可設(shè)置的參數(shù)包括FFT點(diǎn)數(shù),運(yùn)算實(shí)施方法,輸入數(shù)據(jù)位數(shù)等,設(shè)置完畢后點(diǎn)擊Generate可即時生成代碼。

  硬件描述語言采用VHDL,使用時程序中要對器件初始化并進(jìn)行定義,F(xiàn)FT核的器件定義語句見圖6。

  

 

  2.2.2 匹配濾波系數(shù)產(chǎn)生

  根據(jù)匹配濾波理論,對于一個確定的輸入信號,匹配濾波系數(shù)就是這個輸入信號的頻譜的復(fù)共軛,系數(shù)可以通過Matlab預(yù)先計(jì)算出來并以二進(jìn)制的文件格式進(jìn)行存儲。此處計(jì)算時可以進(jìn)行加權(quán)處理,在系數(shù)中乘以窗函數(shù)即可。

  通過Xilinx公司的單口Block Memory核,可以把Matlab產(chǎn)生的存儲文件加載進(jìn)去。當(dāng)程序運(yùn)行時,根據(jù)使能控制信號,把匹配濾波系數(shù)數(shù)據(jù)(1 024點(diǎn))依次讀取出來,送入乘法器進(jìn)行后續(xù)運(yùn)算。BlockMemory核的參數(shù)設(shè)置通過GUI界面進(jìn)行,可即使生成代碼。

  2.2.3 乘法運(yùn)算

  乘法運(yùn)算部分完成FFT后數(shù)據(jù)與匹配濾波系數(shù)數(shù)據(jù)的復(fù)數(shù)乘法運(yùn)算。根據(jù)復(fù)數(shù)的乘法規(guī)則。

  (A+aj)(B+bj)=(AB-ab)+(Ab+aB)j

  兩個復(fù)數(shù)的乘法運(yùn)算實(shí)際上包括了4個實(shí)數(shù)的乘法運(yùn)算,因此,此部分的設(shè)計(jì)用到了4個乘法器核。Xilinx公司的乘法器核支持補(bǔ)碼運(yùn)算,可輸入A,B兩路數(shù)據(jù),每路的輸入數(shù)據(jù)長度可達(dá)64 b。乘法器核的參數(shù)設(shè)置也是通過GUI界面進(jìn)行,可即使生成代碼。

  2.2.4 IFFT運(yùn)算

  IFFT運(yùn)算的處理單元和FFT的處理單元采用相同的結(jié)構(gòu)來實(shí)現(xiàn)。具體的實(shí)現(xiàn)方法是,在做IFFT運(yùn)算前,先交換輸入數(shù)據(jù)的實(shí)部和虛部,然后送入FFT處理單元按照FFT結(jié)構(gòu)進(jìn)行運(yùn)算,得到運(yùn)算結(jié)果后,再對其實(shí)部和虛部進(jìn)行交換,然后除以運(yùn)算點(diǎn)數(shù)1 024,就可以得到IFFT后脈沖壓縮的運(yùn)算結(jié)果。

  

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:葉子 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?