国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多路并行FFT算法的FPGA實(shí)現(xiàn)技術(shù)

2015-10-22 16:39占席春蔡費(fèi)楊王偉
現(xiàn)代電子技術(shù) 2015年19期
關(guān)鍵詞:測(cè)頻

占席春 蔡費(fèi)楊 王偉

摘 要: 以雷達(dá)偵察接收機(jī)為應(yīng)用背景,利用FPGA芯片并行工作的特性,設(shè)計(jì)一種并行加流水線處理模式的FFT處理器結(jié)構(gòu),實(shí)現(xiàn)寬帶數(shù)字測(cè)頻。在2.4 GSPS采樣率下,選取基?2頻域抽?。―IF)算法,采用每通道512點(diǎn)流水結(jié)構(gòu)FFT、8通道并行處理的設(shè)計(jì)思路,以達(dá)到單通道4 096點(diǎn)FFT的處理效果。在保證分辨率的同時(shí),采樣數(shù)據(jù)能夠被實(shí)時(shí)處理。仿真結(jié)果顯示,在300 MHz時(shí)鐘下,F(xiàn)PGA完成4 096個(gè)數(shù)據(jù)的緩存和FFT運(yùn)算只需要2.1 μs,滿足雷達(dá)偵察接收機(jī)對(duì)數(shù)據(jù)處理速度的要求。

關(guān)鍵詞: FFT; 測(cè)頻; 流水結(jié)構(gòu); 并行處理模式; FPGA

中圖分類號(hào): TN957.51?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)19?0033?04

Abstract: Based on the application background of radar reconnaissance receiver and the parallel operation behavior of FPGA chip, an FFT processor structure combining the parallel processing mode with pipeline processing mode was designed to realize the digital frequency measurement of broadband. At the sampling rate of 2.4 GSPS, the radix?2?based decimation in frequency (DIF) algorithm is selected, the design thought of 512?point pipeline structure FFT for each channel and 8?channel parallel processing is adopted to achieve the processing effect of 4 096?point FFT in single channel. The sampling data can be processed in real time while the resolution is ensured. The simulation results show that it only takes 2.1 μs for FPGA to finish the 4 096 data caching and FFT operation at 300 MHz, which can meet the requirements of radar reconnaissance receiver to data processing speed.

Keywords: FFT; frequency measurement; pipeline structure; parallel processing mode; FPGA

0 引 言

傳統(tǒng)的數(shù)字測(cè)頻方法有直接測(cè)頻法,相位推算法、過(guò)零檢測(cè)法、FFT頻域算法等。直接測(cè)頻法精度較低,不適合在硬件上大規(guī)模實(shí)現(xiàn),相位推算和過(guò)零檢測(cè)方法對(duì)信噪比要求比較高,而FFT頻域算法信噪比要求低,適合高密度信號(hào)及雷達(dá)脈內(nèi)有頻率調(diào)制的情況[1],相對(duì)于測(cè)相,它是一種比較精確的測(cè)頻方法[2]。與傳統(tǒng)DSP測(cè)頻相比,F(xiàn)PGA數(shù)字測(cè)頻具有易于實(shí)現(xiàn)并行算法、精度高、開發(fā)周期短、處理速度快等優(yōu)點(diǎn)[3]。因此本文研究在FPGA上實(shí)現(xiàn)FFT頻域算法。

1 設(shè)計(jì)方案

測(cè)頻系統(tǒng)主要由采集和處理兩部分組成,其工作過(guò)程如圖1所示。系統(tǒng)每緩沖半幀數(shù)據(jù)開始運(yùn)算,而且在處理該幀數(shù)據(jù)的同時(shí),也在緩存下一幀數(shù)據(jù)。這樣,F(xiàn)PGA能夠?qū)崟r(shí)處理A/D采集的全部數(shù)據(jù),避免信號(hào)的漏檢,實(shí)現(xiàn)對(duì)信號(hào)的連續(xù)處理。圖2給出系統(tǒng)的功能框圖,圖中ADC10D1500是一款具有高性能、低功耗、10 b精度等特性的芯片。在本文的研究中,配置A/D分I和Q兩個(gè)通道輸出數(shù)據(jù),采樣速率為2.4 GSPS。由于FPGA工作時(shí)鐘與A/D采樣頻率不匹配,本文采用8通道并行處理方法,實(shí)現(xiàn)高性能FFT處理器。

