本系列主要介绍合成孔径雷达(SAR)成像的关键技术,帮助入门者更好的理解雷达成像原理及算法。
(1)雷达原理
雷达的英文式 Radar ,源于 Radio Detection and Ranging 的缩写,意思是“无线电探测和测距”。顾名思义初始雷达是为了探测目标距离和目标角度的。如下图所示,雷达自身发射电磁波在空气中向前传播,电磁波遇到目标后会将电磁波散射到各个方向中,目标反射的电磁波部分能量被雷达接收,雷达接收机将接收的微弱信号放大,进行信号处理后获取所需的目标信息(包括目标距离和角度)。

雷达发射信号和接收回波如下图所示,

在最简单的雷达测距中,目标的距离表示为
其中是雷达接收信号时间和发射信号时间的差值。分子上的2表示电磁波信号的双程路径。测距的分辨率为:
.
为脉冲持续时间。
电磁波的多普勒效应是雷达测速的基础,也是合成孔径雷达成像依据。
由于目标和雷达的相对移动,雷达的发射信号与目标反射回波信号的频率不同。两者的频率差称为多普勒频移。可以通过多普勒频率计算出目标相对于雷达的速度:
(2)合成孔径雷达(SAR)成像原理
在常规的雷达使用中,每发射一个脉冲雷达接收机就获得一个一维采样的回波信号,然后对信号进行处理获得目标信息。为了获得足够的目标能力,也可做相关积累。但是图像是一个二维的矩阵。要想使用雷达获得目标的二维图像就必须要有二维的回波信号,二维的回波信号可以通过排列每个脉冲回波得到。但是这种二维的回波信号不一定在二维上都是有用信息。在雷达信号中的有用信息就是发射电磁波的频率。在单个脉冲中通常发射线性调频信号方便做匹配滤波形成高分辨一维像,那么在排列起来的二维信号中也希望有一个脉间的调频信号,这个脉间的调频信号就是多普勒调频信号。因此合成孔径雷达(SAR)成像的基础是目标与雷达产生相对运动,获得包含两个维度的具有线性调频信号性质的回波。如下图所示:

(3)合成孔径雷达(SAR)工作模式
合成孔径雷达按照波束照射方式分为:条带式(Stripmap)、聚束式(Spotlight)、滑动聚束式(Sliding Spotlight)和扫描式(ScanSAR)。
条带SAR:波束与运动平台相对不变,波束以平台运动速度照射成像区域。
聚束SAR:平台飞行过程中通过控制雷达波束照射成像场景同一位置,实现场景凝视成像。
滑动聚束SAR:介于条带和聚束SAR中间的一种成像模式,地面波束与运动平台速度不同,并实现一定程度的凝视效果。
扫描SAR:通过控制波束速度(一般比平台速度大),实现场景不同区域的快速成像。
虽然不同的成像模式获取的SAR图像分辨率有所不同,但是相对于信号处理机来说,信号处理方式差别不大。
(4)SAR的距离向和方位向
SAR成像不同于传统的光学CCD成像,一次性形成二维图像。SAR成像的二维是分开的,分为距离向和方位向(就二维成像而言,SAR层析成像的三维性后续再讲)。因此SAR成像主要包含两个步骤:距离向聚焦与方位向聚焦。

