基于FPGA的CFAR設(shè)計_第1頁
基于FPGA的CFAR設(shè)計_第2頁
基于FPGA的CFAR設(shè)計_第3頁
基于FPGA的CFAR設(shè)計_第4頁
基于FPGA的CFAR設(shè)計_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、基于FPGA的CFAR設(shè)計摘要恒虛警率(Constant False-Alarm Rate, CFAR)處理技術(shù)是雷達信號處理的重要組成部分。在雷達信號檢測中,當外界干擾強度變化時,雷達能自動調(diào)整其靈敏度,使雷達的虛警概率保持不變。具有這種特性的接收機稱為恒虛警接收機。雷達信號的檢測總是在干擾背景上進行的,干擾包括接收機內(nèi)部的熱噪聲,以及地物、雨雪、海浪等雜波干擾。其中,地雜波、海雜波、氣象雜波和箔條雜波都是由天線波束照射區(qū)內(nèi)的大量散射單元的散射信號疊加組成。因此,在強干擾中提取信號,不僅要求有一定的信噪比,而且必須對信號作恒虛警處理。在自動檢測雷達中,必須具備恒虛警處理設(shè)備,使之在強雜波干擾

2、下仍能繼續(xù)工作。本文首先介紹了恒虛警率(CFAR)的基本原理,然后利用FPGA方案對恒虛警率(CFAR)進行了實例設(shè)計,并對各子模塊進行了詳細說明,最后對整個模塊進行仿真和驗證。關(guān)鍵詞:VerilogHDL、FPGA、恒虛警(CFAR)目錄1、緒論32、CFAR算法基本原理43、FPGA設(shè)計與實現(xiàn)63.1、頂層模塊設(shè)計63.2、回波消除電路設(shè)計83.3、恒虛警(CFAR)電路設(shè)計123.4、塊儲存器設(shè)計244、仿真255、總結(jié)28參考文獻:29一、緒論恒虛警率(Constant False-Alarm Rate, CFAR)處理技術(shù),用于在雜波環(huán)境變化時,防止雷達的虛警概率發(fā)生太大的變化,同時

3、保證一定的檢測概率。為此,必須采用自適應(yīng)門限檢測電路。利用自動檢測電路來估測接收機的輸出,以保持一個恒虛警率的系統(tǒng)便稱為恒虛警率(CFAR)系統(tǒng)。例如,PD 雷達常用于機載下視或類似的條件下,因此由于不同的地物回波所形成的雜波強度分布情況十分復雜,為了在這樣復雜的雜波環(huán)境中檢測所關(guān)心的運動目標回波,則必須采用CFAR 處理技術(shù)。它是一種對雜波問題很有效的處理技術(shù),可以隨本地噪聲能量信息設(shè)置門限。雷達信號的檢測總是在干擾背景上進行的,干擾包括接收機內(nèi)部的熱噪聲,以及地物、雨雪、海浪等雜波干擾。其中,地雜波、海雜波、氣象雜波和箔條雜波都是由天線波束照射區(qū)內(nèi)的大量散射單元的散射信號疊加組成。因此,在

4、強干擾中提取信號,不僅要求有一定的信噪比,而且必須對信號作恒虛警處理。在自動檢測雷達中,必須具備恒虛警處理設(shè)備,使之在強雜波干擾下仍能繼續(xù)工作。我們想要實現(xiàn)CFAR處理,傳統(tǒng)方案是采用DSP加軟件的方法實現(xiàn),即用通用DSP芯片構(gòu)造硬件處理機平臺,通過編寫處理軟件實現(xiàn)CFAR算法。這種方案對于距離分辨率不高的寬脈沖雷達來說,是一種簡單可行的方法,但對于窄脈沖雷達,由于距離維采樣頻率很高,要求處理機硬件平臺提供超高的運算速度,F(xiàn)PGA以其高的處理速度成為實現(xiàn)CFAR算法的一種好的選擇。本文提出一種基于FPGA的實現(xiàn)方案,該方案依據(jù)CFAR算法的獨立性、規(guī)則性、算法的簡單性和運算密集性等特點,頂層模