FPGA完成信號(hào)時(shí)域到頻域的轉(zhuǎn)換如圖2所示,包括接收模塊,控制模塊,時(shí)鐘模塊,512點(diǎn)流水結(jié)構(gòu)FFT模塊,乘法模塊,8通道輸出融合模塊,頻域輸出模塊。

接收模塊用于接收和傳遞A/D采集的數(shù)據(jù),控制模塊負(fù)責(zé)其他模塊的復(fù)位和使能,時(shí)鐘模塊輸出其他模塊的時(shí)鐘信號(hào)。512點(diǎn)流水結(jié)構(gòu)FFT模塊用于數(shù)據(jù)的運(yùn)算處理,8通道輸出融合模塊實(shí)現(xiàn)最終結(jié)果的綜合處理,頻域輸出模塊獲取信號(hào)的功率譜。

FPGA運(yùn)算的中間結(jié)果不經(jīng)過(guò)存儲(chǔ)直接流向下一模塊,在提高處理速度的同時(shí),節(jié)省了存儲(chǔ)資源。

2 多路并行FFT分解算法

FPGA工作時(shí)鐘為300 MHz,分8通道接收A/D采集的數(shù)據(jù),每通道的輸入以8倍抽取,即[xn1(n)=x(8n+n1),][n1=0,1,2,…,7,][xn1(n)]表示第[n1]通道的第[n]個(gè)輸入,[x(n)]是A/D采集的第[n]個(gè)數(shù)據(jù)。為保證頻率分辨力,并且減少運(yùn)算量,本文選擇對(duì)8通道的并行輸入進(jìn)行4 096點(diǎn)FFT處理。

由式(2)的推導(dǎo)可知:在設(shè)計(jì)4 096點(diǎn)FFT時(shí),需要對(duì)每通道數(shù)據(jù)進(jìn)行512點(diǎn)FFT處理,然后將每通道輸出乘以復(fù)數(shù)因子[Wk2n14 096]([k2]是第[n1]通道的輸出系數(shù)),最后進(jìn)行8通道輸出融合,即8點(diǎn)FFT處理。

3 系統(tǒng)設(shè)計(jì)

3.1 單通道流水結(jié)構(gòu)

該設(shè)計(jì)采用基?2頻域抽取方法,不需要對(duì)輸入數(shù)據(jù)倒序處理,簡(jiǎn)化了地址的控制。圖3是單通道512點(diǎn)FFT的流水結(jié)構(gòu),總共分為9級(jí),每一級(jí)主要包括蝶形運(yùn)算單元、選通模塊、基于RAM的移位寄存器、計(jì)數(shù)器、存儲(chǔ)旋轉(zhuǎn)因子的ROM以及使能信號(hào)延時(shí)模塊。endprint

蝶形運(yùn)算模塊是FFT的基本單元,移位寄存器作為每級(jí)輸入和輸出的緩沖器,選通模塊控制數(shù)據(jù)的流向。為了方便,圖3中第[n]級(jí)的輸入①記為[I1n,]輸入②記為[I2n,]輸入端的寄存器記為[IRn,]輸出端的寄存器記為[ORn,]輸出①記為[O1n,]輸出②記為[O2n]。

第一級(jí)開始工作時(shí),[I11]接收數(shù)據(jù)并將其緩存至深度為256的[IR1]中,[I21]斷開。當(dāng)[IR1]被填滿時(shí),即[x(255)]進(jìn)入[IR1,][I11]斷開,[I21]接收數(shù)據(jù)。這樣[IR1]輸出的[x(0)]和[I21]接收到的[x(256)]同時(shí)進(jìn)入蝶形單元,經(jīng)過(guò)運(yùn)算后,蝶形單元上節(jié)點(diǎn)的輸出流經(jīng)[O11]進(jìn)入深度為128的[IR2]中,下節(jié)點(diǎn)的輸出則放入深度為128的[OR1]中。當(dāng)[IR2]被填充滿時(shí),[OR1]也被填充滿,此時(shí)流經(jīng)[O11]的前128個(gè)數(shù)據(jù)全部輸出,第二級(jí)選通模塊發(fā)生跳轉(zhuǎn)。

