一、什么是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算法对点目标进行成像的时候就发现需要等待的时间特别长,后文中将具体详述,附图+源代码)。

2.2 FAST-BP算法的特点

在双站合成孔径雷达(Synthetic Aperture Radar,SAR)中,BP算法通过将雷达回波数据反向投影到成像区域的各个像素,像素值通过计算雷达回波在雷达天线和图像像素之间的距离的延时来进行成像。

目前相关提升BP算法速度的研究成果不是很显著,但是在相关文献上还是可以看到一些相应的快速BP算法,这些算法的大致有已下几种套路:

1)  深究算法结构,从理论层面对公式进行简化,优化运算中可以改进的变换,保质保量。

2) 做出一些精确度上的牺牲,通过允许系统上误差来对经典BP算法进行修改或近似,比如西电李浩林研究的“机载SAR快速后向投影算法”,国防科技大学电工院发表的《多级多分辨快速后向投影成像算法》文章。

3) 基于子模块或域分割的简化算法,就是通过大化小的思想把成像区域分成一块块,从总体上降低算法结构的复杂度。

这个作者没有进行深究,读者有兴趣可自行查阅相关资料进行思考。欢迎评论区拍砖切磋!

三、单站SAR的BP算法仿真

》》在这一段作者将尽全力对matlab源码进行附:解释  ————在这一段作者将尽力随MATLAB源码进行详细的附:释

3.1 单站SAR