5、塊調(diào)用了一個CFAR算法模塊和兩個塊存儲器IP核,實現(xiàn)了數(shù)據(jù)長度為16bit,前、后窗長度為L=16位數(shù)據(jù)的ML類CFAR算法。二、CFAR算法基本原理一般通用的CFAR方案中,視頻信號樣本通過平方率包絡(luò)檢測器被送到滑窗寄存器中。該寄存器長一般設(shè)定為N+1 =2n+1,統(tǒng)計量Z是與噪聲能量成比例的,而噪聲能量是通過檢測單元D周N個參考單元的某種處理而得到的。U是一個恒量元素,在均勻背景下,與N、Pfa有關(guān),給定參考單元數(shù)N及虛警概率Pfa對應(yīng)的U是一個定值。如果檢測單元D的值大于門限U0,則該信號將被判決為目標信號。根據(jù)的計算方式的不同,CFAR檢測器分為均值(ML)類和有序統(tǒng)計量(OS)類兩

6、種典型的檢測器,其原理圖分別如圖1和圖2所示。ML類CFAR包括單元平均(CA)CFAR、最大選擇(GO)CFAR和最小選擇(SO)CFAR等;OS類CFAR包括有序統(tǒng)計(OS)CFAR、削減平均(TM)CFAR等。均值類CFAR適用于空間上統(tǒng)計平穩(wěn)的背景,它在檢測單元前、后沿各有一個覆蓋若干距離單元的滑動窗,利用滑動窗中參考采樣的均值,形成前、后沿局部估計,再對局部估計平均、選大、選小或加權(quán)平均,以確定檢測單元的背景雜波平均功率估計。鑒于信號可能會跨越到前后鄰近單元中,檢測單元及其臨近前后距離單元一般不包括在平均窗內(nèi),若檢測單元中信號幅度大于滑動窗內(nèi)均值的K倍,則認為是信號。圖1 ML類CF

7、AR結(jié)構(gòu)示意圖圖2OS類CFAR結(jié)構(gòu)示意圖本文利用如圖1所示的CA-CFAR方法的FPGA來進行設(shè)計,在頂層模塊調(diào)用了一個CFAR算法模塊和兩個塊存儲器IP核,實現(xiàn)了數(shù)據(jù)長度為16bit,前、后窗長度為L=16位數(shù)據(jù)的CA-CFAR算法。三、FPGA設(shè)計與實現(xiàn)CFAR電路由目標回波消除電路和恒虛警電路構(gòu)成,下面分別介紹其Verilog HDL設(shè)計。包括頂層模塊設(shè)計、回波消除電路設(shè)計、恒虛警電路設(shè)計和塊存儲器IP核??偪驁D如圖3所示。圖3CFAR電路總結(jié)構(gòu)示意圖3.1、頂層模塊設(shè)計對于CFAR電路首先要關(guān)注的是頂層模塊的FPGA邏輯設(shè)計,其功能主要是對要實現(xiàn)的各子模塊進行連接和統(tǒng)籌規(guī)劃,使得各子