此后通過(guò)[O11]的后128個(gè)數(shù)據(jù)將依次到達(dá)[I22],與[IR2]的輸出一同進(jìn)入蝶形單元。 同時(shí)[OR1]的輸出將會(huì)流經(jīng)[O21]到達(dá)[I12,]并填充[IR2]的空白位置。當(dāng)流經(jīng)[O21]的前128個(gè)數(shù)據(jù)全部輸出,[IR2]被新的數(shù)據(jù)填充滿,第二級(jí)選通模塊再次發(fā)生跳轉(zhuǎn),經(jīng)過(guò)[O21]的后128個(gè)數(shù)據(jù)將依次到達(dá)[I22],與[IR2]的輸出一起進(jìn)入蝶形單元。而第一級(jí)選通模塊在[IR1]為空時(shí)就發(fā)生跳轉(zhuǎn),繼續(xù)緩存下一幀的數(shù)據(jù)。經(jīng)過(guò)128個(gè)周期,該幀數(shù)據(jù)在第一級(jí)中的處理結(jié)束,后幾級(jí)的運(yùn)算流程與之類似。

選通模塊對(duì)數(shù)據(jù)流向的控制較為關(guān)鍵,其狀態(tài)轉(zhuǎn)移圖如圖4所示。

(1) 初始狀態(tài)[S0,]使能信號(hào)[enablen]為低,[I1n]斷開,[I2n]斷開。

(2) 使能信號(hào)變高,進(jìn)入狀態(tài)[S1,][I1n]連通[O1n-1,][I2n]連通[O2n-1]。

(3) 標(biāo)志位[flagn]變高,進(jìn)入狀態(tài)[S2],[I1n]連通[O2n-1,][I2n]連通[O1n-1]。

(4) 標(biāo)志位[flagn]變低,進(jìn)入狀態(tài)[S1]。

(5) 重復(fù)過(guò)程(3)。

計(jì)數(shù)器輸出的最高位(MSB)作為選通模塊跳轉(zhuǎn)的標(biāo)志位[flagn]。第一幀數(shù)據(jù)到達(dá)各級(jí)的時(shí)間不同,因此每級(jí)計(jì)數(shù)器的使能時(shí)刻也不同。使能信號(hào)[enable1]變高時(shí),數(shù)據(jù)[x(n)]開始進(jìn)入第一級(jí)。經(jīng)過(guò)256個(gè)周期,進(jìn)入蝶形單元,之后進(jìn)入下一級(jí)。因此延遲單元1需延遲256個(gè)周期加上蝶形單元消耗的時(shí)間,依次類推,單元[n]需延遲[2562n]個(gè)周期加上蝶形單元消耗的周期。

旋轉(zhuǎn)因子按照[W0512]~[W511512]順序存入ROM中。分析每級(jí)旋轉(zhuǎn)因子出現(xiàn)的規(guī)律,得到其在ROM中的地址表達(dá)式(rom_addr)為[2n-1?c(w-2 ∶ 0),]其中[n]表示級(jí)數(shù),[c]是第[n]級(jí)計(jì)數(shù)器的輸出,[w]是計(jì)數(shù)器的位寬。

第九級(jí)的兩路輸出分別按地址遞增順序存入兩個(gè)深度為256的RAM中,然后輪流讀取兩個(gè)RAM,得到倒序的FFT結(jié)果,其對(duì)應(yīng)的系數(shù)由倒序計(jì)數(shù)模塊產(chǎn)生。圖5給出 FFT的倒序輸出,圖中xk_index是倒序輸出的系數(shù)。

