亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于國產(chǎn)CPU的雷達(dá)信號處理設(shè)計和實現(xiàn)

        2023-10-12 07:22:38游英杰
        火控雷達(dá)技術(shù) 2023年3期
        關(guān)鍵詞:信號處理線程隊列

        王 巖 楊 剛 游英杰

        (西安電子工程研究所 西安 710100)

        0 引言

        近年來,隨著雷達(dá)系統(tǒng)技術(shù)的快速發(fā)展和應(yīng)用需求的不斷增加,傳統(tǒng)以FPGA+DSP為硬件架構(gòu)的雷達(dá)信號處理系統(tǒng)面臨著極大的挑戰(zhàn)[1-2]。FPGA具有強(qiáng)大的運(yùn)算能力和傳輸帶寬,但算法設(shè)計復(fù)雜且不夠靈活,軟件調(diào)試周期長。DSP開發(fā)靈活度高,但單片DSP計算能力較弱,對于運(yùn)算量高的大型陣列雷達(dá)系統(tǒng)需要多片DSP才能完成檢測處理,復(fù)雜的任務(wù)劃分導(dǎo)致程序調(diào)試和維護(hù)困難。近些年,雷達(dá)信號處理系統(tǒng)開始嘗試使用進(jìn)口CPU完成處理功能,基于CPU實現(xiàn)雷達(dá)信號處理系統(tǒng)便于實現(xiàn)復(fù)雜的算法流程,可以大幅度縮短軟件調(diào)試周期,軟件模塊易于復(fù)用和移植[3-4]。然而長期依賴于進(jìn)口CPU面臨著嚴(yán)重的信息安全隱患以及隨時可能被禁用的風(fēng)險。在我國大力發(fā)展電子信息軟硬件技術(shù)自主可控的趨勢下,國產(chǎn)CPU和操作系統(tǒng)在近些年得到迅速發(fā)展,其中較為成熟的飛騰FT2000+/64 CPU和銀河麒麟Linux操作系統(tǒng)已在各研究領(lǐng)域嘗試使用[5-6]。

        本文基于國產(chǎn)飛騰FT2000+/64 CPU和銀河麒麟Linux操作系統(tǒng)設(shè)計了并行雷達(dá)信號處理算法,以雷達(dá)信號處理中常用的動目標(biāo)檢測(Moving Targets Detection,MTD)和恒虛警率(Constant-False-Alarm Rate,CFAR)處理為例,介紹了國產(chǎn)CPU上雷達(dá)信號處理的設(shè)計流程、計算誤差和使用不同CPU核時的處理時間。

        1 信號處理算法

        動目標(biāo)檢測(Moving Targets Detection,MTD)是一種提高雷達(dá)在雜波背景下檢測運(yùn)動目標(biāo)的能力的技術(shù),一般使用FFT或多普勒濾波器組抑制雜波,本文使用FIR濾波器的方式進(jìn)行MTD處理[7]。

        恒虛警率(Constant-False-Alarm Rate,CFAR)處理是雷達(dá)目標(biāo)檢測中常用的一種手段,目的是在干擾下保持信號檢測時的虛警率恒定。CFAR處理時需要先根據(jù)檢測單元內(nèi)的噪聲和干擾確定一個門限,然后用此門限和檢測單元信號比較后判斷是否有目標(biāo)[7]。常用的CFAR處理技術(shù)包括CA(Cell Averaging)-CFAR、GO(Greatest of)-CFAR、OS(Order Statistics)-CFAR等,本文中的測試程序使用GO-CFAR完成恒虛警檢測。

        2 軟硬件平臺選擇

        硬件平臺使用國產(chǎn)飛騰FT2000+/64 CPU處理器,該CPU集成64個自主開發(fā)的兼容ARMv8指令集的處理器核,采用基于數(shù)據(jù)親和的多核處理器體系結(jié)構(gòu),計算能力和訪存帶寬在國內(nèi)處于領(lǐng)先水平。

        操作系統(tǒng)使用銀河麒麟Linux操作系統(tǒng),該操作系統(tǒng)支持飛騰、龍芯、海光等國產(chǎn)CPU平臺,并且穩(wěn)定易用,支持Qt和Eclipse等開發(fā)環(huán)境,提供配套的編譯、測試和調(diào)試工具,本文中的程序均使用Eclipse編譯和調(diào)試。

        計算中間件使用OpenBlas函數(shù)庫,OpenBlas是一個開源的線性代數(shù)運(yùn)算函數(shù)庫,該函數(shù)庫對于高性能計算有需求的應(yīng)用提供支持。OpenBlas支持FT2000+/64 CPU的ARMv8架構(gòu),在編譯時會根據(jù)所使用的硬件進(jìn)行優(yōu)化,生成針對所使用硬件效率很高的函數(shù)庫[8]。

        并行編程框架使用Pthread編程模型,Pthread是一套基于共享內(nèi)存的線程庫,該線程庫為用戶提供了創(chuàng)建和使用線程的一系列API,用戶在創(chuàng)建線程時可以設(shè)置線程優(yōu)先級、調(diào)度策略和堆棧大小等參數(shù),根據(jù)需要分配每個線程完成的任務(wù)[9]。

        3 軟件設(shè)計架構(gòu)

        本文軟件設(shè)計的處理流程如圖1所示,各模塊間的并行處理采用流水線的方式實現(xiàn),各處理模塊接收上一級模塊輸出的數(shù)據(jù),上一級模塊的數(shù)據(jù)保存在全局內(nèi)存中,后一級模塊直接從全局內(nèi)存地址上獲取數(shù)據(jù)。為了保證各模塊處理時間的穩(wěn)定性,首先對使用到的CPU核進(jìn)行核隔離,然后在創(chuàng)建線程后,綁定各處理模塊的線程到指定的CPU核上。線程間使用信號量和全局變量等方式通信,讀寫全局變量時使用互斥鎖防止內(nèi)存沖突。各處理模塊使用全局內(nèi)存在線程間共享數(shù)據(jù),使用各模塊獨立的數(shù)據(jù)循環(huán)隊列容忍處理時間的抖動。MTD和CFAR處理模塊使用參數(shù)化設(shè)計,可以根據(jù)需要靈活配置使用的核數(shù)和各線程需要計算的數(shù)據(jù)。

        圖1 軟件設(shè)計架構(gòu)

        脈沖壓縮數(shù)據(jù)獲取模塊需要創(chuàng)建1個脈壓數(shù)據(jù)獲取線程,并將線程綁定到指定CPU核上。該線程將數(shù)據(jù)保存在一個使用全局內(nèi)存的脈沖壓縮數(shù)據(jù)循環(huán)隊列中,通過累加隊列計數(shù)值全局變量的方式通知MTD模塊處理,使用全局變量的過程中使用內(nèi)存互斥鎖防止沖突。

        MTD處理模塊需要創(chuàng)建1個MTD管理線程和多個MTD計算線程,并綁定線程到指定CPU核上。MTD管理線程通過循環(huán)查詢脈壓數(shù)據(jù)隊列計數(shù)值全局變量的方式等待脈壓數(shù)據(jù)到達(dá),讀取脈壓數(shù)據(jù)隊列計數(shù)值的過程中,使用互斥鎖防止內(nèi)存沖突。獲取到脈壓數(shù)據(jù)后,MTD管理線程釋放所有MTD計算線程對應(yīng)的計算開始信號量,并等待所有MTD計算線程結(jié)束信號量。完成計算后,累加MTD數(shù)據(jù)隊列計數(shù)值全局變量,通知CFAR模塊處理。MTD計算線程按照波束數(shù)和距離單元劃分每個線程的任務(wù)。例如,每個PRI包含兩個波束的脈壓數(shù)據(jù),使用4個CPU核時,創(chuàng)建4個MTD計算線程,任務(wù)劃分為每兩個核計算1個波束,每個核計算1/2距離單元的數(shù)據(jù)。使用8個CPU核時,創(chuàng)建8個MTD計算線程,任務(wù)劃分為每4個核計算1個波束,每個核計算1/4距離單元的數(shù)據(jù)。使用16和32個CPU核時,任務(wù)在線程間的劃分方式類似。MTD處理模塊使用FIR濾波器的方式實現(xiàn),每個MTD計算線程將需要計算的數(shù)據(jù)從脈沖壓縮數(shù)據(jù)全局內(nèi)存隊列復(fù)制到臨時內(nèi)存中,通過調(diào)用OpenBlas的復(fù)數(shù)矩陣乘法函數(shù)完成對應(yīng)數(shù)據(jù)段的計算,然后將計算結(jié)果保存在MTD數(shù)據(jù)全局內(nèi)存循環(huán)隊列中,用于后續(xù)的CFAR處理。

        CFAR處理模塊需要創(chuàng)建1個CFAR管理線程和多個CFAR計算線程,并綁定線程到指定CPU核上。CFAR管理線程通過循環(huán)查詢MTD數(shù)據(jù)隊列計數(shù)值全局變量的方式等待MTD數(shù)據(jù)到達(dá),讀取MTD數(shù)據(jù)隊列計數(shù)值的過程中,使用互斥鎖防止內(nèi)存沖突。獲取到MTD數(shù)據(jù)后,CFAR管理線程釋放所有CFAR計算線程對應(yīng)的計算開始信號量,并等待所有CFAR計算線程結(jié)束信號量。所有CFAR計算線程完成計算后,將多個CPU核計算的CFAR結(jié)果匯總,并累加CFAR數(shù)據(jù)隊列計數(shù)值全局變量,用于通知后續(xù)處理任務(wù)。CFAR計算線程按照波束數(shù)和積累點數(shù)劃分每個線程的任務(wù)。例如,對于積累點數(shù)為32并且每個PRI含兩個波束的數(shù)據(jù),使用4個CPU核時,創(chuàng)建4個CFAR計算線程,任務(wù)劃分為每兩個核計算1個波束,每個核計算16個PRI的數(shù)據(jù)。使用8個CPU核時,創(chuàng)建8個CFAR計算線程,任務(wù)劃分為每4個核計算1個波束,每個核計算8個PRI的數(shù)據(jù)。使用16和32個CPU核時,任務(wù)在線程間的劃分方式類似。CFAR模塊使用GO-CFAR的方式處理,每個CFAR計算線程將需要計算的MTD數(shù)據(jù)求模值后保存在MTD模值數(shù)據(jù)臨時內(nèi)存中,依次循環(huán)碼片和距離單元完成CFAR檢測,將計算結(jié)果保存在CFAR數(shù)據(jù)全局內(nèi)存循環(huán)隊列中,最后由CFAR管理線程合并每個CPU核的檢測結(jié)果。

        4 測試結(jié)果

        本文中使用到的測試數(shù)據(jù)每個CPI的積累點數(shù)為39,每個PRI兩個碼片,每個碼片含兩個波束脈沖壓縮后的數(shù)據(jù),第1個波束的脈沖壓縮數(shù)據(jù)如圖2所示。

        圖2 第1個波束脈壓數(shù)據(jù)

        圖3為FT2000+ CPU上并行執(zhí)行MTD處理的結(jié)果,圖4為CPU和Matlab對相同的脈沖壓縮數(shù)據(jù)完成MTD處理后結(jié)果的差值。如圖4所示,CPU和Matlab MTD處理結(jié)果的差值在10-4左右,滿足雷達(dá)信號處理檢測的誤差要求。

        圖3 第1個波束MTD結(jié)果

        圖4 第1個波束MTD差值

        圖5為FT2000+ CPU上并行執(zhí)行GO-CFAR處理后得到的MTD平面圖,圖6為CPU和Matlab對相同的MTD數(shù)據(jù)完成GO-CFAR處理后得到的MTD平面的差值,結(jié)果顯示,CPU和Matlab GO-CFAR通過檢測的目標(biāo)點一致。

        圖5 第1個波束GO-CFAR結(jié)果

        圖6 第1個波束GO-CFAR差值

        表1是在FT2000+ CPU上并行執(zhí)行的MTD和CFAR模塊使用不同CPU核時的處理時間和加速比。由于軟件中MTD和CFAR處理模塊使用參數(shù)化設(shè)計,測試時可以靈活配置使用的CPU核數(shù)。程序編譯時僅對MTD和CFAR處理模塊的關(guān)鍵計算函數(shù)進(jìn)行O3優(yōu)化,分別統(tǒng)計使用不同數(shù)目CPU核時完成100次處理的平均時間,時間單位為ms,括號中的數(shù)值為并行處理的MTD和CFAR模塊相對于串行程序的加速比。測試結(jié)果如表1中所示,CPU上32核并行的MTD處理程序相對于單核串行程序達(dá)到了13倍的加速,32核并行的GO-CFAR處理程序相對于單核串行程序達(dá)到了19.5倍的加速。對于常規(guī)的雷達(dá)信號處理系統(tǒng),FT2000+ CPU可以滿足處理性能的要求。

        表1 FT2000+/64 CPU上MTD和CFAR并行處理時間和加速比

        表2是在進(jìn)口的Intel Xeon D2183 CPU上并行執(zhí)行的MTD和GO-CFAR模塊使用不同CPU核時的處理時間,時間單位是ms。Intel Xeon D2183 CPU的單核性能強(qiáng)于國產(chǎn)的FT2000+ CPU,但是該處理器只有16個CPU核,而FT2000+ CPU有64個CPU核,通過增加CPU核數(shù),在FT2000+ CPU上并行執(zhí)行的MTD和CFAR模塊可以達(dá)到和Intel Xeon D2183 CPU接近的處理性能。

        表2 Intel Xeon D2183 CPU上MTD和CFAR并行處理時間

        5 結(jié)束語

        隨著雷達(dá)系統(tǒng)技術(shù)的快速發(fā)展,雷達(dá)信號處理的靈活性和國產(chǎn)化需求逐步提高。本文基于國產(chǎn)FT2000+ CPU和銀河麒麟操作系統(tǒng)設(shè)計了并行雷達(dá)信號處理算法,測試結(jié)果顯示,國產(chǎn)FT2000+ CPU上并行處理的MTD和CFAR模塊滿足計算精度和處理時間要求。MTD和CFAR處理模塊使用參數(shù)化設(shè)計,可以根據(jù)雷達(dá)信號處理系統(tǒng)的需要靈活配置核數(shù)和任務(wù)分配策略。對于有國產(chǎn)化需求的雷達(dá)系統(tǒng),使用FT2000+ CPU完成雷達(dá)信號處理功能是一種可行的方案。

        猜你喜歡
        信號處理線程隊列
        隊列里的小秘密
        基于多隊列切換的SDN擁塞控制*
        軟件(2020年3期)2020-04-20 00:58:44
        在隊列里
        《信號處理》征稿簡則
        信號處理(2018年5期)2018-08-20 06:16:02
        《信號處理》第九屆編委會
        信號處理(2018年5期)2018-08-20 06:16:00
        《信號處理》征稿簡則
        信號處理(2018年8期)2018-07-25 12:25:42
        《信號處理》第九屆編委會
        信號處理(2018年8期)2018-07-25 12:24:56
        豐田加速駛?cè)胱詣玉{駛隊列
        淺談linux多線程協(xié)作
        Linux線程實現(xiàn)技術(shù)研究
        国产交换精品一区二区三区| 亚洲中文无码永久免| 无码人妻视频一区二区三区99久久| 亚洲AV秘 片一区二区三区| 一区二区三区日本美女视频 | 色欲AV成人无码精品无码| 国产女主播福利一区在线观看| 日本岛国一区二区三区四区| 夜夜高潮夜夜爽夜夜爱爱一区 | 国产精品亚洲av高清二区| 伊人久久精品无码二区麻豆| 一本色道久久99一综合| 亚洲国产精品500在线观看| 国产一区二区三区资源在线观看| 国产三区二区一区久久| 胸大美女又黄的网站| 欧美日韩国产一区二区三区不卡| 久久精品亚洲精品毛片| av成人资源在线观看| 青青草亚洲视频社区在线播放观看 | 精品国产免费一区二区三区| 久久乐国产精品亚洲综合| 国内精品久久久久久久久蜜桃| 亚洲一区二区三区av天堂| 亚洲久悠悠色悠在线播放| 欧美午夜刺激影院| 中文字幕亚洲欧美日韩在线不卡| 人妻丰满少妇一二三区| 日本一级二级三级不卡| 精品国产这么小也不放过| 久久不见久久见免费视频7| 国产精品美女久久久久浪潮AVⅤ| 免费看片的网站国产亚洲| 中文字幕有码无码人妻av蜜桃 | 国产在线精品观看一区二区三区| 欧美人与善在线com| 欧美巨大巨粗黑人性aaaaaa| 人妻少妇人人丰满视频网站| 亚洲一区二区三区色偷偷| 一本大道熟女人妻中文字幕在线| 国产精品久久毛片av大全日韩|