资讯动态

双功能雷达与通信系统:波束成形设计与Matlab仿真全解析

发布时间:2026/10/20 17:44:45 来源:尧图企业网站定制
1. 为什么双功能雷达与通信系统值得用一套硬件来实现如果你做过雷达或者通信方向的仿真大概都经历过这样的尴尬雷达系统要求高带宽、高增益、低副瓣通信系统要求高吞吐、低误码、良好的多用户接入能力二者往常各用各的频段、各用各的天线互不打扰。但工程上有个棘手的问题越来越绕不过去平台空间有限、频谱资源紧张、功耗预算固定。比方说车载感知与车联网通信同一辆车上既要不停扫描周围障碍物又要跟路侧单元和周边车辆交换数据如果雷达和通信各装一套完整射频链路天线数量、射频通道功耗、算力开销都会快速膨胀。这正是“双功能雷达与通信系统”Dual-Functional Radar and Communication简称DFRC想解决的问题。核心思路很直接用同一个发射前端、同一组天线阵列同时完成目标的探测与信息的传输。雷达回波拿去测距离、测速度通信数据流则调制进同一个发射信号里。你可能会问这不就是把两套系统硬塞一起吗雷达波束要扫描通信波束又要对准用户方向不一致的时候怎么办这里的关键技术正是标题里的“波束成形”。波束成形本质上是给每个天线阵元分配一组幅度和相位权重让所有阵元的辐射信号在指定方向同相叠加形成增益主瓣在其他方向相互抵消或压低强度。双功能系统里雷达模式希望波束主瓣对准感兴趣的空域副瓣尽量低通信模式则希望在用户方向保持足够高的信噪比。两套需求可以在同一组发射权重的设计里做联合优化。换句话说波束成形就是双功能系统的“关节”决定了射频能量和通信信息在空间维度的分配方式。这篇博文面向的是已经接触过Matlab、对雷达或通信基本概念不陌生但想在仿真层面把“雷达通信一体化”完整跑通的读者。我会把从波形选择、阵列建模、波束权重设计到Matlab仿真链路搭建的整个过程拆开讲最后再分享几个我在实测时反复踩过的坑。内容偏入门到中级不需要太深的理论基础但要能沉下心把代码链路搭起来。我会以一个可以落地的参数配置为主线一步步说明每个设计决策背后的原因而不是直接甩一个黑盒代码包。2. 双功能系统的四道技术门槛为什么波束成形是核心而不是附属2.1 从“两套设备”到“一个孔径”共享带来的连锁反应雷达和通信共享同一孔径带来的第一个问题是信号隔离。雷达要求发射高功率脉冲通信则希望连续发射信号二者在同一时刻、同一频谱上共存接收端的自干扰就是头号敌人。单站雷达的收发隔离可以利用脉冲时序让发射时接收链路关闭但通信信号通常是连续的这就迫使系统在波形设计上做出妥协——要么采用连续波体制要么在快时间维内实现时分复用。波形一旦确定接收机的自干扰抑制算法、数字波束成形结构都要跟着调整。第二个问题更加根本雷达和通信对波束资源的需求在时间轴上往往冲突。雷达希望波束在搜索模式下不断变换指向覆盖整个空域通信则希望每个用户都能分配到可持续的波束增益尤其当用户是移动状态时波束还要实时跟踪。一套阵列同时做这两件事就需要在空间维做调度决策主瓣给谁零陷对准谁信号功率如何在两个功能之间分配。第三个问题是感知与通信的性能量纲完全不同。雷达关注的是检测概率、测距精度、测速精度评价函数是输出端信干噪比和模糊函数特性通信关注的是误码率、吞吐量与时延评价函数是信道容量和链路质量。二者在同一份发射信号上叠加后雷达匹配滤波输出里会混入通信数据带来的调制噪声通信解调星座点上也会出现雷达波形设计造成的非理想特性。这套联合优化关系是双功能系统设计的数学核心也是很多人做仿真时感觉“怎么调都不对劲”的根本原因。2.2 波束成形在“雷达要低副瓣、通信要高增益”之间如何仲裁波束成形解决的是能量在空间中的分配方式。雷达模式下我们通常希望方向图主瓣窄、副瓣低这样相邻方向的杂波才不会干扰目标检测通信模式下我们则希望在用户所在的多个方向尽可能拉高增益同时在与雷达强杂波方向或多径方向对齐的方向上压低响应形成自适应零陷。这两种取向放到同一组权重上结果必然是一个折中问题。如果只为雷达设计主瓣方向和副瓣电平都能做到很理想但通信用户方向可能落在副瓣里吞吐量惨不忍睹如果只为通信设计把波束对准通信用户雷达探测的角度范围就被严重压缩。工程上的做法是构造一个加权目标函数雷达的波束模式保真项和通信用户的信噪比约束同时进入优化器用凸优化或迭代算法求出一组权重。Matlab里常见的思路是从“最小方差无失真响应MVDR”和“零陷约束波束形成”出发把零陷约束朝向雷达主波束之外的干扰源把增益约束对准通信用户。这一阶段仿真里最容易犯的错是把波束形成当作“选一个方向角然后查表”而没有建立阵列流形矩阵更没有把“通信用户的接收效果”纳入权重优化的目标函数。后面我会给出一个具体的优化框架和对应的Matlab代码片段先记住一个结论双功能系统的波束成形核心不是怎么画方向图而是怎么在雷达和通信的指标之间做空间资源仲裁。2.3 双功能系统仿真的总体框架一个发射、两路接收仿真框架的搭建思路跟实际系统结构对应。发射端产生一个符合雷达要求的探测信号序列同时把通信比特通过调制嵌入进去经过波束成形权重加权通过天线阵列辐射。空间信道信号分成两路传播一路打中目标后反射回接收阵列雷达回波另一路直接或经多径到达通信接收机通信链路。接收端雷达接收阵列做匹配滤波、测距测速处理通信接收机做同步、解调、解码。这里要注意一个关键点同一份发射信号既承载雷达波形又承载通信信息流接收端两个处理链路的输入信号在物理上来自同一个电磁波但在仿真中可以抽象成两条并行信道。因此Matlab仿真框架的搭建需要复用发射端变量而不是各写各的独立收发模型。这个结构一旦理清后面的代码实现就顺畅多了。很多初学者的仿真之所以看起来“画虎不成”问题就出在发射端没有真正共用而是把雷达发射机和通信发射机当作两个独立模块违背了双功能系统共享发射前端的物理前提。3. 波形选型与核心参数仿真可信度的第一道分水岭3.1 三种常见波形及其取舍双功能系统采用什么样的发射波形直接决定了雷达性能和通信性能的天花板。直接序列扩频和线性调频类波形在雷达领域应用最成熟测距测速性能好模糊函数接近理想的图钉型但通信调制效率低数据率提不上去OFDM类波形是通信系统的“老熟人”频谱利用率高、子载波可独立调制但雷达匹配滤波后的时延旁瓣特性相对较差需要额外处理子载波间的相关旁瓣相位编码序列比如随机相位序列、巴克码衍生序列则处于两者之间设计灵活但编码长度与通信负载之间存在明显折中。从工程角度看我推荐初学者优先尝试OFDM体制的DFRC仿真。原因很简单OFDM的收发链路在Matlab通信工具箱里有现成函数可用调制解调流程标准避免把过多精力花在底层波形生成上同时OFDM天然的频谱结构允许你在部分子载波上携带雷达探测信息在部分子载波上携带通信信息概念上容易讲清楚。但要注意OFDM雷达的一个经典缺陷——距离维旁瓣偏高扇形模糊函数的主峰周围有周期性的旁瓣峰这个特性会在目标检测阶段带来虚警风险仿真时可以用窗函数或者子载波功率分配技巧来压制。线性调频波形的优势则是匹配滤波后距离旁瓣低、多普勒容限大尤其适合做远距离搜索。它的通信能力比较弱通常是借助调频斜率的微变或叠加微小相位偏移来嵌入低速率通信比特适合数据率要求不高的场景。如果你做主控项目目标只是“把流程跑通”LFM体制的代码量更小概念上更直白如果关注数据吞吐和通信质量那么OFDM体制更合适。这里不唯一答案先想清楚你的仿真评估目标再选。3.2 一个可复现的参数配置实例按我习惯的做法仿真先从一个具体的参数配置展开而不是直接堆一堆公式。下面这组参数是我在某个模拟项目里用过的实测下来流程跑通难度适中。载频 f_c 3.5 GHz属于常用研究频段对应波长 λ 约 0.0857 米。选这个频段是因为半波长阵元间距约 4.3 厘米阵列尺寸在仿真里很容易体现。阵列构型16 阵元的均匀线阵ULA阵元间距 d λ/2。半波长间距是为了避免空间混叠产生栅瓣如果你阵元数少还想控制主瓣宽度可以尝试增大物理孔径但间距超过半波长就要警惕栅瓣问题这个我在后面避坑部分会专门展开。带宽 B 20 MHz子载波间隔 Δf 15 kHz沿用通信系统常见的标准子载波数 N_c 2048。OFDM符号持续时间约 66.7 微秒加上循环前缀约 5.2 微秒一个符号总长约 71.9 微秒。通信调制方式16QAM每个符号携带 4 bit。按 2048 个子载波全部用于通信来算单符号吞吐量很可观但如果要兼顾雷达功能一般会预留一部分子载波作为导频或探测专用信号所以数据率折算时需要更仔细地计算。雷达目标模拟两个点目标分别位于距离向 800 米和 1200 米处径向速度分别为 50 米/秒和 -20 米/秒雷达截面积RCS分别设为 1 平方米和 0.5 平方米。接收信噪比根据雷达方程算出这个后面我也会给计算链路。这个参数组的合理性在于它既贴近通信系统的真实指标15 kHz 子载波间隔、20 MHz 带宽都是成熟标准里的数值又保留了雷达探测所需的距离分辨能力。距离分辨率由 c/(2B) 决定20 MHz 带宽对应约 7.5 米的分辨率对两目标相距 400 米的场景来说绰绰有余。3.3 功率分配雷达与通信如何共享有限的发射能量发射总功率是固定的雷达波形和通信数据叠加在同一个信号上时各自分到多少功率决定了系统整体性能的平衡点。仿真里可以直接把比例设为可调参数比如总功率 100 瓦雷达分量占 η通信分量占 1-η。η 越大雷达回波信噪比越高、有效探测距离越远但通信用户处解调信噪比下降误码率上升反过来通信吞吐量提高探测距离缩短。这个折中关系在做系统级评估时一定要算清楚不能只在一个 η 值下看结果。比如可以用一张功率分配系数-探测距离-通信速率的二维性能表把不同 η 下的系统性能画成帕累托前沿这往往是评审时最关心的内容。在代码层面实现起来并不复杂无非是在基带调制前给通信数据乘上一个幅度系数、在雷达波形上乘上另一个系数然后把两个信号加起来。问题的复杂度更多在于确定这个折中关系后怎么给系统选工作点这个要看具体应用场景是“感知优先”还是“通信优先”仿真本身不做决策但要提供决策所需的数据。4. Matlab仿真链路搭建从发射端到接收端的完整实现路径4.1 发射端波形生成、信息嵌入与波束成形权重的计算发射端的第一个模块是生成承载探测功能的基础波形。以LFM体制为例我比较习惯的形式是先定义脉冲宽度 T_p 10 微秒调频斜率 K B / T_p 2×10^12 Hz/s基带信号 s(t) exp(jπKt²)。Matlab里用一行代码就能生成采样序列采样率至少取带宽的 2 倍实际为了让接收端匹配滤波器效果更平滑我会取 fs 4B 80 MHz。fs 80e6; % 采样率 80 MHz Tp 10e-6; % 脉冲宽度 10 us B 20e6; % 带宽 20 MHz K B / Tp; % 调频斜率 t 0 : 1/fs : Tp - 1/fs; s_radar exp(1j * pi * K * t.^2); % 基带LFM信号 s_radar s_radar / norm(s_radar); % 归一化能量接下来是嵌入通信信息。低速率通信可以采取最简单的方式在LFM信号的每个脉冲之间对初始相位做一个 BPSK 或 QPSK 的微小调制。这里要留意相位调制幅度必须控制在一定范围内否则会破坏LFM波形原有的匹配滤波特性。如果采用OFDM体制则是直接在频域子载波上放上通信星座点再把整体变换到时域。波束成形权重的计算是发射端的核心。对于均匀线阵阵列流形向量可以表示为M 16; % 阵元数 d 0.0857 / 2; % 阵元间距半波长 fc 3.5e9; lambda physconst(LightSpeed) / fc; theta -90 : 0.1 : 90; % 扫描角度度 % 这里以某个目标方向为主瓣用户方向为约束用MVDR思想求权重 % 下面是一个示例主瓣方向0°零陷方向-30°真正实现时不要自己手写复杂的凸优化函数。Matlab的Phased Array System Toolbox提供了phased.MVDRBeamformer和phased.URA等对象支持直接计算自适应权重对初学者而言比从零推导解析表达式更不容易出错。不过我建议至少在代码里自己实现一次常规相控阵权重即主瓣方向的相位补偿值这样你对“权重到底是什么”会有一个体感层面的理解。4.2 信道与回波模拟目标回波、多径与干扰的建模信道模拟是仿真里最容易做“假”的地方。很多代码会在接收端直接根据雷达方程算一个信噪比再加高斯白噪声这看起来省事但完全绕过了波束成形的作用。正确做法是把发射阵列的辐射场、目标处的波束增益、回波传播损耗、接收阵列的接收增益串起来。雷达目标的回波建模具体来说分三步。第一步根据目标距离 R 和发射信号计算目标处入射波功率密度注意这里要计入发射波束在天线指向方向上的增益 G_T(θ_target)第二步用雷达散射截面 σ 计算目标散射功率第三步回波再经过距离 R 的路径损耗后到达接收阵列接收端按入射角在阵列流形向量上叠加。这样才算把波束成形的物理意义带进仿真。c physconst(LightSpeed); R 800; % 目标距离 800 m tau 2 * R / c; % 回波时延 fd 2 * v / lambda; % 多普勒频移v为径向速度 rx_radar exp(1j*2*pi*fd*t) .* exp(-1j*2*pi*fc*tau) .* s_radar;通信链路则多了一个角色通信接收机往往不在阵列主瓣方向。仿真时要为通信用户分配一个空间方向角比如我们设定的通信用户位于 30° 方向那么在发射波束成形的权重设计里就应该有这个方向的增益约束。如果直接用普通相控阵波束对准雷达主瓣方向通信用户的实际接收信噪比会很低最后的误码率曲线会非常难看——这其实不是系统实现不了而是你的权重设计没有考虑联合优化需求。多径效应在室内或城区通信场景里影响很大但第一版仿真建议先关闭多径只保留直视路径等整体流程跑通后再加入瑞利信道或多径时延避免调试阶段变量太多难以定位问题。这个“先简化、后逼近”的思路在做复杂系统仿真时能节省大量排查时间。4.3 接收机端处理雷达匹配滤波与通信解调的并行实现接收端处理最容易掉进的一个陷阱是把雷达检测和通信解调当作先后串行处理一个处理完再处理另一个。双功能系统在物理上是同时接收的雷达回波和通信信号虽然在不同的传播路径上但接收阵列时间上同时收到它们。因此仿真要建立两条并行的接收处理链路共享同一个接收天线模型分别做雷达目标检测和通信数据恢复。雷达链路的处理顺序下变频到基带、波束形成加权、匹配滤波等于发射LFM信号的共轭翻转、恒虚警检测CFAR可先用固定门限代替、峰值提取出距离与多普勒。匹配滤波在频域实现效率最高H conj(fft(s_radar, Nfft)); Y ifft(fft(rx_radar, Nfft) .* H); [~, loc] findpeaks(abs(Y), MinPeakHeight, 0.3 * max(abs(Y))); distance loc * c / (2 * fs);通信链路则是标准的OFDM处理流程加窗同步后去除循环前缀、做FFT、信道估计导频位置插值、频域均衡、解映射得到比特流、统计误码率。这里的同步和信道估计可以先用理想值代替序列号对齐可以直接用循环前缀的相关峰值做粗同步。第一版仿真用理想同步完全没问题只要在报告里说明“同步性能提升不在本次仿真范围内”即可后面需要深化时再加载波频率偏移模型。Matlab里雷达链路和通信链路分开写但共享同一份发射波束成形权重和同一组信道参数这样两个模块最终能统一用“发射功率、波束指向、目标位置、用户位置”这四个变量控制全局评估不同场景时只需要改一个配置文件。5. 性能评估的三个维度看懂方向图、误码率和模糊函数5.1 方向图与权重优化效果评估方向图是整个仿真里最直观、也最容易“看起来漂亮但实际没意义”的结果。画方向图本身不难把阵列流形向量和权重做内积各个扫描角度的响应画出来就行。难的是怎么评估这个方向图是否同时满足了雷达和通信的设计指标。我一般会设定三个硬性目标主瓣方向指向雷达扫描目标比如 0°时增益高于设定阈值通信用户方向比如 30°增益不能低于雷达主瓣增益的 70%最大副瓣电平相对于主瓣低于 25 dB。这三个目标用表格列出来仿真结果逐项对照打分比直接贴一张图有说服力得多。5.2 雷达探测性能从匹配滤波输出到目标提取匹配滤波输出可以直接画成距离-幅度的二维图目标出现的位置应该对应两个峰。这里我特别提醒的一点是CFAR检测门限设置不能拍脑袋。通信信号嵌入带来的非平稳调制噪声会抬高一部分距离单元的底噪导致固定门限下虚警率升高。建议在仿真里用单元平均恒虚警检测或至少在目标检测前对匹配滤波输出做滑动平均把底噪平滑掉再提峰。检测结果统计时用一个蒙卡循环跑 100 次统计检测概率和虚警率每次循环重新加噪声这比单次结果更接近真实性能。5.3 通信性能误码率与通信容量评估通信性能评估最常用的是误码率曲线一共扫 4 到 5 个信噪比点每个点跑足够的符号数。需要注意双功能系统里配置变量是“功率分配系数 η”而不是单纯的信噪比。当我增强雷达波形分量时通信分量的等效信噪比会同步下降所以一条完整曲线实际上要画成“不同 η 下的误码率”而不是只画一条单一信噪比曲线。这个结果能回答“在保证一定探测距离的前提下通信误码率能压到多低”的核心问题这也是双功能系统设计中最关键的性能权衡。6. 这套仿真里最容易踩的五个坑及规避方法6.1 阵元间距超标导致栅瓣方向图出现“葫芦串”这是初学者最容易忽视的问题。为了把主瓣压窄或者为了模拟更大的阵列孔径而随意加大阵元间距结果副瓣区出现等间隔的栅瓣能量“漏”到多个方向。栅瓣的危害在于雷达目标检测会在多个距离单元同时看到同一个目标的强回波导致目标位置模糊通信用户也可能意外落入栅瓣导致波束增益管理的计算结果失真。规避方法很简单阵元间距严格取不超过半波长如果希望窄波束增加阵元数而不是扩大间距。6.2 采样率不够高频谱混叠让匹配滤波输出失真LFM信号带宽 20 MHz采样率至少 40 MHz 才是奈奎斯特采样下限。但我前面给出的 80 MHz 并不是保守而是因为匹配滤波的峰值旁瓣比和采样率直接相关。采样率如果恰好取 40 MHz峰值附近的采样点太少匹配滤波峰值的幅度估计会有几百赫兹级别的偏差取 4 倍带宽后峰值的距离估计精度明显改善。这个问题的检测特征是匹配滤波后主峰附近出现不规则的振荡旁瓣不是平滑的 sinc 形状说明采样率可能不足。6.3 把信道模型做得“过于干净”结果不可信很多初学仿真的人不加杂波、不加多径、不加干扰全程高斯白噪声结果雷达检测门限和通信误码率曲线漂亮得不成样子。这种线性场景只能证明代码逻辑正确不能证明系统设计有效。至少应该加入一个固定强度的随机杂波源比如地杂波模型简单用高斯分布叠加在部分距离门以及一个方向的窄带干扰信号。加入干扰后波束成形权重在设计时能体现“零陷对准干扰源”的价值仿真结果才有说服力。6.4 通信嵌入方式破坏雷达波形特性导致匹配滤波性能恶化特别是做相位调制嵌入通信数据时初始相位跳变如果过大LFM信号的瞬时频率相位连续性被破坏匹配滤波输出的主瓣会展宽或旁瓣升高。我在仿真里试过直接拿 QPSK 相位直接叠加距离分辨率从 7.5 米恶化到 12 米左右。解决方式是把相位调制幅度限制在 ±30° 以内或者在 OFDM 体制下严格控制子载波的信道编码避免通信数据在频域上对雷达探测子载波造成大的幅度波动。6.5 只做单次仿真不做统计结论不可复现单次仿真里目标被检测到、误码率为零很可能只是某次噪声抽取幸运。雷达检测概率的评估需要至少重复 100 次独立噪声实现才能收敛置信区间通信误码率更是需要大量符号统计才能压到 1e-3 以下的可信区间。在代码结构上建议把“单次蒙特卡洛试验”和“结果统计”两个层次分开每一次试验的函数输入是随机种子输出是检测结果和误码率主循环负责跑统计。这个架构后期加参数扫描时也方便把功率分配系数 η 作为最外层循环变量内层跑蒙卡统计就能画帕累托前沿。7. 最后分享一点个人实操体会我刚开始做这一类仿真时最大的误区是一上来就想把系统做得“完整”雷达要全程、通信要组帧、信道要衰落、同步要算法化结果代码写了一千多行调试时连Bug都定位不到。后来我把整个仿真链路拆成“发射-信道-雷达接收-通信接收”四个独立模块用临时变量传递中间结果每一个模块单独验证通过后再拼接整体调试效率提高了很多。另一个体会是参数配置不该随手填每个关键参数阵元间距、子载波间隔、功率分配系数之间是有耦合关系的改一个往往影响两个指标。动手仿真之前先花半小时把参数之间的依赖关系梳理清楚比写代码本身更节约时间。如果你也准备跑通一个双功能雷达与通信的仿真我建议从LFM加简单相位调制的方案入手先把雷达链路全跑通再叠加上通信链路等概念通了之后再切到OFDM方案去做更细致的数据率和误码率分析。仿真工具只是验证手段真正值钱的是你对“波束成形如何在雷达和通信之间做空间资源仲裁”这个核心问题的理解深度。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