由于只有一路數(shù)據(jù)[x(n),][IR1]在緩沖前半幀數(shù)據(jù)時(shí),第一級(jí)和第二級(jí)之間沒(méi)有數(shù)據(jù)傳遞。因此在輸出模塊中,對(duì)兩個(gè)RAM進(jìn)行256個(gè)周期的寫操作之后,會(huì)有256個(gè)周期的等待,然后繼續(xù)下一幀數(shù)據(jù)的寫操作,而讀操作是連續(xù)的。

3.2 八通道輸出融合處理

每通道的輸出需要乘以復(fù)數(shù)因子[Wk2n1N,]其中[k2=0,1,2,…,511,]是FFT輸出對(duì)應(yīng)的系數(shù);[n1]表示通道數(shù);[N=4 096;][k2?n1]是復(fù)數(shù)因子在ROM中的地址。模塊選取xilinx提供的復(fù)數(shù)乘法ipcore。

為達(dá)到4 096點(diǎn)FFT的效果,在乘以復(fù)數(shù)因子后,需對(duì)8個(gè)通道的輸出進(jìn)行融合。圖6是融合處理的結(jié)構(gòu)圖,其本質(zhì)是8點(diǎn)全并行結(jié)構(gòu)的FFT。該結(jié)構(gòu)分為3級(jí),包括12個(gè)蝶形單元和4個(gè)排序單元,節(jié)省了存儲(chǔ)資源。圖7是蝶形單元的RTL圖,包括4個(gè)加(減)法器,1個(gè)復(fù)數(shù)乘法器,3個(gè)觸發(fā)器。

工作時(shí),12個(gè)蝶形單元同時(shí)運(yùn)算,每個(gè)時(shí)鐘周期都會(huì)有8路輸入和8路倒序輸出,每級(jí)的8路輸出在經(jīng)過(guò)一次排序后送入下一級(jí),避免數(shù)據(jù)的反復(fù)讀寫。排序過(guò)程會(huì)消耗一個(gè)時(shí)鐘周期,由于點(diǎn)數(shù)較小,在設(shè)計(jì)排序模塊時(shí),可以直接確定上級(jí)輸出和下級(jí)輸出的對(duì)應(yīng)關(guān)系。一幀數(shù)據(jù)經(jīng)過(guò)融合模塊后就完成了4 096點(diǎn)FFT變換。

3.3 頻域輸出

為了得到信號(hào)的功率譜,方便后續(xù)的頻率檢測(cè),頻域輸出模塊按倒序方式將融合后的8路輸出同時(shí)寫入RAM,然后按照自然順序從RAM中讀出,再經(jīng)過(guò)平方律檢波,即取實(shí)部和虛部的平方和并依次輸出。

4 仿真結(jié)果

設(shè)定采樣頻率[fs=2.4]GHz,借助Matlab工具產(chǎn)生中心頻率[f0=235]MHz,時(shí)長(zhǎng)[t=1.707]μs,帶寬[B=20]MHz的線性調(diào)頻信號(hào)。

圖8是將調(diào)頻信號(hào)作為輸入激勵(lì)的仿真圖。DataPar是8通道并行輸入,為了更直觀,圖8中將時(shí)域采樣信號(hào)DataSer以串行方式輸出并以模擬格式顯示。start是系統(tǒng)的使能信號(hào),rfd信號(hào)為高時(shí)數(shù)據(jù)緩存有效。busy信號(hào)是FFT運(yùn)算的狀態(tài)標(biāo)志位,其為下降沿時(shí)一幀數(shù)據(jù)的運(yùn)算結(jié)束。

在300 MHz工作時(shí)鐘下,完成每一幀數(shù)據(jù)的FFT處理需要638個(gè)周期,即2.1 μs,處理速度較快。信號(hào)op是輸出處理的狀態(tài)標(biāo)志,處理結(jié)束后op變低,done信號(hào)會(huì)維持一個(gè)周期的高電平,dout是最終的頻域輸出,freq_k是dout對(duì)應(yīng)的頻率系數(shù),圖中的波形是線性調(diào)頻信號(hào)的功率譜。