如上图,一般认为,距离向为雷达的视线方向,方位向为雷达的前进方向。
由于SAR成像是目标RCS回波能量的量化显示,因此SAR图像为灰度图像,有时为了方便辨认目标,也有认为添加的伪彩色图像。
(5)SAR图像的分辨率
SAR的成像分辨率表示的是能够区分两个相邻目标的能力,而不是所谓的量化后的像素间隔。
SAR图像的距离向分辨能力与探测雷达一致,本质上都是对发射信号进行匹配滤波获得的。因此距离向分辨率表示为:
c表示光速,Br为发射的线性调频信号带宽。
SAR图像的方位分辨率是依靠多普勒带宽换来的。“合成孔径”实质上是合成的方位信号多普勒带宽。方位向的分辨率表示为:
D表示天线长度。因此方位分辨率与实际天线长度有关,而与目标的距离远近无关。关于方位向分别率的详细推导将在后续文中提到。
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt
基础版云数据库RDS的产品系列包括基础版、高可用版、集群版、三节点企业版,本文介绍基础版实例的相关信息。RDS基础版实例也称为单机版实例,只有单个数据库节点,计算与存储分离,性价比超高。说明RDS基础版实例只有一个数据库节点,没有备节点作为热备份,因此当该节点意外宕机或者执行重启实例、变更配置、版本升级等任务时,会出现较长时间的不可用。如果业务对数据库的可用性要求较高,不建议使用基础版实例,可选择其他系列(如高可用版),部分基础版实例也支持升级为高可用版。基础版与高可用版的对比拓扑图如下所示。优势 性能由于不提供备节点,主节点不会因为实时的数据库复制而产生额外的性能开销,因此基础版的性能相对于
我使用irb。下面是我写的代码。“斧头”..“bc”我期待"ax""ay""az""ba"bb""bc"但结果只是“斧头”..“bc”我该如何纠正?谢谢。 最佳答案 >puts("ax".."bc").to_aaxayazbabbbc 关于ruby-从结束值创建一系列字符串,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/7617092/
使用RubyonRails,我使用给定的增量(例如每30分钟)用时间填充“选择”。目前我正在YAML文件中写出所有的可能性,但我觉得有一种更巧妙的方法。我想我想提供一个开始时间、一个结束时间、一个增量,并且目前只提供一个名为“关闭”的选项(想想“business_hours”)。所以,我的选择可能会显示:'Closed'5:00am5:30am6:00am...[allthewayto]...11:30pm谁能想出更好的方法,或者只是将它们全部“拼写”出来的最佳方法? 最佳答案 此答案基于@emh的答案。defcreate_hour
有道无术,术尚可求,有术无道,止于术。本系列SpringBoot版本3.0.4本系列SpringSecurity版本6.0.2本系列SpringAuthorizationServer版本1.0.2源码地址:https://gitee.com/pearl-organization/study-spring-security-demo文章目录前言1.OAuth2AuthorizationServerMetadataEndpointFilter2.OAuth2AuthorizationEndpointFilter3.OidcProviderConfigurationEndpointFilter4.N
我使用geokit和geokit-railsgemforrails有一段时间了,但我还没有找到答案的一个问题是如何找到一组点的计算聚合中心。我知道如何计算两点之间的距离,但不会超过2。我的理由是,我在同一个城市中有一系列的点……一切都完美的城市会有一个我可以使用的中心,但有些城市,比如柏林没有一个完美的中心。他们有多个中心,我只想使用我数据库中的所有地点列表来计算特定分布的中心。还有其他人遇到过这个问题吗?有什么建议吗?谢谢 最佳答案 之前从未使用过Geokit,这个操作背后的数学原理相对容易自己实现。假设这些点由纬度和经度组成,您
我有一个名为“FizzBuzz”的游戏的非常简单的Ruby实现(即给定输入数字,如果数字是3的倍数,则返回“Fizz”,如果是5的倍数,则返回“Buzz”,如果是多个,则返回“FizzBuzz”如果它不符合任何先前的条件,则两者和原始数字):classFizzBuzzdefanswer(number)multiple3=number%3==0multiple5=number%5==0returncasewhen(multiple3andmultiple5)then"FizzBuzz"whenmultiple3then"Fizz"whenmultiple5then"Buzz"el
一、概述在之前的一篇博文中,记录了AT24C01、AT24C02芯片的读写驱动,先将之前的相关文章include一下:1.IIC驱动:4位数码管显示模块TM1637芯片C语言驱动程序2.AT24C01/AT24C02读写:AT24C01/AT24C02系列EEPROM芯片单片机读写驱动程序本文记录分享AT24C04、AT24C08、AT24C16芯片的单片机C语言读写驱动程序。二、芯片对比介绍型号容量bit容量byte页数字节/页器件寻址位可寻址器件数WordAddress位数/字节数备注AT24C044k5123216A2A149/1WordAddress使用P0位AT24C088k1024