8、模塊能夠正常運行從而實現(xiàn)所有功能。頂層模塊具體實現(xiàn)了數(shù)據(jù)連接、信號噪聲的對比以及全局時鐘緩存等功能。設(shè)計程序如下所示:timescale 1ns / 1psmodule top(inputclk,inputrst,input 15:0 I_signal,output O_result );wire 15:0 signal;wire 15:0 noise;del u1(.clk(clk), .rst(rst), .I_signal(I_signal), .O_signal(signal), .O_noise(noise);cfar u2(.clk(clk), .rst(rst), .I_sign

9、al(signal), .I_noise(noise), .O_result(O_result);endmodule3.2、回波消除電路設(shè)計回波消除電路主要用來消除回波信號,以便后續(xù)電路計算噪聲平均功率。信號通過該模塊后分為兩路輸出:信號和回波消除后的噪聲信號。模塊框圖如圖4所示。圖4回波消除電路框圖設(shè)計程序如下所示:timescale 1ns / 1psmodule del(inputclk,inputrst,input 15:0 I_signal,output 15:0 O_signal,output 15:0 O_noise );parameter pc=16h0100;reg 15:0

10、 O1_signal;reg 15:0 O1_noise;reg 15:0 R_signal;reg 15:0 R1_signal;reg 17:0 mult;reg 15:0 R_result;reg 15:0 compare;/-signal output-always(posedgeclk or negedgerst)beginif(rst)beginR_signal= 16h0000; R1_signal = 16h0000; O1_signal = 16h0000;endelsebeginR_signal= I_signal; R1_signal = R_signal; O1_sig

11、nal = R1_signal;endendassignO_signal = O1_signal;/-noise output-always(posedgeclk or negedgerst)beginif(rst)beginmult= 16h0000;endelsebeginmult= I_signal*3;endendalways(posedgeclk or negedgerst)beginif(rst)beginR_result= 16h0000;endelsebeginif(R_signal compare)beginR_result= mult17:2 + 2R_result15,R

12、_result15:2;endendendalways( * )begincompare= R_result+pc;endalways(posedgeclk or negedgerst)beginif(rst)begin O1_noise = 16h0000;endelsebegin O1_noise = R_result;endendassignO_noise = O1_noise;endmodule3.3、恒虛警(CFAR)電路設(shè)計恒虛警(CFAR)模塊利用了移位寄存器實現(xiàn)恒虛警電路功能。此模塊是CFAR處理技術(shù)的核心,采樣回波產(chǎn)生數(shù)據(jù),并對這些數(shù)據(jù)進行定點化。模塊框圖如圖5所示。圖5恒虛

13、警(CFAR)電路框圖設(shè)計程序如下所示:timescale 1ns / 1psmodulecfar(inputclk,inputrst,input 15:0 I_signal,input 15:0 I_noise,output O_result );reg 15:0 O1_result;reg 15:0 R_noise;reg 15:0 R1_noise;reg 15:0 R2_noise;reg 15:0 R3_noise;reg 15:0 R4_noise;reg 15:0 R5_noise;reg 15:0 R6_noise;reg 15:0 R7_noise;reg 15:0 R8_n

14、oise;reg 15:0 R9_noise;reg 15:0 R10_noise;reg 15:0 R11_noise;reg 15:0 R12_noise;reg 15:0 R13_noise;reg 15:0 R14_noise;reg 19:0 R_add;reg 15:0 R1_add;reg 15:0 R2_add;reg 15:0 R3_add;reg 15:0 R4_add;reg 15:0 R5_add;reg 15:0 R6_add;reg 15:0 R7_add;reg 15:0 R8_add;reg 15:0 R9_add;reg 15:0 R10_add;reg 15

15、:0 R11_add;reg 15:0 R12_add;reg 15:0 R13_add;reg 15:0 R14_add;reg 15:0 R15_add;reg 15:0 R16_add;reg 15:0 R_average;reg 15:0 R_signal;reg 15:0 R1_signal;reg 15:0 R2_signal;reg 15:0 R3_signal;reg 15:0 R4_signal;reg 15:0 R5_signal;reg 15:0 R6_signal;reg 15:0 R7_signal;reg 15:0 R8_signal;reg 15:0 R9_sig

16、nal;reg 15:0 R10_signal;reg 15:0 R11_signal;reg 15:0 R12_signal;reg 15:0 R13_signal;reg 15:0 R14_signal;reg 15:0 R15_signal;reg 15:0 R16_signal;/-noise shift-always(posedgeclk or negedgerst)beginif(rst)beginR_noise= 16h0000; R1_noise = 16h0000; R2_noise = 16h0000; R3_noise = 16h0000; R4_noise = 16h0

17、000; R5_noise = 16h0000; R6_noise = 16h0000; R7_noise = 16h0000; R8_noise = 16h0000; R9_noise = 16h0000; R10_noise = 16h0000; R11_noise = 16h0000; R12_noise = 16h0000; R13_noise = 16h0000; R14_noise = 16h0000;endelsebeginR_noise= I_noise; R1_noise = R_noise; R2_noise = R1_noise; R3_noise = R2_noise;

18、 R4_noise = R3_noise; R5_noise = R4_noise; R6_noise = R5_noise; R7_noise = R6_noise; R8_noise = R7_noise; R9_noise = R8_noise; R10_noise = R9_noise; R11_noise = R10_noise; R12_noise = R11_noise; R13_noise = R12_noise; R14_noise = R13_noise;endend/-add noise-always(posedgeclk or negedgerst)beginif(rs

19、t)beginR_add= 20h00000;endelsebeginR_add= (I_noise + R_noise) + (R1_noise + R2_noise) + (R3_noise + R4_noise) + (R5_noise + R6_noise) + (R7_noise + R8_noise) + (R9_noise + R10_noise) + (R11_noise + R12_noise) + (R13_noise + R14_noise);endend/-noise_add shift-always(posedgeclk or negedgerst)beginif(r

20、st)begin R1_add = 16h0000; R2_add = 16h0000; R3_add = 16h0000; R4_add = 16h0000; R5_add = 16h0000; R6_add = 16h0000; R7_add = 16h0000; R8_add = 16h0000; R9_add = 16h0000; R10_add = 16h0000; R11_add = 16h0000; R12_add = 16h0000; R13_add = 16h0000; R14_add = 16h0000; R15_add = 16h0000; R16_add = 16h00

21、00;endelsebegin R1_add = R_add19:4; R2_add = R1_add; R3_add = R2_add; R4_add = R3_add; R5_add = R4_add; R6_add = R5_add; R7_add = R6_add; R8_add = R7_add; R9_add = R8_add; R10_add = R9_add; R11_add = R10_add; R12_add = R11_add; R13_add = R12_add; R14_add = R13_add; R15_add = R14_add; R16_add = R15_a

22、dd;endend/-R_average-always(posedgeclk or negedgerst)beginif(rst)beginR_averageR16_add)beginR_average= R_add19:4;endelsebeginR_average= R16_add;endendend/-signal shift-always(posedgeclk or negedgerst)beginif(rst)beginR_signal= 16h0000; R1_signal = 16h0000; R2_signal = 16h0000; R3_signal = 16h0000; R

23、4_signal = 16h0000; R5_signal = 16h0000; R6_signal = 16h0000; R7_signal = 16h0000; R8_signal = 16h0000; R9_signal = 16h0000; R10_signal = 16h0000; R11_signal = 16h0000; R12_signal = 16h0000; R13_signal = 16h0000; R14_signal = 16h0000; R15_signal = 16h0000; R16_signal = 16h0000;endelsebeginR_signal=

24、I_signal; R1_signal = R_signal; R2_signal = R1_signal; R3_signal = R2_signal; R4_signal = R3_signal; R5_signal = R4_signal; R6_signal = R5_signal; R7_signal = R6_signal; R8_signal = R7_signal; R9_signal = R8_signal; R10_signal = R9_signal; R11_signal = R10_signal; R12_signal = R11_signal; R13_signal

25、 = R12_signal; R14_signal = R13_signal; R15_signal = R14_signal; R16_signal = R15_signal;endend/-output-always(posedgeclk or negedgerst)beginif(rst)begin O1_result = 16h0000;endelsebegin O1_result = R16_signal - 10*R_average;endendassignO_result = O1_result15;endmodule3.4、塊儲存器設(shè)計由于最后要通過得到信號與平均噪聲的比值來判

26、決CFAR歸一化輸出,而用數(shù)字電路實現(xiàn)除法運算比較復雜,故采用取對數(shù)的方法,將除法運算轉(zhuǎn)化為減法運算,簡化了電路實現(xiàn)。通過調(diào)用Xilinx公司的Block Memory IP核,實現(xiàn)將信號和平均噪聲取對數(shù)的運算。四、仿真與測試對CFAR電路初始化并復位后,輸入預先生成的定點模擬回波。然后編寫Testbench程序?qū)攲幽K進行仿真,用Modelsim工具對結(jié)果進行仿真,觀察輸出結(jié)果,與理論值對比,驗證系統(tǒng)的正確性。模塊框圖如圖6所示。圖6Testbench激勵框圖Testbench設(shè)計程序如下:timescale 1ns / 1psmoduletop_test;regclk;regrst;re

