82f15eb31aadcf3932729e774877c01b.gif

一、什么是BP算法?

由來:BP算法最初是McCorkle受計算機層析技術的啟發推導而來,所謂的計算機層析:就是CT(Computer Tomograpy),這是在醫院中再普遍不過的技術了。

BP算法的原理:BP算法參考了“時延-疊加”的思想,在雷達應用中,其對雷達接收天線接收到的回波信號進行距離向匹配率,獲取回波數據中包含的相幅信息,再通過IFFT進行逆傅里葉變換,獲取收發天線組合的時延,最后累積信號相干相加得到目標函數。

1.1  BP算法

回波信號與參與電信號進行匹配濾波后,獲得的距離壓縮輸出信號可表示為:

src(h)=Aexp{-j4pf0R(h)/c}

其中,A表示幅度;f0表示載波頻率;R( 表示雷達至點目標的距離h)/

二:BP成像算法在SAR中的應用

2.1 優缺點分析:

BP算法有一獨到的有點,其可以應用於多種架構的雷達天線而不受陣列形式的限制,這也使得其在雷達應用中顯得舉足輕重。

另一方面,BP算法也有着巨大的缺陷,其運算數據量比較大,存在冗余的現象,這直接導致了其計算效率低下(在作者仿真BP算法對點目標進行成像的時候就發現需要等待的時間特別長,后文中將具體詳述,附圖+源代碼)。

4f860ce7a9181c0c052f304feef00da7.png

2.2 FAST-BP算法的特點

在雙站合成孔徑雷達(Synthetic Aperture Radar,SAR)中,BP算法通過將雷達回波數據反向投影到成像區域的各個像素,像素值通過計算雷達回波在雷達天線和圖像像素之間的距離的延時來進行成像。

目前相關提升BP算法速度的研究成果不是很顯著,但是在相關文獻上還是可以看到一些相應的快速BP算法,這些算法的大致有已下幾種套路:

1)  深究算法結構,從理論層面對公式進行簡化,優化運算中可以改進的變換,保質保量。

2) 做出一些精確度上的犧牲,通過允許系統上誤差來對經典BP算法進行修改或近似,比如西電李浩林研究的“機載SAR快速后向投影算法”,國防科技大學電工院發表的《多級多分辨快速后向投影成像算法》文章。

3) 基於子模塊或域分割的簡化算法,就是通過大化小的思想把成像區域分成一塊塊,從總體上降低算法結構的復雜度。

這個作者沒有進行深究,讀者有興趣可自行查閱相關資料進行思考。歡迎評論區拍磚切磋!

三、單站SAR的BP算法仿真

》》在這一段作者將盡全力對matlab源碼進行附:解釋

82f15eb31aadcf3932729e774877c01b.gif  ————在這一段作者將盡力隨MATLAB源碼進行詳細的附:釋

3.1 單站SAR

首先作者先以單站SAR為例,這個資料比較齊全,解釋起來容易的多。參考教材《合成孔徑雷達與成像——算法與實現》一書。(主要還是作者太懶了,不想自己畫,而且CSDN編輯器確實難用了點

516bd88ffc8c23d5186d09378a7aa0f8.gif)

執行步驟:

bc427d6ef051c7063415c8669d83a78f.png(注明:圖取自網絡,示意用)

實例:目標場景

599d350529aea46ec15659957ea830e3.png

好了,大伙就將就看哈,如上圖所示。

工作參數:成像區域網格:2^8&2^10(非嚴格尺寸,意思是對的。注明:圖取自網絡,示意用)

a763e3a6612cc2b52063070572280317.png

運算時間:~4min~(欠火候)

成像區域范圍:A到左邊緣20m,C到右邊緣20m;

》》》》》上邊緣縱坐標50m,下邊緣縱坐標-50m

3.2   圖及matlab源碼(關鍵部分詳述,有問題請在評論區咨詢)

00db8ea67ea5ae01f4683aa7edf5c967.bmp6e8c85b2c4021a721513219e4d1222c5.bmp

!   !    !   ! -_-hahah

clear all; %清除工作空間的內容

%MATLAB有個基本的工作空間,用base標識,此外,當打開一個函數m文件時,可能會產生很多工作空間。

%每一個函數對應一個工作空間。例如,一個圖形用戶界面程序test,可能有test、gui_mainfcn、

%pushbutton1_callback等工作空間。這時,如果調用clear命令時,需要注意了:%

clc;%清除命令窗口內容

% clc命令是用來清除命令窗口的內容,這點不用多說。% 不管開啟多少個應用程序,命令窗口只有一個,所以clc無論是% 在腳本m文件或者函數m文件調用時,clc命令都會清除命令窗口的內容。

clear;%fmin=?;   %請讀者自行賦值

