




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、DSP應用系統(tǒng)設計大作業(yè) 學 號: 姓 名: 日 期: 2014.12.21 指導教師: 馮小平 前兩個題目在后邊題目三題目要求:完成基于TigerSHARC系列DSP的專用處理器軟硬件設計方案的分析和論證。應用領域不限,如雷達信號處理、通信信號處理、雷達偵察系統(tǒng)信號處理、通信偵察系統(tǒng)信號處理、圖像處理等。設計方案應該包含以下內容:1) 任務特點和要求。介紹任務的基本要求、特點、目的、采用的關鍵技術等。2) 處理器技術指標及其實現(xiàn)方法分析。分析處理器的主要指標,以及保證技術指標實現(xiàn)的主要措施和途徑。3) 處理器硬件設計方案。包括主要算法的運算量估計、處理時間估計、DSP選擇(限TS101/TS
2、201)、系統(tǒng)組成、任務劃分、系統(tǒng)硬件資源分配和實現(xiàn)技術方案。應給出詳細的硬件系統(tǒng)原理框圖,并且進行分析論證。對于單板卡系統(tǒng),要求對系統(tǒng)中各DSP的內部存儲器資源、中斷、鏈路口、外部擴展接口(如ADC、DAC、FPGA)等進行詳細的分析說明。對于多板卡系統(tǒng),需要對板間連接方法進行分析說明。4) 處理器軟件設計。軟件設計包括以下主要內容:(1) 系統(tǒng)工作總流程及其分析說明。(2)主要算法的實現(xiàn)流程和分析說明。(3)各DSP的工作流程和分析說明。5) 主要模塊程序。題目一編寫利用FFT實現(xiàn)脈壓的ADSP測試程序,DSP平臺為TigerSHARC處理器,編程語言不限,完成脈壓計算。(1) 波形數(shù)據(jù)的
3、采樣頻率為20MHz,信號的調頻帶寬110MHz可以選擇,脈沖寬度20200us可以選擇。(2) 將MATLAB中產(chǎn)生的零中頻線性調頻信號的波形數(shù)據(jù),導入VDSP+中,利用軟件的仿真功能,運行程序,并且觀察結果。(3 )統(tǒng)計計算脈壓前后脈沖寬度的變化,脈壓的增益。(4) 比較不同窗函數(shù)對脈壓輸出脈沖幅度增益和時域寬度的影響。(5) 統(tǒng)計不同條件下的運行周期數(shù)。一、基本理論 隨著現(xiàn)代技術的發(fā)展,對雷達的作用距離、分辨率和測量精度等性能指標提出了越來越高的要求。為了增加雷達系統(tǒng)的檢測能力,要求增大雷達發(fā)射的平均功率。在峰值功率受限時,要求發(fā)射脈沖盡量寬,而為了提高系統(tǒng)的距離分辨率,又要求發(fā)射脈沖盡
4、量窄,提高雷達距離分辨率同增加檢測能力是一對矛盾。作為現(xiàn)代雷達的重要技術,脈沖壓縮有效地解決了雷達分辨率同平均功率間的矛盾,并在現(xiàn)代雷達中廣泛應用。線性調頻是最早和發(fā)展最充分的脈沖壓縮技術。它通過對雷達載波頻率進行調制以增加雷達的發(fā)射帶寬并在接收時實現(xiàn)脈沖壓縮。線性調頻波形由寬度T=t2-t1的矩形發(fā)射脈沖組成,如圖1-1(a)所示。載波頻率f在脈沖寬度內按照作線性掃頻變化,圖1-1(b)所示。 t1 t2 時間 t1 t2 時間 圖1-1(a) 圖1-1(b) 雷達接收機中的脈沖壓縮濾波器與發(fā)射波形相匹配,因此使接收機信號經(jīng)歷依賴于頻率的延遲。如圖1-2(a)所示,在色散延遲線的輸出端,接收
5、信號中的低頻分量比高頻分量經(jīng)歷較長的延遲。將接收機設計成延遲跟頻率成比例,比例因子為發(fā)射波形的負斜率(用時間頻率表示);即接收機構成一個與發(fā)射波形相匹配的濾波器。脈沖壓縮濾波器的輸出信號可用比發(fā)射包絡更高而脈沖寬度更窄的包絡來表征,如圖1-2(b)所示。 圖1-2(a) 圖1-2(b) 對線性調頻波形的解析式的討論表明,脈沖壓縮寬度由下式給出:其中,B為發(fā)射信號帶寬,為輸出脈沖- 4dB主瓣寬度。因此,脈沖壓縮比由下式給定(其中T為發(fā)射信號時寬):因為B為雷達發(fā)射信號帶寬,所以TB被定義為系統(tǒng)的時間帶寬乘積。脈沖壓縮雷達的距離分辨力為(c為光速):對于一般的線性調頻信號,如果令載波信號頻率f0
6、在脈沖寬度內按以下方式被線性調頻:式中調頻斜率由下式給出:則一個復的線性調頻信號可以表示為:其中 為矩形包絡,A為信號幅度,f0為信號載頻。 線性調頻信號的脈沖壓縮是通過匹配濾波器實現(xiàn)的,根據(jù)匹配濾波理論,匹配濾波器頻率特性為:K為比例因子,t0為與濾波器實現(xiàn)有關的一個時延。一般當TB>30時,可以認為線性調頻脈沖具有矩形振幅頻譜。因此,其匹配濾波器也應具有矩形帶通振幅特性。為了簡化分析,在不改變所得結論正確的前提下,我們將高頻帶通系統(tǒng)等效為零中頻低通系統(tǒng)。二、實現(xiàn)方案 根據(jù)時域卷積定理 用頻域快速卷積法實現(xiàn)脈沖壓縮其中S(n)為線性調頻信號,h'(n)為匹配濾波器,y(n)為脈
7、壓輸出。三、程序實現(xiàn)1、MATELAB仿真結果(1)線性調頻信號(2)脈沖壓縮結果2、DSP輸入數(shù)據(jù)的產(chǎn)生下面的Matlab程序為DSP計算生成必要的數(shù)據(jù),主要有Chirp信號數(shù)據(jù),匹配濾波器系數(shù)及窗函數(shù)權值。% 為ADSP 程序提供輸入數(shù)據(jù):線性調頻信號、理想匹配系數(shù)、加窗的理想匹配系數(shù) %SLfm = SLfm,zeros(1,FFTNumber-Number);fid = fopen('E:PulseCompactSLfm.dat','wt'); %線性調頻信號(時域)for i = 1:FFTNumberfprintf(fid,'%8.8e,n&
8、#39;,real(SLfm(i);fprintf(fid,'%8.8e,n',imag(SLfm(i);endfid = fopen('E:PulseCompactMatchCoeff_fft.dat','wt'); %頻域脈沖壓縮系數(shù)for i = 1:FFTNumberfprintf(fid,'%8.8e,n',real(MatchCoeff_fft(i);fprintf(fid,'%8.8e,n',imag(MatchCoeff_fft(i);endfid = fopen('E:PulseCompa
9、ctMatchCoeffHam_fft.dat','wt');%加哈明窗后的頻域脈沖壓縮系數(shù)for i = 1:FFTNumberfprintf(fid,'%8.8e,n',real(MatchCoeffHam_fft(i);fprintf(fid,'%8.8e,n',imag(MatchCoeffHam_fft(i);endfclose(fid);四、結果分析圖三為零中頻線性調頻信號采樣序列的頻譜,見下圖:(圖三)圖四為未加窗脈沖壓縮結果,見圖四:(圖四)最大值附近的數(shù)據(jù)及主瓣附近數(shù)據(jù)圖形:圖五為匹配濾波器在時域內加哈明窗,進行脈沖壓縮
10、后的結果。(圖五)最大值附近的數(shù)據(jù)及主瓣附近數(shù)據(jù)圖形:圖六為匹配濾波器在時域內加哈明窗,進行脈沖壓縮后的結果最大值附近的數(shù)據(jù)及主瓣附近數(shù)據(jù)圖形:最大值附近的數(shù)據(jù)及主瓣附近數(shù)據(jù)圖形:統(tǒng)計結果分析見下表:第一副瓣主瓣峰值3db脈沖寬度未加窗-13.4db8004個采樣周期哈明窗-43.6db4327個采樣周期布萊克曼窗-6.7db336.84個采樣周期 運行周期統(tǒng)計: 采樣點數(shù)N運行周期數(shù)2000816714800184192基于ADSP-TS101的雷達信號處理機實現(xiàn)一、 任務要求和特點1.背景知識廣義信號處理的分支,其研究對象是海、陸、空用搜索、引導及跟蹤等不同體制的雷達信號處理,利用相關、卷
11、積、濾波、自適應濾波及恒虛警處理等方法從強雜波背景中分離出感興趣目標的信息,即座標、速度、起伏特性及譜特性等參數(shù),并利用這些特征來檢測目標或引導動載工具正確接近預定目標。近代最先進的雷達信號處理技術主要用于軍用雷達,在空中交通管制、導航及氣象等民用領域?,F(xiàn)代雷達廣泛采用了數(shù)字信號處理技術,用于實現(xiàn)脈沖壓縮、動目標顯示(MTI),動目標檢測(MTD),恒虛警處理(CFAR)等功能。2.任務要求特點概述本文介紹的雷達信號處理機,采用ADI公司的DSP芯片TS101為主要信號處理器件,利用DSP軟件編程完成信號處理算法的實現(xiàn),可以在相同的硬件平臺上實現(xiàn)不同的處理任務。特點是系統(tǒng)集成度高,體積小且功能
12、強大。結構靈活,可以根據(jù)需求改變備量,具有較強的通用性和可擴展性。二、 處理器技術指標及其實現(xiàn)方法分析本文實現(xiàn)基于通用DSPTSl01的雷達信號處理機。該信號處理機主要由脈沖壓縮(PC),動目標檢測(MTD),自動角測量,恒虛警處理(CFAR)等幾個模塊組成。具體實現(xiàn)方法與分析見三(處理器硬件設計方案)。三、 處理器硬件設計方案1. ADSP-TS101簡介系統(tǒng)運算量及時間要求,信號處理板需采用多DSP并行處理的結構,為達到高速浮點處理能力、高數(shù)據(jù)吞吐率及大內存空間的要求,DSP芯片選用ADSP-T101,它是ADI公司的TigerSHARC數(shù)字信號處理器。它具有以下特點:(1)核時鐘頻率。T
13、S101有兩種型號,一種內部核時鐘頻率可以達到300MHz,即指令周期3.3ns。另一種內部核時鐘頻率可達250MHz,即指令周期4ns。(2)片內兩個計算塊X和Y。每個運算塊有一個64bitALU,一個乘法器,一個64bit移位器和一個由32個寄存器構成的寄存器組,可以執(zhí)行定點和浮點的算術邏輯等通用運算。而SHARC DSP只有一個計算塊,相比之下TS101具有更強的運算能力。(3)三條內部地址/數(shù)據(jù)總線。每條總線都連接到三個內部存儲器塊中的一個。三條總線都是128bit寬,可以在任何一個周期使用任意一條總線傳送多達四條指令或四個對其的數(shù)據(jù)。這樣TS101內核可以在任何一個周期并行訪問三個存
14、儲塊,一個取指令,兩個訪問數(shù)據(jù)。(4)有兩個整數(shù)算術運算邏輯單元J-IALU和K-IALU。每個IALU都包含一個寄存器堆和8個專用的循環(huán)緩沖寄存器。兩個IALU能提供更強大的地址產(chǎn)生能力和通用的整數(shù)操作。(5)有6M位的大容量片內SRAM。分為三個2M位的存儲塊M0、M1和M2,每一個存儲塊都能夠單獨存儲程序、數(shù)據(jù)或同時存儲程序和數(shù)據(jù)。(6)DMA控制器。其擁有14個DMA通道,提供了在處理器核不干預條件下的零開銷數(shù)據(jù)傳送。(7)SDRAM控制器。SDRAM的地址、數(shù)據(jù)引腳可以與TigerSHARC的直接相連。另外,TigerSHARC提供專用的尋址空間來支持SDRAM。(8)4個鏈路口。其
15、支持點對點的高貸款數(shù)據(jù)傳送,通過單個鏈路口可以以250Mbytes/s的速率進行數(shù)據(jù)傳輸。四個鏈路口為處理器與處理器之間的通訊提供了一個良好的途徑,總吞吐量多達每秒1Gbytes。(9)多處理器特性。當單個DSP芯片組成的系統(tǒng)不能滿足處理要求時,TS101通過外部口或者鏈路口與其它TS101相連構成多處理器系統(tǒng)。TS101的外部總線支持多達8個DSP外加Host處理器的并行總線連接。在構成多處理器系統(tǒng)時,處理器之間無論是采用共享總線方式,還是采用鏈路口相連方式,都不需要任何外加控制,實現(xiàn)無縫連接,在并行總線上可以以800Mbytes/s的速率進行數(shù)據(jù)傳輸。2.雷達信號處理機簡介雷達信號處理系統(tǒng)
16、由中頻信號相干檢波模塊、脈沖壓縮模塊、相參積累、參數(shù)檢測(包含速度、距離、方位角等參數(shù)的MTD)和恒虛警處理及大部分組成。中頻信號相干檢波模塊主要工作為:對AD變換后送來的25M中頻信號進行相干檢波,使數(shù)字回波信號變成分離為I、Q兩路的零中頻信號,然后對其進行抽樣處理,最后把抽樣后的數(shù)據(jù)打包成32bit送往脈沖壓縮模塊。其中低16bit為I路信號,高16位為Q路信號。其系統(tǒng)原理如圖所示: 圖1 雷達信號處理機系統(tǒng)原理如圖1所示,中頻信號相干檢波模塊將和差兩路信號分別送入和路差路脈沖壓縮模塊,兩路脈沖壓縮各自獨立運行,把脈壓結果送入相參積累,經(jīng)過相參積累后系統(tǒng)的信噪比有所提高,利于檢測模塊對距離
17、、速度、方位角等參數(shù)的檢測,當完成這些工作后。結合檢測后的數(shù)據(jù)與初始判定門限進行恒虛警處理。該雷達信號處理機一共用三片TSl01完成相干檢波后信號處理,其硬件結構如圖2所示。圖2給出了主要的芯片以及各芯片之間的信號連接關系。其中,TSl01一A和TSl01一B分別完成和路和差路數(shù)據(jù)的脈沖壓縮,TSl01-C完成相參積累、MTD檢測、角度測量、CFAR處理等工作。TSl01一A和TSl01一C采用EPROM引導方式,TSl01-3采用鏈路口引導方式。在對引導芯片EPROM-A作配置時,除了在EPROM-A中裝載和路脈壓片(A)所需的程序及相關參數(shù)以外,還要將差路脈壓片(B)所需的程序及相關參數(shù)一
18、并裝載。當TSl01一A經(jīng)EPROMA成功引導后,它不僅從EPROM中獲得了自身正常運行所需的程序和相關參數(shù),而且也獲得了差路(B)所需的相關程序信息;通過硬件連接的鏈路口1(A)和鏈路口0(B),TSl01-B經(jīng)鏈路口引導,從TSl01一A中加載自身程序運行所需的相關信息。從圖中可以看出,脈沖壓縮和檢測片之間采用鏈路口傳輸數(shù)據(jù)信息,其中和路脈沖壓縮后的數(shù)據(jù)利用TSl01一A和TSl01一C各自的鏈路口0傳輸,差路脈沖壓縮后的數(shù)據(jù)利用TSl01-B和TSIOI-C各自的鏈路口l傳輸。這樣的設計主要考慮到TSl01-C在作數(shù)據(jù)檢測時需要頻繁的和外部SDRAM交換信息,利用TSl01的鏈路口一方面
19、充分利用了器件本身的硬件資源,另一方面也避開了多個設備同時請求總線時造成的總線沖突,提高了系統(tǒng)的運行速度。 圖2 雷達信號處理機硬件結構簡圖不論和路還是差路脈沖壓縮,除了引導方式不同以外,其工作原理與實際工作流程是完全一致的,因此,TSl01一A和TSl01一B有部分管腳接收同樣的控制信息,如圖所示:差轉控制提示當前差路信號接收的是航向差還是俯仰差信號;狀態(tài)標志01共同標志當前脈沖重復周期、脈寬是處于何種狀態(tài):同步脈沖中斷到來時,提示前端開始往TSl01輸送數(shù)據(jù)(經(jīng)過相干檢波后的數(shù)據(jù)),TSl01根據(jù)此中斷信號決定何時裝載DMA;前端每傳輸一個數(shù)據(jù),發(fā)送一次DMA請求,DMA傳輸根據(jù)請求相應的
20、從外部總線傳輸一個數(shù)據(jù)到內部存儲器。TSl01一C的狀態(tài)改變輸出則是由檢測后的結果決定。四、處理器軟件設計1.脈沖壓縮的實現(xiàn)現(xiàn)代飛行技術的飛速發(fā)展,對雷達的作用距離、分辨能力、測量精度和單值性等性能指標提出了越來越高的要求。測距精度和距離分辨力對信號形式的要求是一致的,主要取決于信號的頻率結構,為了提高測距精度和距離分辨力,要求信號具有大的帶寬,而測速精度和速度分辨力則取決于信號的時域結構,為了提高測速精度和速度分辨力,要求信號具有大的時寬。除此之外,為了提高雷達系統(tǒng)的發(fā)現(xiàn)能力,要求雷達信號具有大的能量。由此可見,為了提高雷達系統(tǒng)的發(fā)現(xiàn)能力、測量精度和分辨力要求雷達信號具有大的時寬、帶寬能量乘
21、積。但是在系統(tǒng)的發(fā)射和饋電設備峰值功率受限的情況下,大的信號能量只能靠加大信號的時寬來得到。測距精度和距離分辨力同測速精度和速度分辨力以及作用距離之間存在著不可調和的矛盾。為了解決這個矛盾,人們提出了脈沖壓縮理論,脈沖壓縮技術的實現(xiàn)是指雷達通過發(fā)射機發(fā)射款脈沖信號而接收信號經(jīng)過壓縮處理后獲得窄脈沖的過程,脈沖壓縮可以使雷達在峰值發(fā)射功率大大降低的情況下同時獲得長脈沖的高能量和短脈沖的分辨率兩方面的優(yōu)點,它較好的解決了雷達脈沖峰值功率受限和距離分辨率之間的矛盾。同時,寬脈沖的使用可以使多普勒系統(tǒng)的分辨率提高,相應提高速度分辨率。由于脈沖壓縮技術是對回波信號做相關處理,故系統(tǒng)還具有較高的抗干擾性。
22、本系統(tǒng)脈沖壓縮分為和差兩路,兩路脈壓分別對前端的和路回波和差路回波進行脈沖壓縮處理。和路脈沖壓縮的結果用于目標距離、速度的檢測以及在測角時作為基準信號;差路脈壓信號用于航向俯仰誤差角測量。和路脈沖壓縮片在系統(tǒng)啟動時,采用EPROM引導方式,從EPROM中載入程序及相關參數(shù)(包含差路脈壓所需的程序和參數(shù)),在對自身(DSP)做初始化的同時,通過與差路脈壓片硬件相連的鏈路口對差路脈壓片進行引導,完成差路脈壓片的程序及參數(shù)裝載。除了引導方式不同以外,和路、差路脈壓工作原理與程序流程完全一致。圖3給出了脈沖壓縮程序的流程圖以及時序圖。以和路脈沖壓縮為例,說明脈沖壓縮的實現(xiàn)過程。1.1 程序及系數(shù)調入如
23、圖2所示,我們對TSl01-A采用EPROM啟動方式,在硬件設計時將BMS引腳設置為低。這樣當系統(tǒng)加電時,TSl01檢測到BMS為低電平則會自動將程序及相關參數(shù)由EPROM載入。在整個脈沖壓縮過程中,系統(tǒng)運算所設計的參數(shù)主要為三種狀態(tài)的旋轉因子以及對應各個狀態(tài)的匹配濾波器系數(shù)。旋轉因子及匹配濾波器系數(shù)均由MATLAB軟件產(chǎn)生,其中,我們將原始線性調頻信號匹配濾波器系數(shù)與海明窗函數(shù)在MATLAB中預先進行頻域相乘,把其結果作為最后載入DSP的匹配濾波器系數(shù),這樣,在DSP處理時就可省略脈壓過程中的窗函數(shù)濾波過程,一定程度上節(jié)省了硬件資源,節(jié)省了整個程序運行指令周期,提高了效率。 圖3 脈沖壓縮程
24、序流程圖及時序圖為了在程序處理時最大可能的利用TSl01的總線資源,提高脈壓處理的速度,針對TSl01 6Mbit片上存儲區(qū)分為MO,M1,M2三個區(qū)域及其各區(qū)域可具有獨立總線的優(yōu)點,我們將程序代碼放在片上存儲區(qū)MO,旋轉因子及匹配濾波器系數(shù)放在M2,而輸入及輸出乒乓存儲區(qū)設置到M1,這樣在進行脈壓處理中最耗時間的FFT和IFFT運算時,便可充分利用TSIOI的指令并行優(yōu)勢,試驗證明,這樣設置比將所有參與運算的數(shù)據(jù)采用其他任何方式存放至少節(jié)省10的指令周期。1.2 相干檢波后的數(shù)據(jù)輸入DSP的直接內存訪問(DMA)方式可以在不干擾內核操作的情況下獨立運行,對于外部脈壓數(shù)據(jù)的輸入,我們采取了中斷
25、處理與外部DMA傳輸相結合的方式。當系統(tǒng)初始化完成后,TS101等待IRQ0中斷,中斷到來時,TS101進入IRQ0中斷程序,完成外部DMA參數(shù)預裝處理后,關閉IRQ0中斷,開啟外部DMA中斷。此時,DMA的源地值可為TS101外部存儲器映射中任意地址,目的地址為內部存儲區(qū)M1中輸入乒乓存儲區(qū)其中一個。每一次外部相干檢波模塊送數(shù)據(jù)至數(shù)據(jù)總線低32Bit時,同時通過DMAR0引腳向TS101發(fā)送DMA請求,每接受一次請求,DMA進行一個數(shù)據(jù)的傳遞,同時DMA的傳輸數(shù)據(jù)值總量減一。當DMA的傳輸數(shù)據(jù)值總量減為零時,本次DMA結束,DMA中斷產(chǎn)生,TS101進入DMA中斷程序,在DMA中斷程序中,重
26、新打開IRQ0中斷,關閉外部DMA中斷,同時在程序中,將DMA結束標志變量景1,把下一次DMA參數(shù)中的目的地址指針指向輸入乒乓存儲區(qū)的另外一個。因為采用了上述方式,在整個脈壓過程中,主程序完全不用考慮外部數(shù)據(jù)的傳輸過程,只需在每次脈壓處理之前檢測DMA結束標志變量是否為1,然后直接調用乒乓存儲區(qū)的數(shù)據(jù)即可進行后續(xù)處理。1.3 脈沖壓縮處理及數(shù)據(jù)輸出外部送入的數(shù)據(jù)采用32Bit數(shù)據(jù)寬度,其中高16位為I路信號,低16位為Q路信號,因此,在進行FFT之前,必須將乒乓存儲區(qū)中的數(shù)據(jù)解包,同時為避免定點數(shù)據(jù)運算溢出時舍位所造成的誤差,必須將解包后的數(shù)據(jù)轉換為浮點數(shù)據(jù)。定點轉浮點程序運行前首先對DMA結
27、束標志進行循環(huán)判斷,如果其值為1,表示DMA傳遞結束,可以進入數(shù)據(jù)轉換,否則將繼續(xù)等待。一旦進入定浮轉換程序,首先要將DMA結束標志置0以避免下次循環(huán)出現(xiàn)錯誤操作。脈壓程序根據(jù)FLAG0,F(xiàn)LAG1的值確定當前脈沖壓縮處于何種狀態(tài),載入對應的旋轉因子以及匹配濾波器系數(shù)。而在實際工作中雷達只需檢測目標距離,速度,方位角等信息。故脈壓結果的幅度值絕對大小對目標檢測沒有大的影響,為了減少運算周期,所以IFFT程序中沒有把脈壓結果值與傅立葉變換點數(shù)N相除。由于FFT程序與IFFT程序原理基本一致,故只需對FFT程序中涉及旋轉因子的相應計算的加減號加以修改,修改后的FFT程序即可成為IFFT程序,而且兩
28、個程序可調用相同旋轉因子,極大的節(jié)省了固定數(shù)據(jù)所占的內存空間。當脈壓過程結束后,需將結果送入?yún)?shù)檢測模塊。TSl01具有14個獨立的DMA通道,其鏈路口操作也是采用DMA傳輸模式,所以我們在實際設計時只需裝載對應的鏈路口DMA參數(shù)即可。如圖2所示,參數(shù)檢測模塊與脈沖壓縮模塊有一組鏈路口設計為硬件連接,一旦接收方與發(fā)送方在彼此對應的鏈路口都裝載完各自的DMA參數(shù)后,數(shù)據(jù)傳輸就開始在不干擾內核運行的情況下自動進行。1.4 脈沖壓縮處理工作時序我們以狀態(tài)1說明工作時序(圖3),1狀態(tài)脈沖重復周期為200us,外部輸入數(shù)據(jù)600點(5MHZ數(shù)據(jù)流),所需時間120us,而DMA的傳輸速度遠高于數(shù)據(jù)輸出
29、率,可以認為當數(shù)據(jù)輸入結束后,外部DMA傳輸同時結束,DSP在200MHZ主頻下,完成整個脈沖壓縮過程所需時間為1 185us,鏈路口傳輸時鐘設置為14核心時鐘(DIV4),即50M,其傳輸完1024點復數(shù)所需時間約為80us。在圖中prt為脈沖重復周期,e_dma表示外部DMA傳送周期,ope_t為脈沖壓縮處理周期,l_dma為脈壓結果經(jīng)鏈路口輸出數(shù)據(jù)至檢測模塊周期。對于prt其高電平為雷達發(fā)射脈沖時間,低電平表示接收回波時間。其它的高電平表示工作時間,低電平為等待時間。其他兩種狀態(tài)時序與1狀態(tài)基本一致,只是周期相應縮短而己。顯然,脈沖壓縮模塊的實時性得到了很好的滿足。2.參數(shù)檢測模塊的實現(xiàn)
30、參數(shù)檢測模塊主要通過相參積累,模平方最大值求取等一系列運算完成距離、速度、角度等參數(shù)的檢測,同時,根據(jù)參數(shù)決定雷達的工作狀態(tài)及完成恒虛警處理。2.1 主程序如圖4所示,系統(tǒng)啟動時,DSP首先對程序運行所需的各個狀態(tài)參數(shù)進行初始化。這些參數(shù)包括:三種狀態(tài)下的DMA傳送參數(shù)(鏈路口DMA和外部DMA)、每一種狀態(tài)的積累周期數(shù)、初始門限、狀態(tài)切換點、以及部分標志變量等;另外,由于該DSP外接一個外部存儲器,必須在程序運行前對此外部存儲器做初始化。圖4 參數(shù)檢測主程序初始化完成后,從外部端口讀取程序所需的狀態(tài)信息,這個狀態(tài)信息主要標識當前雷達的脈沖重復頻率、脈沖寬度。根據(jù)這個狀態(tài)信息確定到底在DMA裝
31、載時應該載入哪一個狀態(tài)的值。同時,一旦狀態(tài)確定,其對應的積累周期內的脈沖數(shù)、狀態(tài)切換點,恒虛警處理時的參考單元數(shù)等也相應確定。DSP在初始化時,已對各狀態(tài)的參數(shù)加以定義,這時,程序只需根據(jù)外部端口讀入的狀態(tài)信息對后續(xù)程序所需的變量做相應配置即可。主程序核心部分為一個循環(huán),循環(huán)涉及兩個變量判斷,一個是跟蹤啟動標志變量,另一個為狀態(tài)改變標志變量,初始化時這兩個變量均為0。循環(huán)開始時,首先對狀態(tài)改變標志作判斷,如果其值為0,則對跟蹤啟動標志判斷,該標志為0,表示雷達目前沒有發(fā)現(xiàn)目標,程序進入搜索子程序,雷達進行大范圍搜索,直到發(fā)現(xiàn)目標為止。如果該標志為1,證明雷達在搜索狀態(tài)發(fā)現(xiàn)有目標存在,這時候,信
32、號處理機應該對目標信息作進一步的測量,并將信息送至雷達天線飼服機構,以控制天線始終對準目標,這一切工作均由跟蹤子程序完成。如果進入循環(huán)前,檢測到狀態(tài)改變標志為1,則說明目標運動到狀態(tài)切換點上,為了更好的跟蹤目標,需要對雷達的工作狀態(tài)作切換,主程序跳出循環(huán)。需要注意的是,信號處理部分并非馬上開始下一個狀態(tài)的工作,而是必須等待鏈路口DMA將當前傳輸數(shù)據(jù)操作完成。因為TSl01的DMA操作不允許往當前正在傳遞數(shù)據(jù)的DMA重新寫入新的傳輸參數(shù),如果強行執(zhí)行,只會導致該DMA鎖死。而且,鏈路口的DMA是和前端脈壓鏈路口DMA成對使用的,如果中止自己的鏈路口傳輸,必然會導致脈壓部分的鏈路口傳輸同時中止,引
33、起時序上出現(xiàn)混亂。為此必須循環(huán)判斷鏈路口DMA傳輸是否結束。一旦鏈路口DMA傳輸結束,TSl01發(fā)出狀態(tài)改變以及新狀態(tài)信息,同時將狀態(tài)改變標志清零。然后讀取外部端口信息并加以判斷(外部端口信息來自于一片F(xiàn)PGA,該FPGA主要用于控制信號處理各部分協(xié)同工作)。當檢測到新狀態(tài)開始指令后,程序返回配置變量處,用對應于新狀態(tài)的各參數(shù)替換狀態(tài)改變前的變量值,然后開始新的循環(huán)。2.2 搜索子程序進入搜索子程序后,首先需要對鏈路口DMA做初始化,因為搜索狀態(tài)只需對和路數(shù)據(jù)做檢測。因此在搜索子程序中對于差路數(shù)據(jù)在傳輸時只將其固定的送至片內一個地址區(qū)??紤]到其不參與運算,一個脈沖周期傳送結束后,下一個脈沖周期
34、仍然將數(shù)據(jù)放至同一地址。對于和路數(shù)據(jù),需要對整個距離域作相參積累,因此必須對積累周期的每一組數(shù)據(jù)都保存??紤]到相參積累的主要操作為FFT運算(FFT運算對其輸入數(shù)據(jù)采用位反序尋址),在DMA將數(shù)據(jù)傳輸?shù)酵獠縎DRAM的同時,應該完成數(shù)據(jù)重排。假設每一個脈沖周期傳送數(shù)據(jù)點數(shù)為N,參與積累的脈沖周期數(shù)為K,則數(shù)據(jù)重排后,每一個周期的第i點數(shù)據(jù)和第i+1點數(shù)據(jù)之間地址間隔為2K(每一點數(shù)據(jù)都為復數(shù),需要占兩個地址單元),即跳址存儲,經(jīng)過DMA傳輸后,在外部SDRAM的數(shù)據(jù)排列直接表現(xiàn)為同一個距離門的數(shù)據(jù)連續(xù)存放,這樣為后面的FFT運算帶來了方便。設置完DMA參數(shù)后,程序循環(huán)檢測積累周期的數(shù)據(jù)傳送是否
35、結束,一旦傳送結束,啟動外部DMA,將外部SDRAM中的數(shù)據(jù)逐段載入內部存儲器,實際操作時,一段數(shù)據(jù)量為32×128點數(shù)據(jù)(第一種狀態(tài)32個距離門的數(shù)據(jù)、第二種狀態(tài)16個距離門的數(shù)據(jù)、第三種狀態(tài)8個距離門的數(shù)據(jù)),每一次外部DMA傳送結束,以中斷方式開始下一次DMA傳送,直到將積累周期內的數(shù)據(jù)全部傳送至內部SRAM。為此,DMA的目的地址對應一個乒乓存儲區(qū)。FFT取數(shù)與DMA輸入數(shù)據(jù)交替使用乒乓存儲區(qū)的不同區(qū)間。圖5 搜索子程序流圖程序對外部DMA送來的數(shù)據(jù)進行FFT以及模平方最大值求取運算,將最大值對應的距離點i和最大值j記錄下來。這個過程循環(huán)進行,直到積累周期內的數(shù)據(jù)全部完成運算
36、。接下來將最大值j,與初始門限作比較,如果j小于初始門限,返回搜索程序入口。反之,認定雷達發(fā)現(xiàn)目標,記錄j對應的值i,向外部設備發(fā)出目標截獲信息,等待外部其他設備發(fā)出準備好的反饋信息。收到反饋信息后,將跟蹤啟動標志置1后返回主程序。2.3跟蹤子程序在跟蹤狀態(tài),需要檢測目標的角度信息,因此需要在積累周期內將和路差路數(shù)據(jù)都傳送至外部SDRAM,由于最后參與角度運算的只需要差路一個距離門的數(shù)據(jù),因此對于差路數(shù)據(jù)的鏈路口DMA傳送時,沒有進行數(shù)據(jù)重排而采用順序存儲方式。這樣可以減少DMA傳送時的總線沖突,提高傳輸速度。和路傳送方式與搜索狀態(tài)一致。當積累周期數(shù)據(jù)傳送完畢后需要對相關數(shù)據(jù)進行相參積累,與搜
37、索狀態(tài)不同的是此時不需要對整個距離域進行運算。前面已經(jīng)提到搜索狀態(tài)對最大值對應的距離點i作了記錄,因此已經(jīng)獲取了目標初步的距離信息,我們只對i點本身以及其前后各L(三種狀態(tài)工分別為:Ll=20、L2=10、L3=5)個點對應的距離門數(shù)據(jù)作相參積累即可。對于積累完的數(shù)據(jù),需要從其中找出模最大值x并記錄其對應的多普勒通道N1和距離門N2,如果x大于門限,記錄對應該點的求模運算前的數(shù)據(jù)Y(復數(shù))。并以N1、N2作為下次跟蹤的參考點。將對應距離門N2的差路數(shù)據(jù)通過外部DMA載入內部存儲器,需注意的是,因為數(shù)據(jù)在存儲至SDRAM時沒有進行數(shù)據(jù)重排,所以在DMA取數(shù)時必須按跳址方式取數(shù),數(shù)據(jù)點與點之間的地
38、址差為2N(N為脈壓后的數(shù)據(jù)點數(shù))。對這一組差路數(shù)據(jù)作FFT后求出最大值并記錄對應的數(shù)據(jù)Y。有了上述信息,求出角度誤差占(具體為航向還是俯仰角由脈壓模塊所發(fā)的識別信息決定),求出多普勒頻移發(fā)fd,依據(jù)公式fd=2v/(v為目標速度、為雷達發(fā)射信號波長)求出目標速度。根據(jù)當前狀態(tài)以及N2,判斷是否需要切換雷達工作狀態(tài)。如果需要切換狀態(tài),需要在發(fā)送信息之前,將狀態(tài)改變標志置l。在輸出了角度、速度、距離、狀態(tài)等信息后,需要根據(jù)回波信號作恒虛警處理。我們以N2:距離門FFT后的數(shù)據(jù)作為測量標準,以Nl點作為檢測單元,兩邊各空出兩個單元作為保護單元,選用GO-CFAR(選大統(tǒng)計恒虛警),其參考單元數(shù)設為
39、16,對兩邊參考單元數(shù)據(jù)求和取平均,然后選取其中的大者與一固定值相乘后作為動態(tài)門限實現(xiàn)恒虛警。如圖5所示,雷達如果在前一個積累周期處于跟蹤狀態(tài),當前周期經(jīng)過相參積累后發(fā)現(xiàn)記錄區(qū)內沒有新的數(shù)據(jù),此時雷達并不馬上轉入搜索狀態(tài),而是進入記憶跟蹤,在記憶跟蹤狀態(tài),輸出目標丟失前的相關數(shù)據(jù),如果在5秒后仍然沒有檢測到新的信息,雷達認定目標丟失,將跟蹤啟動標志置0后返回主程序。圖 6 跟蹤子程序流程圖附部分仿真結果圖7 DSP誤差圖8 MTD圖9 MTI圖10 PC圖11 恒虛警5通道圖12 恒虛警所有多普勒通道五、主要模塊程序1主程序main:#include <defts201.h>#in
40、clude <stdlib.h>#include <math.h>#include <stdio.h>#include <stats.h> / 使用 float meanf(const float *_a, int _n);#include <sysreg.h> / 使用系統(tǒng)計數(shù)器#include <FFTDef.h>#include "parameter.h" /雷達各參數(shù)設定#include "var.h" /外部定義變量extern fft_flp32(float *,floa
41、t *,float *,float *,int,int); / 8192點FFTextern fft_16(float *,float *,float *); / 16點FFTextern ComplexVectorDotProduct(float *, float *, int, float *); / 復數(shù)點乘volatile inttmp_i0,tmp_i1; /用于計數(shù)(程序各段計時)void main() int i,j,k,n,temp_index; float ref_left,ref_right,ref,ref_Alpha; tmp_i0 = _builtin_sysreg_r
42、ead( _CCNT0 ); / read initial cycle count for(i=0;i<N;i+) fft_input_ampi=sqrt(fft_input2*i*fft_input2*i+fft_input2*i+1*fft_input2*i+1); i=0; /斷點, 繪圖觀察脈沖回波信號幅度 /* 頻域脈壓過程(匹配濾波頻域實現(xiàn)) */ tmp_i0 = _builtin_sysreg_read( _CCNT0 ); / read initial cycle count fft_flp32(fft_input, ping_pong_buffer1 ,ping_po
43、ng_buffer2 ,fft_output ,N ,COMPLEX);/做復數(shù)FFT :X(k)=DFTx(k); ComplexVectorDotProduct(fft_output,coeff_fft,N,pc_fft); /做復數(shù)點乘:Y(k)=X(k)*H(k); /做復數(shù)IFFT:y(k)=IFFTY(k)=(1/N) * conj DFTconjY(k) ;分三步來完成:(1)conjY(k);(2) DFTconjY(k);(3)(1/N) * conj DFTconjY(k) /第一步:fft_input= conjY(k); for(i=0;i<N;i+) fft_i
44、nput2*i=pc_fft2*i; fft_input2*i+1=-pc_fft2*i+1; /第二步 :fft_out=DFTfft_input=DFTconjY(k); fft_flp32(fft_input , ping_pong_buffer1 ,ping_pong_buffer2 ,fft_output ,N ,COMPLEX); /第三步 :y(k)=pc_freq0=(1/N) * conjfft_out=(1/N) * conj DFTconjY(k) ; for(i=0;i<N;i+) pc_freq02*i=fft_output2*i/N; pc_freq02*i+
45、1=-fft_output2*i+1/N; /*到此完成了脈沖壓縮,也就是完成了匹配濾波*/ tmp_i1 = _builtin_sysreg_read( _CCNT0 ); / read final cycle count printf("the cycle count for compress in frequency space = %dn", tmp_i1 - tmp_i0); /* print the cycle count */ /* 去掉暫態(tài)點*/ for(i=0;i<M;i+) /#define TempPointNumber 41/前暫態(tài)點的個數(shù)可以
46、認為是濾波系數(shù)個數(shù)減一后的一半。 pc_freq12*i=pc_freq02*(i+TempPointNumber-1); pc_freq12*i+1=pc_freq02*(i+TempPointNumber-1)+1; / 計算脈壓后的幅度(去除暫態(tài)點后) for(i =0;i<M;i+) PCi=sqrt(pc_freq12*i*pc_freq12*i+pc_freq12*i+1*pc_freq12*i+1); i=0;/斷點 ,觀察脈壓后結果(窄脈沖幅度)。 /* MTI * */ tmp_i0 = _builtin_sysreg_read( _CCNT0 ); /一次對消(鄰近雙
47、脈沖對消),SampleNumber是脈沖重復周期Tr內采樣點數(shù) for(i=0;i<M;i+) pc_freq1_rei=pc_freq12*i; pc_freq1_imi=pc_freq12*i+1; for(i=0;i<MTIPoint;i+) MTI_rei=pc_freq1_rei+SampleNumber-pc_freq1_rei; MTI_imi=pc_freq1_imi+SampleNumber-pc_freq1_imi; /計算MTI后的幅度(時域) for(i= 0;i< MTIPoint;i+)/獲得MTI實譜 MTIi=sqrt(MTI_rei*MTI
48、_rei+MTI_imi*MTI_imi); tmp_i1 = _builtin_sysreg_read( _CCNT0 ); / read final cycle countprintf("the cycle count for MTI process = %dn", tmp_i1 - tmp_i0); / print the cycle count i=0; /斷點,繪圖觀察MTI結果,雙擊窗口,彈出大圖 /* MTD */ tmp_i0 = _builtin_sysreg_read( _CCNT0 ); /重排數(shù)據(jù),進行相參積累,即MTD for(i=0;i<S
49、ampleNumber;i+) for(j=0;j<PulseNumber;j+) /數(shù)據(jù)抽取。抽取16個回波脈沖中,各個回波脈沖重復周期內同位置的數(shù)據(jù)。有多少個回波脈沖就有多少個數(shù)據(jù)。 inputj*2=pc_freq1_rei+j*SampleNumber; inputj*2+1=pc_freq1_imi+j*SampleNumber; fft_16(input,output,twiddles16); /使用FFT實現(xiàn)多普勒濾波器組。 for(j=0;j<PulseNumber;j+) MTD_rei+j*SampleNumber=outputj*2; MTD_imi+j*Sa
50、mpleNumber=-outputj*2+1; tmp_i1 = _builtin_sysreg_read( _CCNT0 ); / read final cycle countprintf("the cycle count for MTD process = %dn", tmp_i1 - tmp_i0); / print the cycle coun / 計算MTD后的幅度(頻域),橫坐標代表頻率。 for(i=0;i<MTDPoint;i+)/MTD MTDi=sqrt(MTD_rei*MTD_rei+MTD_imi*MTD_imi);/實數(shù)譜 i=0;/繪圖觀
51、察。 /* 恒虛警處理 */ tmp_i0 = _builtin_sysreg_read( _CCNT0 ); n=SampleNumber-2*(N_Protect+N_Ref); for(i=0;i<PulseNumber;i+) for (j=0;j<n;j+) for (k=0;k<N_Ref;k+) data_ref_buffk=MTDi*SampleNumber+j+k;/前部參考單元 ref_left=meanf(data_ref_buff, N_Ref); /前部參考單元均值 temp_index=i*SampleNumber+j+N_Ref+2*N_Protect+1;/后部參考單元數(shù)據(jù)起始指針 for (k=0;k<N_Ref;k+) data_ref_buffk=MTDtemp_index+k;/后部參考單元 ref_right=meanf(data_ref_buff, N_Ref);/后部參考單元均值 if(ref_left>ref_right)/選大恒虛警 ref=ref_left; else ref=ref_right; ref_Alpha=Alpha*ref; if(MTDtemp_i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租商場攤位合同范本
- 廠房材料配送合同范本
- 科技團隊中員工績效的評估方法
- 古玩收購出售合同范本
- 賣車雙方合同范例
- 衛(wèi)浴安裝承攬合同范例
- 合作干股合同范例
- 企業(yè)備案租賃合同范本
- 單位開業(yè)講座合同范本
- 單位資產(chǎn)收購合同范本
- 5.1人民代表大會:我國的國家權力機關 課件高中政治統(tǒng)編版必修三政治與法治
- 2025年包頭輕工職業(yè)技術學院單招職業(yè)適應性測試題庫及答案解析
- 2025中國中材海外科技發(fā)展有限公司校園招聘筆試參考題庫附帶答案詳解
- 2025-2030年即食麥片球行業(yè)深度調研及發(fā)展戰(zhàn)略咨詢報告
- - 《中國課件》揭示西安古都的千年歷史與文化
- 公司積分制管理實施方案
- 《Maya三維模型制作項目式教程(微課版)》全套教學課件
- 《電梯安全教育培訓》課件
- 2024年山東司法警官職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 《業(yè)財一體化實訓教程-金蝶云星空V7.5》
- 《性病防治知識講座》課件
評論
0/150
提交評論