概述
这篇文章的前提条件是在大家已经清楚整个雷达仿真的基本原理并且能自己熟练的根据公式写出雷达信号仿真的距离和相位变化信息。如果这里概念不清楚,请看这
qwe14789cn:雷达信号仿真的基本原理——时延与相位的变化zhuanlan.zhihu.com如果你能够熟练的完成上述要求,那么今天我们要使用的MATLAB工具箱,用来大幅度的节省你的时间和精力,提高仿真效率。
说实话这篇文章实际上是我偷懒了,主要是MATLAB的帮助文档的部分,原教程在
https://www.mathworks.com/help/phased/examples/automotive-adaptive-cruise-control-using-fmcw-technology.htmlwww.mathworks.com或者在matlab的F1帮助文档里搜索
Automotive Adaptive Cruise Control Using FMCW Technology
这篇文章实际上就是翻译+个人的一些理解,但是在写的过程中发现自己在一些地方上可以扩展,加点私货。所以从这篇文章作为开始,看看哪里可以进行补充说明,寻找一下文章的灵感。废话不多,今天我们来学习如何用MATLAB的相控阵工具箱进行雷达信号回波仿真。
毫米波雷达目前是比较热门的领域,我们就按照77GHz调频连续波雷达作为我们仿真的建模参考(其实是因为文档里给的就是77GHz,我懒得改参数,参数变了大家也会算)
波形设计
在汽车系统中采用调频连续波模式(FMCW)进行目标探测,其测距的原理如图所示
接收到的信号是发射信号的延迟,延迟的时间与目标的距离相关。由于发射的是扫频信号,因此在任意时刻,接收到的回波信号与发射信号的频率差必然是一个常数,这个信号我们称为拍频。我们可以从拍频中得到频率信息,再将频率转化为时间延迟,由时间延迟得到目标距离。
车载雷达采用77G载频,假设最大探测距离是200m,对于FMCW雷达系统,接收信号的时间至少应该是往返时间的5到6倍,采用5.5倍采样时间进行仿真
fc
range2time函数是matlab工具箱提供的函数,就是t = 2R/c,即电磁波往返探测距离需要飞行的时间,根据我们的要求设置5.5倍进行仿真,即我们需要设置接收信号的时间
tm
扫频带宽实际上由距离分辨率决定,雷达的距离分辨率是
range_res
range2bw即距离分辨率的计算公式,由于我们知道了距离分辨率得到了扫频带宽,同时也知道了采样时间tm,我们就知道了扫频信号的斜率 sweep_slope
FMCW的发射波形具有非常大的带宽,如果单纯的根据奈奎斯特采样定理,那我们的AD器件的性能要求实在是太高了,这不是扯淡嘛!开玩笑这器件要多贵?为了解决这个问题,我们采集到的信号实际上是拍频信号,这样子我们就可以选择较低的采样率,那么采样率选择什么的样的参数合适呢?实际上我们需要考虑:
1.复杂情况下采样率可以设置的与带宽相同
2.FMCW的距离估计实际上是拍频信号,因此我们只需要知道最大距离下的拍频和最大多普勒频率的和的两倍(奈奎斯特采样定理)即可
我们来计算一下最大探测距离下的拍频是:
fr_max
在汽车领域,一般按照120km/h为最大速度,在高速路上,迎面的2辆车具有的相对速度为240km/h,我们按照230km/h计算最大多普勒,那么最大频率差为
v_max
我们仍然按照上述2条要求设计采样速率,那么采样速率应该选择:
fs
根据上述要求,我们来看一下雷达指标如下:
System parameters
Value
----------------------------------
Operating frequency (GHz)
77
Maximum target range (m)
200
Range resolution (m)
1
Maximum target speed (km/h)
230
Sweep time (microseconds)
7.33
Sweep bandwidth (MHz)
150
Maximum beat frequency (MHz) 27.30
Sample rate (MHz)
150
指标确定后,我们可以开始设计雷达的参数了,第一个就是发射波形
waveform
调用matlab的相控阵工具箱中的线性调频连续波模块,扫频时间为tm,扫描带宽为bw,按照fs的采样速率生成原始发射波形。
我们来看一下波形的时频分析图
sig
我们可以看到发射信号的实部和虚部图分别是↖和↗,这样的图其实不好理解,不如把信号画成三维图来看↙。可以发现这个信号实际上是绕着复平面在旋转,像弹簧一样的结构,并且这个旋转的转速是线性变化,再看↘时频分析图,我们发现信号的频率是随着时间呈现一条直线,并且信号的带宽是150Mhz,时间就是我们设计的tm。
在这里我要说明一下为什么这里150Mhz带宽的信号用150Mhz采样率生成为什么不混叠?奈奎斯特采样定理不是要求至少2倍吗?实际上这里仍然符合奈奎斯特采样定律,细心的同学会发现在如果我们采集的是实信号,信号带宽如果是150Mhz,我们需要用300Mhz才可以正确表达,但是这里是复信号,一个采样点是2个数据,一个实部和一个虚部,所以实际上还是满足奈奎斯特采样定理,虽然用150Mhz采样,但是我们采集到的数据和300Mhz的总点数一样,大家如果对这里感兴趣可以研究下复信号与实信号的傅里叶变换,你们会发现实信号只有0~fs/2,而复信号是0~fs。关于这部分内容我打算在后续开坑。
我们继续往下走,波形设计好后我们就需要对整个雷达系统建模了
目标建模
我们假设在雷达目标前x轴上有个车辆距离雷达43m,并且以96km/h的速度运行在雷达x轴方向上沿着x轴正向行驶,目标的RCS根据论文
Karnfelt, C. et al..77 GHz ACC Radar Simulation Platform, IEEE International Conferences on Intelligent Transport Systems Telecommunications (ITST), 2009.
%-----------------------------------------------------------------------
cardist是目标的绝对距离,car_speed是目标的速度,rcs由论文公式提供,那么后面这里大家可能会头大了,这个phased.RadarTarget 还有这个 phased.Platform是啥东西?
phased.RadarTarget实际上是根据要求的特性生成一个系统函数,只要传入输入信号,他会返回一个输出响应。
而phased.Platform这里是按照停跳假设仿真目标运动状态,在这里是按照列向量来表示目标的空间坐标,目标的空间速度也是一个列向量,即
式中列向量[x y z]'是空间中的绝对位置,用三个坐标表示,[Vx Vy Vz]'是目标的矢量速度,那么每一次PRT时间目标在空间中的位置移动就满足这样的一个迭代关系。看懂了这里大家就明白了为什么参数'InitialPosition',设置[car_dist;0;0.5]就是[x y z]'目标的初始距离,而参数'Velocity'设置的是[car_speed;0;0]对应的就是[Vx Vy Vz]'。
目标建模完了进行传输信道建模,雷达的电磁波传输的是自由空间,因此同样,采用相控阵工具箱建模如下
%-----------------------------------------------------------------------
这里有个参数是"TwoWayPropagation"设置的true,表示电磁波发射是一来一回
下来就是雷达系统的参数设计了
雷达系统建模
雷达系统包括了发射机,接收机,天线主要部分,建模时忽略了其他组件(如耦合器和混频器等)影响,我们假设天线是各向同性。设置以下参数
%-----------------------------------------------------------------------
如上,我们根据雷达的系统参数就设置好了各个模块的传递函数了。
雷达运动状态建模
汽车雷达大部分处于运动状态,我们假设雷达按照100km/h的运动速度移动,则相对目标实际上是4km/h的相对速度接近雷达,设置如下参数:
radar_speed
雷达的运动方式同前面一样,仍然采用函数phased.Platform进行位置矢量和速度矢量的初始化,同前面目标的建模方式一样,这里就不在赘述了
雷达信号仿真
FMCW雷达是通过检测回波信号的拍频来测量距离,混合后的信号只包含了与目标距离对应的单一点频的频率分量。
而多普勒信息是从多次回波信号的频率分量提取的,雷达的工作模式是这样子:
波形发生器产生FMCW信号->发射机放大->天线发射->自由空间传播->目标反射->自由空间传播->接收信号->存储缓冲
当缓冲足够的回波信号后,在距离维(单一脉冲提取点频)和速度维(脉冲之间提取多普勒频率)上进行傅里叶变换,来提取拍频和多普勒频率,利用这些信息来估计目标的距离和速度。
下来我们来模拟整个过程,前面我们构造的系统函数也要在这里使用,假设雷达发射了64次,我们写一个循环,如下所示,并且我会在注释中详细说明各个步骤
%-----------------------------------------------------------------------
我们设计的雷达是100km/h,目标是96km/h,相对速度是4km/h,来看看回波是如何运动的
图中↖位置是64次发射雷达在x轴向的位置移动,↙位置是64次发射目标在x轴的位置移动
→图就是我们采集到的回波信号,我非常喜欢用三维实部虚部来看信号,这样子理解非常直观,大家可以看到信号是在旋转的!
那么这次我们修改下参数,设置目标的运动速度是110km/h,这样子相对速度是-10km/h,再来看下回波信号
有没有发现相对速度的正负号变了,回波信号的旋转方向变了?
再改一下,这一次我们设计目标完全静止0km/h,雷达是100km/h保持不变,看看回波信号是什么样子
发现旋转速度变快了,说明目标的速度信息和回波信号的旋转速度有关,那么我们再看看距离信息,设置目标距离为15m静止,回波信号如图
这次我们发现回波信号的旋转速度保持不变,但是回波这个“弹簧”间距变大了,这说明回波信号的频率降低了,到此我们可以总结出
FMCW雷达回波信号的特点:
1.目标的距离信息与回波信号的频率呈现线性关系。随着目标距离的增大,回波信号的频率逐渐提高,也就是说这个“弹簧”的间距越来越小
2.目标的速度信息与回波信号的旋转速度呈现线性关系。目标的速度越快,回波信号的旋转速度越快,目标相对速度正负号变化,回波信号的旋转方向变化
这篇文章主要是教会大家如何使用matlab工具箱进行雷达信号仿真。文章中并没有包含了信号处理部分,关于这部分内容我会另外开个坑。还有一些细节部分也没有详细展开,有时间的话我会继续在后续的文章中进行讲解。
最后写这个的目的一个是分享,另外一个是希望能与各位大佬交流学习!
文中的画图部分用到了我自己写的工具箱
https://github.com/qwe14789cn/radar_toolsgithub.com转载请注明知乎来源,谢谢~
最后
以上就是心灵美咖啡豆为你收集整理的雷达多普勒频率计算公式_使用MATLAB工具箱进行雷达信号回波仿真的全部内容,希望文章能够帮你解决雷达多普勒频率计算公式_使用MATLAB工具箱进行雷达信号回波仿真所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复