%fmax=?; %請讀者自行賦值c=3e8; M=901;kmin=2*fmin/c; %波數B=2*(fmax-fmin)/c; %帶寬f_step=fmax-fmin/M-1; %步進頻率,步進頻的好處在於雷達發射此形式信號可以得到目標在各頻點的幅度和相位信息

R0=10; %希望在評論區看到讀者的答案!!R_v=1.5; %希望在評論區看到讀者的答案rx1=-0.4; %希望在評論區看到讀者的答案rx2=36; %希望在評論區看到讀者的答案rx3=0; %希望在評論區看到讀者的答案rx4=0.9; %希望在評論區看到讀者的答案rx5=0.3; %希望在評論區看到讀者的答案N=161;angle_step=0.1; %角度最小分量for n=1:N; sita=(n-(N+1)/2)*angle_step*pi/180; %sita值表示: R1(1,n)=sqrt(R0^2+rx1^2-2*R0*rx1*cos(sita+pi/2)); %求一個神奇公式的平方根, R2(1,n)=sqrt(R0^2+rx2^2-2*R0*rx2*cos(sita+pi/2)); R3(1,n)=sqrt(R0^2+rx3^2-2*R0*rx3*cos(sita+pi/4)); R4(1,n)=sqrt(R0^2+rx4^2-2*R0*rx4*cos(sita)); R5(1,n)=sqrt(R0^2+rx5^2-2*R0*rx5*cos(sita+pi/4));end

for m=1:M k=2*pi*(8e9+(m-1)*f_step)/c; % E(1:N,m)=exp(-2j*k*(R1(1,:)))./R0+exp(-2j*k*(R2(1,:))).%/R0+exp(-2j*k*(R3(1,:)))./R0+exp(-2j*k*(R4(1,:)))./R0+exp(-2j*k*(R5(1,:)))./R0; % E(1:N,m)=exp(-2j*k*(R1(1,:)))./R1(1,:); E(1:N,m)=exp(-2j*k*(R1(1,:)))./R1(1,:)+exp(-2j*k*(R2(1,:)))./R0;end

for n=1:N E1(n,:)=ifft(E(n,:)); %求逆傅里葉變換endLt=(0:900)/B;plot(Lt,abs(E1(81,:))); F=4;MF=F*(M-1)+1;N1=round((R0-R_v)*B*F);N2=round((R0+R_v)*B*F);D_N=N2-N1+1;

for n=1:N % per det_sita for m=1:M % per det_f G(1,m)=(B*(m-1)./(M-1)+kmin).*E(n,m)*( 0.54-0.46.*cos(2*pi*m/M) );

%fHamming;對矩陣的每行用fHamming進行加權。 end P_sita(n,:)=ifft(G(1,1:M),MF); P_sita1(n,1:D_N)=P_sita(n,N1:N2); % 截取目標區 enddx=0.005;dy=dx;DN=floor(sqrt(2)*R_v/dx);

Fig=zeros(DN,DN); h=waitbar(0,'計算中....'); %由於BP算法計算效率低下,所以特意加了進度條一方讀者長時間看不到出圖誤以為程序出錯 for xn=1:DN xxn=(xn-(DN+1)/2)*dx; for yn=1:DN yyn=(yn-(DN+1)/2)*dy; for n=1:N sita=(n-(N+1)/2)*angle_step*pi/180; ham=0.54-0.46*cos(2*(n-1)*pi/(N-1)); %漢明窗 L0=sqrt(R0.^2+xxn.^2+yyn.^2+2*R0*(yyn*cos(sita)-xxn*sin(sita)))-R0; %中場% L0=yyn*cos(sita)-xxn*sin(sita); % 遠場 LB=L0*B*(MF/M)+D_N/2+1; d_L=LB-floor(LB); P_L=P_sita1(n,floor(LB))+d_L*(P_sita1(n,floor(LB)+1)-P_sita1(n,floor(LB))); Fig(xn,yn)=Fig(xn,yn)+P_L*exp(i*2*pi*kmin*L0)*ham; end end waitbar(xn/DN,h); end close(h) x=(1-(DN+1)/2)*dx:dx:(DN-(DN+1)/2)*dx; y=x;

figure;

surf(x,y,abs(Fig));

shading flat;

%shading 是用來處理色彩效果的,分以下三種:   %no shading 一般的默認模式 即shading faceted   %shading flat 在faceted的基礎上去掉圖上的網格線   %shading interp 在flat的基礎上進行色彩的插值處理,使色彩平滑過渡 xlabel('X');ylabel('Y');

1c36cb0cf13c4bfa6fafc12fa9fe212e.gif       轉載請注明來源,么么噠!原創聲明:本文為-Sure-原創作品,轉載時請注明“轉自-Sure-”及原文鏈接。

感謝各位讀者的支持,作者會努力提高博客水准,歡迎讀者對錯誤或有待改進的地方提出建議和意見 ——》》PS《《——話說現在寫博客花的時間越來越多了,好費時間!小碩,努力積累一點一滴。





Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