將FPGA內(nèi)8路融合后的數(shù)據(jù)導(dǎo)入Matlab,并與Matlab的仿真結(jié)果進(jìn)行對(duì)比。在圖9中,頻率信息主要集中在[k=300][∶]500范圍內(nèi),圖9(a)是LFM信號(hào)在Matlab中進(jìn)行FFT處理后取模的結(jié)果,圖9(b)是LFM信號(hào)經(jīng)過(guò)FPGA處理后取模的結(jié)果,兩條曲線十分接近。

由于采用定點(diǎn)算法[5]設(shè)計(jì),仿真的輸入和旋轉(zhuǎn)因子都是轉(zhuǎn)換成整數(shù)后參與運(yùn)算的,存在量化誤差。在多級(jí)的運(yùn)算過(guò)程中,會(huì)因?yàn)閿?shù)據(jù)的截尾而產(chǎn)生誤差,影響運(yùn)算的精度。但由于該誤差較小,不影響后續(xù)頻譜的分析和處理。

5 結(jié) 語(yǔ)

本文利用FPGA實(shí)現(xiàn)多路并行結(jié)構(gòu)的FFT處理器,每通道結(jié)構(gòu)類似,容易擴(kuò)展,增加級(jí)數(shù)就能實(shí)現(xiàn)更大點(diǎn)數(shù)的FFT,縮短了開發(fā)周期。由于其運(yùn)算速度快,能實(shí)時(shí)處理高速A/D采集的中頻數(shù)據(jù),適用于寬帶信號(hào)的實(shí)時(shí)頻譜分析。

參考文獻(xiàn)

[1] 童慶為.基于FPGA的數(shù)字接收機(jī)高精度測(cè)頻技術(shù)[D].西安:西安電子科技大學(xué),2010.

[2] 田京京.基于FPGA的雷達(dá)信號(hào)測(cè)頻系統(tǒng)研究[D].武漢:華中科技大學(xué),2011.

[3] 霍志.一種基于FPGA的雷達(dá)數(shù)字信號(hào)處理機(jī)設(shè)計(jì)[D].長(zhǎng)沙:國(guó)防科技大學(xué),2011.

[4] 江志紅.深入淺出數(shù)字信號(hào)處理[M].北京:北京航空航天大學(xué)出版社,2012.

[5] MEYER?BAESE U.數(shù)字信號(hào)處理的FPGA實(shí)現(xiàn)[M].北京:清華大學(xué)出版社,2011.

[6] 董暉,畢大平,王冰.寬帶數(shù)字接收機(jī)高速信號(hào)處理技術(shù)[J].現(xiàn)代防御技術(shù),2005,33(5):50?54.

[7] 王琦.基于FPGA雷達(dá)信號(hào)數(shù)字接收機(jī)的實(shí)現(xiàn)[D].南京:南京航空航天大學(xué),2008.endprint

猜你喜歡
測(cè)頻
STM32頻率測(cè)量誤差分析與比較
對(duì)某設(shè)備低溫下測(cè)頻超差問(wèn)題的分析和研究
諧振式傳感器高精度頻率測(cè)量技術(shù)研究*
瞬時(shí)測(cè)頻接收機(jī)自動(dòng)測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
電子偵察測(cè)頻系統(tǒng)的建模與仿真
瀑布溝水電站調(diào)速器齒盤測(cè)頻的技術(shù)改造
柘城县| 深水埗区| 淳安县| 星子县| 博湖县| 和平县| 隆化县| 陆川县| 兴安盟| 扶沟县| 河池市| 肇庆市| 合作市| 林西县| 朝阳市| 哈尔滨市| 新密市| 年辖:市辖区| 兴业县| 鄢陵县| 龙江县| 通州市| 泊头市| 两当县| 思南县| 遂昌县| 岚皋县| 和龙市| 金平| 长垣县| 银川市| 衡水市| 长泰县| 沐川县| 融水| 南通市| 濮阳县| 威海市| 白山市| 宣化县| 丰台区|