首先作者先以单站SAR为例,这个资料比较齐全,解释起来容易的多。参考教材《合成孔径雷达与成像——算法与实现》一书。(主要还是作者太懒了,不想自己画,而且CSDN编辑器确实难用了点     

执行步骤:

(注明:图取自网络,示意用)

实例:目标场景

好了,大伙就将就看哈,如上图所示。

工作参数:成像区域网格:2^8&2^10(非严格尺寸,意思是对的。注明:图取自网络,示意用)

运算时间:~4min~(欠火候)

成像区域范围:A到左边缘20m,C到右边缘20m;

》》》》》上边缘纵坐标50m,下边缘纵坐标-50m

3.2   图及matlab源码(关键部分详述,有问题请在评论区咨询)

!   !    !   ! -_-hahah

clear all; %清除工作空间的内容
%MATLAB有个基本的工作空间,用base标识,此外,当打开一个函数m文件时,可能会产生很多工作空间。
%每一个函数对应一个工作空间。例如,一个图形用户界面程序test,可能有test、gui_mainfcn、
%pushbutton1_callback等工作空间。这时,如果调用clear命令时,需要注意了:%
clc;%清除命令窗口内容
</pre><pre class="sql" name="code">% 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:Mk=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:NE1(n,:)=ifft(E(n,:));  %求逆傅里叶变换
end
Lt=(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_sitafor m=1:M      % per det_fG(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);         % 截取目标区end
dx=0.005;
dy=dx;
DN=floor(sqrt(2)*R_v/dx);
 Fig=zeros(DN,DN);h=waitbar(0,'计算中....');         %由于BP算法计算效率低下,所以特意加了进度条一方读者长时间看不到出图误以为程序出错for  xn=1:DNxxn=(xn-(DN+1)/2)*dx;for yn=1:DNyyn=(yn-(DN+1)/2)*dy;for n=1:Nsita=(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;endendwaitbar(xn/DN,h);endclose(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');

       转载请注明来源,么么哒!原创声明:本文为-Sure-原创作品,转载时请注明“转自-Sure-”及原文链接。

感谢各位读者的支持,作者会努力提高博客水准,欢迎读者对错误或有待改进的地方提出建议和意见 ——》》PS《《——话说现在写博客花的时间越来越多了,好费时间!小硕,努力积累一点一滴。




【matlab】雷达成像系列 之 BP(BackProjection,后向投影) 成像算法相关推荐

  1. 反向投影 matlab,【matlab】雷達成像系列 之 BP(BackProjection,后向投影) 成像算法...

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

  2. 看BP(后向投影算法)英文文献生词记录

    看BP(后向投影算法)英文文献生词记录 总的来说,该论文是在讲CAT和SAR的后向投影算法之间的联系与区别 acoustic imaging 原声成像 polychromatic 美 [pɒlɪkro ...

  3. SAR成像系列:【7】合成孔径雷达(SAR)成像算法-后向投影(Back Projecting)算法(附Matlab代码)

    前面介绍了SAR成像的RD算法和CS算法,接下来介绍两种时域成像算法,其一就是后向投影(BP)算法. BP成像的优点:成像算法简单,鲁棒性好,分辨率高,适用于任何轨道或飞行轨迹模型,不存在斜距近似假设 ...

  4. 【图像重建】基于matlab BP神经网络双基地SAR成像图像重建【含Matlab源码 1950期】

    ⛄一.BP神经网络成像图像重建简介 1 BP神经网络的图像重建算法原理 在目前基于神经网络的图像重建算法中,网络的类型一般采用BP神经网络.BP网络是一种多层前馈神经网络,它采用后向传播算法,亦称BP ...

  5. SAR成像系列:【1】合成孔径雷达(SAR)成像概述

    本系列主要介绍合成孔径雷达(SAR)成像的关键技术,帮助入门者更好的理解雷达成像原理及算法. (1)雷达原理 雷达的英文式 Radar ,源于 Radio Detection and Ranging ...

  6. 后向投影算法(BPA)-SAR成像算法系列(二)

    系列文章目录 <SAR学习笔记> <SAR学习笔记-代码部分> <SAR学习笔记后续-phased工具箱介绍> <SAR学习笔记-SAR成像算法系列(一)&g ...

  7. SAR成像系列:【13】差分层析合成孔径雷达(差分层析SAR,Differential SAR Tomography ,D-TomoSAR)

    差分层析合成孔径雷达(D-TomoSAR)可进行高精度多维成像获得地表的高程以及形变信息.目前,该技术已在地质灾害预警.地球物理参数反演以及城市规划等领域得到了广泛的应用,在对地观测领域具有巨大的应用 ...

  8. SAR成像系列:【12】层析合成孔径雷达(层析SAR,Tomographic SAR,TomoSAR)

    自1995年Knaell为解决曲线SAR成像结果中的强旁瓣问题,将二维计算机断层(Computed Tomography)成像技术扩展到三维空间,并通过投影切片理论和后向投影算法获得了雷达成像三维空间 ...

  9. SAR成像系列:【4】合成孔径雷达(SAR)距离历程分析

    (1)SAR的距离历程-正侧视 合成孔径雷达(SAR)成像中,所有算法的基础是对距离历程(Range History)的分析."合成孔径"从表面上看是合成了雷达阵列,从信号上看是获 ...

最新文章

  1. 为什么我会重回到Windows的怀抱?
  2. Kruskal算法模版
  3. 第二届数据标准化及治理奖评选顺利结束
  4. ssh excel 导入 mysql_ssh poi解析excel并将数据存入数据库
  5. vscode终端无法输入
  6. Apache SkyWalking的架构设计【译文】
  7. foxmail地址簿怎么添加分组 foxmail地址簿新建分组的教程
  8. get请求,参数值为json字符串如何传值
  9. matlab将列数据存成excel表格,matlab将列数据存成excel表格-matlab工作区数据怎么转为excel...
  10. JS的作用域和作用域链
  11. [转]C#反射,根据反射将数据库查询数据和实体类绑定,并未实体类赋值
  12. Python3 - 深入学习Docker容器管理
  13. 彻底卸载vscode Linux,Linux环境中Visual Studio Code 安装配置及其卸载(详细教程)
  14. dropbox与public
  15. 用伪类添加翘边阴影::before和::after
  16. excel如何打开100万行以上的csv文件
  17. 为什么说易语言不如c语言_不说语言? 如何使用Google翻译
  18. vue基础,加少量的webpack,以及脚手架搭建vue项目
  19. 怎么看待《百度清风算法3.0》?
  20. redis-cli redisTemplate执行Lua脚本,解决redisTemplate.opsForSet().members获取数据问题

热门文章

  1. 多元线性回归分析spss结果解读_多元线性回归分析理论详解及SPSS结果分析
  2. 不懂就学——什么是input和output?
  3. CCF公布国家集训队50进15名单!5月确定IOI2019选手!
  4. INFOR-CRB开发教程
  5. 跑动大数据的笔记本配置_大数据专业用什么样的笔记本合适?
  6. java毕业设计汽车售后服务管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  7. 《写给女人》--[美]桃乐丝·卡耐基
  8. 浩辰3D软件入门教程:如何比较3D模型?
  9. 一款简单易用的拓扑图检测工具
  10. v4l2接口解析和摄像头数据采集