27、g 15:0 addr;wire 15:0 I_signal;wire O_result;always #5 clk = clk;initialbeginclk = 0;rst = 0;addr = 0; #103 rst = 1 ;endalways(posedgeclk)beginif(rst)beginaddr = addr + 1 ;endendrom uut1 ( .clka(clk), .addra(addr), .douta(I_signal);top uut2 (.clk(clk), .rst(rst), .I_signal(I_signal), .O_result(O_res

28、ult);endmodule使用的輸入數(shù)據(jù)為:200,150,125,130,300,230,2100,215,230,230,115,235,130,210,110,230,110,2500,270,240,210,130,115,130,110,220,205,220,115,230,125,230,230,230,720,2400,270,250,215,120,120仿真結(jié)果如圖7、8所示:圖7仿真結(jié)果圖1圖8仿真結(jié)果圖2從測試圖可以得到結(jié)果,輸入較小時,O_result=0,當有較大的偏差出現(xiàn)的時候,O_result=1。與理論輸出結(jié)果吻合,由此驗證了本系統(tǒng)的正確性。五、結(jié)論與總結(jié)本文采用VerilogHDL語言,利用FPGA進行了恒虛警率(CFAR)系統(tǒng)的設(shè)計。通過對每個模塊的綜合,從而實現(xiàn)了數(shù)據(jù)長度為16bit,前、后窗長度為L=16位數(shù)據(jù)的CA-CFAR算法。最后,通過與Matlab仿真結(jié)果相比較,驗證了本設(shè)計的正確性。在此,我要感謝我的老師李洪濤老師。他生動的講課方式讓我領(lǐng)悟到學習也可以很快樂,每節(jié)課上對我的提問激發(fā)了我

溫馨提示

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

評論

0/150

提交評論