乐于分享
好东西不私藏

用Matlab App Designer设计的脉冲体制雷达系统

用Matlab App Designer设计的脉冲体制雷达系统

我们知道Matlab App Designer是一个交互式开发环境,可快速创建专业的图形用户界面(GUI)应用程序,它极大地降低了创建专业matlab应用程序的门槛,通过可视化的设计方式和结构化的编程模型,让算法原型到可交互应用的转化过程变得高效而直观。
经过几轮迭代,我们之前设计的脉冲体制雷达的Matlab App Designer已到了v05版本,现在给大家总结一下,让大家有一个总体了解。
该程序完成了从天线扫描->发射接收->匹配滤波->距多处理->CFAR检测->目标判别->数据显示的一系列操作。
在界面点击“连续运行”后,GUI读取当前雷达和仿真参数,根据扫描方向和步进更新扫描角,在±90°之间往复进行扫描,并且会根据目标速度更新目标的物理位置。然后进行下面几个经典的雷达处理环节:
回波仿真
由于雷达脉冲压缩需要兼顾脉冲长度和最长延迟回波,程序动态调整实际采样数Ns。app.simulatePulseLFM(Rm, Vmps, RCSdB, BHz, Tp, Ns, Nd, PRI, SNRdB, λ, fs) 函数会为每个目标计算其延迟和多普勒,相应叠加到多脉冲回波矩阵上。并根据所需SNRdB反推噪声功率Pn,使平均信杂比达到设定值。
脉冲压缩

生成参考 LFM脉冲(同Tp和B)并应用选定的距离窗加权。通过频域相乘实现匹配滤波:FFT计算信号和参考chirp,参考信号共轭频谱点乘回波频谱再IFFT得到压缩结果。sig 即为 Nd×Ns 的匹配滤波输出,每行对应一个脉冲的距离压缩回波。这样,点目标理想情况下在对应延迟的距离单元出现尖峰。

多普勒处理
对二维信号做多普勒处理得到Range-Doppler图,对每个距离单元序列做 Nd 点FFT:RD = fftshift( fft(sigForRD, Nd, 1), 1),取绝对值平方得到功率谱 RDpow,再转dB RDdB = 10*log10(RDpow + eps)。使用 fftshift 将零频移到中心,使速度轴对称分布。
目标检测(2D CA-CFAR)

对 Range-Doppler 平面进行恒虚警率检测,以自动挑出目标峰值:从UI读取 CFAR半径参数 TrR, GdR(距离向训练/保护单元数)和 TrD, GdD(速度向训练/保护单元数),以及目标虚警概率 Pfa。调用 app.cfar2d(RDpow, TrR, GdR, TrD, GdD, Pfa):内部构造一个 (2TrD+2GdD+1) x (2TrR+2GdR+1) 的滑动窗口,在对应RDpow矩阵上做卷积求和得到每点周边窗口总能量,再减去保护单元内能量得到训练单元能量和

目标关联与方位赋予

如果存在真实目标 (WorldTargets 非空) 且有检测点,则尝试将检测与实际目标匹配:调用 app.assignAzToDetections(dets, Rm, Vmps, AzDeg, rres, vres, vmax):该函数对每个检测在当前目标列表中寻找“最近”的目标索引。

通过计算检测的距离和速度与各已知目标的差异(分别归一化到距离分辨单元和速度分辨单元尺度),使用加权距离 wRΔr^2 + wVΔv^2 (其中 wR=1.0,wV=0.25 权衡距离更重要)找到最小值对应的目标索引 idx。回每个检测赋予的方位角 az(k) = 对应目标的 Az_deg,以及匹配索引数组 matchIdx。

波束门控(模拟扫描)
指向当前波束覆盖范围内的目标才能被探测到。程序通过 app.applyScanGate(dets, matchIdx) 对检测结果应用波束限制。
计算波束中心与每个检测方位角之差 d = det.Az_deg – ScanAngleDeg,并正规化到 [-180°,180°] 范围。若 |d| > bwDeg/2,即目标在当前波束主瓣之外,则从检测列表剔除。这样保留下来的 detsOut 才是真正被当前波束扫到的目标回波。
航迹与余晖更新

调用 app.updateTracksStrict(dets, matchIdx) 更新目标轨迹:此函数对每个检测,若其 Tag 对应匹配到现有目标 (matchIdx给出有效索引),则将该检测的世界坐标加入对应目标的轨迹点序列。

调用 app.updateAfterglow(dets) 维护余晖缓冲:先将已有的 GlowAge 全部加1,表示经过一帧。然后检查 GlowAge,若超过 GlowMaxFrames(18帧)的点标记为过期,予以删除(对应的 GlowXY 和 GlowAge 条目一起移除)。

PPI显示和检测列表

调用 app.drawPPI(...) 绘制当前帧的PPI图:传入参数:当前检测点的距离列表 (使用前述 rangeWrapped,确保绘制在第一不模糊距离内)、对应真方位角列表 Az_deg,以及所选参考系模式 (North-Up或Heading-Up)、当前航向角 psi(HeadingEdit值)、当前扫描波束中心角 scanAngleDeg 和波束宽度 bwDeg。