mcpField
M
matlab-design-radar-waveform

matlab-design-radar-waveform

github.com/matlab其他1.2k65 次安装1 天前更新
代码仓库

关于 matlab-design-radar-waveform

使用 Phased Array System Toolbox 选择、配置和分析雷达波形的 MATLAB 技能。它依据感知需求推导波形方案,并强调使用工具箱生成和分析信号,而非手动构造。

主要功能

  1. 01根据需求选择波形对象
  2. 02依据感知约束推导波形参数
  3. 03使用工具箱对象和函数生成波形
  4. 04分析模糊函数、旁瓣和多普勒响应
  5. 05识别距离与速度需求之间的冲突

适用场景

  1. 01为雷达感知任务选择波形
  2. 02根据距离分辨率要求设定参数
  3. 03比较旁瓣和多普勒特性
  4. 04处理不模糊距离与速度目标冲突

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/matlab/matlab-agentic-toolkit --skill matlab-design-radar-waveform

安装后在 Claude Code 中输入/matlab-design-radar-waveform确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

manifest.yaml
references/
analysis-functions.md
common-mistakes.md
phase-code-reference.md
spectral-notching.md
waveform-objects.md

详细介绍

雷达波形设计

使用 Phased Array System Toolbox 设计和选择雷达波形。根据决策树,按照需求选择正确的波形对象,遵循正确的函数与对象配对方式,并避免常见错误。

适用场景

主要关键词(以下任一关键词都可单独触发此技能): 波形、信号、啁啾、LFM、NLFM、FMCW、PMCW、脉冲压缩、发射信号、M 序列、MLS、PN 码、扩频、相位码、雷达通信一体化、双功能波形

感知场景词(与主要关键词搭配时,可确认属于感知领域): 目标、干扰机、干扰、脉冲、脉冲串、频谱、旁瓣、多普勒、距离分辨率、检测、杂波、匹配滤波器、模糊度、扫频、PRF、PRI

触发逻辑:

  • 主要关键词 + 感知场景词 → 直接使用此技能
  • 仅有主要关键词 → 询问:是感知还是通信?(通信 → 此技能不适用)
  • 感知场景词 + 模糊表述(“每次都会变化的信号”)→ 使用此技能

触发后,明确用途和范围:

  1. 用途 — 由应用驱动,还是用于探索/学习?

    • 探索/学习(学生、论文复现、比较属性):使用给定参数继续,建议使用 radarWaveformGenerator。不要追问应用场景。
    • 由应用驱动 → 明确以下维度。
  2. 应用维度(询问尚未明确的内容,适用于任何感知应用): 距离范围 | 目标运动和速度 | 分辨率需求 | 环境(杂波、干扰机、干扰) | 硬件限制(ADC、占空比) | 主要指标(检测、分辨率、精度或无模糊)

  3. 需求 — 根据上述回答推导波形参数(见下表)

不适用场景

  • 完整的雷达系统仿真(发射机 → 信道 → 接收机链路)
  • 波束成形或阵列设计(使用相控阵技能)
  • 目标检测 / CFAR 处理
  • Simulink 波形生成模块
  • 通信波形(OFDM、QAM 等)
升级处理 / 边界条件

请勿将波形选择描述为可以单独解决以下问题:

  • 距离/速度模糊消解策略(交错 PRF 调度、中 PRF 处理)
  • 跟踪器层面的多普勒/距离关联
  • 详细的接收机链路设计(噪声系数、动态范围预算)
  • 杂波抑制设计(MTI、STAP)
  • 天线/阵列方向图问题
  • CFAR 或检测器性能问题

相反,应说明这是系统级问题,并指出仍可处理哪些与波形相关的部分。

工作流

  1. 明确需求 — 收集用户尚未说明的信息(见下表)
  2. 选择波形对象 — 使用下方的决策树
  3. 配置波形 — 根据需求设置属性
  4. 分析 — 使用适当的分析函数(ambgfun、pambgfun、sidelobelevel)
  5. 建议交互式探索 — 推荐使用 radarWaveformGenerator 应用
构造规则(必须遵守)

始终使用工具箱 System 对象和函数生成信号,绝不要手动构造 exp(1j*...) 或编写自定义 LFSR/序列生成器。如果 mlseq、legendreseq、phased.LinearFMWaveform 或其他工具箱函数可以生成所需内容,就应使用它。只有在特定操作不存在工具箱等效方法时,才可手动构造(例如,对现有波形向量应用逐元素相位调制)。对于混合波形(例如 LFM + 通信编码),使用适当的对象生成基波形,应用修改,然后使用 Code='Custom' 将结果封装为 PhaseCodedWaveform。如果没有适用的内置对象(例如,精确的 DFT 频点陷波、非连续频带),则升级为自定义 IQ 合成,但参数推导、封装和分析仍应使用工具箱函数。务必说明哪些部分基于工具箱,哪些部分是自定义的。

分析规则(不可协商)

绝不要使用 xcorr 来可视化雷达波形的自相关或匹配滤波器响应。应改用:

  • 匹配滤波器响应 / 自相关: 使用 ambgfun 和 'Cut','Doppler'(零多普勒切面 = 响应随时延的变化)。
  • PSL 测量: 对转换为 dB 的切面使用 sidelobelevel。
  • 多普勒容限: 使用 ambgfun 和 'Cut','Delay'(零时延 切面 = 响应随多普勒的变化)。
  • 下游信号处理: 需要实际滤波后的信号时(距离处理、比特恢复等),使用 phased.MatchedFilter。
Agent 推理策略
  • 遵循上述澄清流程——上下文不足时,不要直接编写代码。
  • 用户指定波形系列 → 将其视为约束;据此配置并分析。只有在该系列无法满足要求时才可改用其他系列。
  • 用户只给出性能约束 → 选择满足要求的最简单系列,并解释原因。
  • 给出性能要求后 → 先推导参数,再选择对象。
  • 给出波形系列(例如“NLFM”)→ 询问目标(旁瓣、频谱整形、多普勒容限、硬件)。
  • 探索 / 学习 → 直接使用给定参数提供帮助。仍须使用工具箱对象——通过 System objects 生成基础波形,使用 mlseq/legendreseq/apaseq 生成序列,并使用 Custom 代码将自定义结果封装到 PhaseCodedWaveform 中。不要手动构造信号。建议使用 radarWaveformGenerator 进行交互式探索。
  • 仅提供应用场景(没有数值要求)→ 推荐波形系列 / 对象并解释原因。如果该领域有公认的默认值(例如,77 GHz 汽车雷达),请说明假设并继续。如果没有,则询问应用的具体参数。不要在未说明的情况下擅自设定参数。
  • 要求互相冲突时 → 在提出波形方案前指出冲突。
  • 用户询问“最佳波形” → 说明这取决于分辨率、模糊函数、旁瓣、多普勒、硬件和处理方式。
  • 用户说明 MATLAB 版本 → 检查函数是否可用;注明 radarWaveformGenerator 需要 R2026a。
  • 不要反复调试。 如果代码报错或结果不符合预期,最多针对性修复并重试一次。如果第二次仍失败,请停止并说明问题、已尝试的操作,并询问用户是否要调整要求、放宽约束或提供更多信息。最多尝试 2 次。
  • 编写完整脚本,不要写增量代码片段。 不要通过多次小型 evaluate_matlab_code 调用来逐步编写代码。应先设计完整脚本,将其保存为 .m 文件,再通过 run_matlab_file 运行。保存文件:如果有 Write 工具则使用;否则使用 evaluate_matlab_code 和 MATLAB 的 writelines 或 fopen/fprintf/fclose。绝不要用 Bash heredoc 编写 MATLAB 代码——单引号和格式字符串(%d、\n)会破坏 shell 引号。如果不确定某个 API 或参数,并因此想在 MATLAB 中“试一试”,这就意味着应停止并向用户澄清,而不是进行交互式探索。evaluate_matlab_code 最多仅用于:(1) 一次设置 / 清理调用;(2) 保存并运行脚本;(3) 必要时重试一次。
  • PSL 权衡检查点。 当 PSL 目标介于 -30 至 -45 dB 之间时:计算 TBP。如果 TBP < 500,则在生成代码前说明以下权衡:(a) NLFM——没有 SNR 损失,但在此 TBP 下 PSL 受驻相近似限制;(b) LFM + 时域加窗匹配滤波器——无论 TBP 大小都能保证达到目标 PSL,但会损失约 3-4 dB 的 SNR;(c) 增大 TBP 以支持 NLFM。让用户选择后再继续。
需要明确的要求

确定应用尺寸后,检查以下具体信息是否缺失:

如果用户未指定……询问……影响……
调制类型脉冲还是 CW;FM 还是相位编码对象选择(决策树)
距离分辨率所需分辨率(m)通过 rangeres2bw 确定带宽
旁瓣要求可接受的 PSL(dB)NLFM、加窗匹配滤波器与相位编码的选择
同时满足距离和速度要求最大无模糊距离和速度PRF 冲突检查(参见参数推导)
多普勒容限驻留期间目标的最大速度LFM(容限高)与相位编码(敏感)的权衡
硬件限制ADC 带宽、瞬时带宽限制使用 Stretch 处理或步进 FM,而非宽带 LFM
需求到推荐方案的启发式规则
  • 优先考虑多普勒容限 → LFM 类方案
  • 要求旁瓣低且不损失 SNR → NLFM(需要足够的 TBP)
  • 频谱陷波 → 结构化波形使用仅调幅带阻;仅对 PRO-FM 使用 shapespectrum。参见 references/spectral-notching.md
  • 为旁瓣定制频率轮廓 → nlfmspec2freq + CustomFMWaveform
  • 硬件带宽受限 → Stretch 处理或步进 FM
  • 外部 IQ → 自定义 IQ 模式(使用 Code='Custom' 的 PhaseCodedWaveform)
  • CW/周期分析 → pambgfun(而非 ambgfun)

有关系列总结表(优势/权衡),请参见 references/waveform-objects.md。

波形选择决策树

Is the waveform continuous (CW)?
├── Yes: Does the user need linear FM sweep?
│   ├── Yes: Multiple targets where ghost targets are a concern?
│   │   ├── Yes → phased.MFSKWaveform (resolves range+speed without ghosts)
│   │   └── No → phased.FMCWWaveform (triangle sweep for range+speed)
│   └── No: Does the user need multiple frequency steps?
│       ├── Yes → phased.MFSKWaveform
│       └── No: No dedicated CW object for desired modulation?
│           └── Use pulsed object with PRF = 1/PulseWidth (see CW Pattern below)
│               ├── Nonlinear FM → phased.NonlinearFMWaveform or phased.CustomFMWaveform
│               └── Phase-coded → phased.PhaseCodedWaveform
│
└── No (pulsed): What modulation?
    ├── None (simple pulse) → phased.RectangularWaveform
    ├── Linear FM → phased.LinearFMWaveform
    ├── Nonlinear FM (built-in type) → phased.NonlinearFMWaveform
    │   (4 types: Polynomial, Hyperbolic, Hybrid Linear-Tangent, Stepped Price)
    ├── Nonlinear FM (custom shape) → phased.CustomFMWaveform
    │   (use with nlfmspec2freq for stationary-phase design)
    ├── Phase-coded → phased.PhaseCodedWaveform
    ├── Stepped frequency → phased.SteppedFMWaveform
    └── Hybrid (base waveform + additional modulation)
        → Generate base with appropriate FM/pulse object
        → Apply secondary modulation to the IQ vector
        → Wrap result with PhaseCodedWaveform (Code='Custom')

关键函数

函数用途起始版本
rangeres2bw将距离分辨率(m)转换为带宽(Hz)—
speed2dop将速度转换为多普勒频移(仅适用于单程;用于雷达时乘以 2)—
freq2wavelen将载波频率转换为波长—
nlfmspec2freq根据所需频谱形状计算瞬时频率R2023a
shapespectrum生成具有所需频谱形状的波形(陷波、掩模)R2024b
sidelobelevel测量峰值和积分旁瓣电平(输入必须以 dB 为单位)R2024b
legendreseq生成 Legendre 序列(完美周期自相关)R2024a
mlseq生成最大长度序列R2024a
apaseq生成近乎完美的自相关序列;传入长度 NR2024a
pnkcode生成长度为 N 的多相 P(n,k) 码:pnkcode(N, n, k) — 最适合获得深度 PSLR2024a
getMatchedFilter返回匹配滤波器系数;对于 SteppedFMWaveform,返回一个矩阵(每步一列)——使用对应的列滤波每个脉冲—
bandwidth返回波形带宽(Hz);除 SteppedFMWaveform 外,所有脉冲对象均支持此函数—
ambgfun计算模糊函数(任意波形,包括脉冲串)—
pambgfun计算周期模糊函数(CW/周期波形)—

模式

根据需求推导参数

根据系统需求推导所有波形参数,切勿硬编码。

fc = 10e9;                              % carrier frequency
rangeRes = 20;                          % required range resolution (m)
maxRange = 80e3;                        % max unambiguous range (m)
maxVel = 300;                           % max target velocity (m/s)

lambda = freq2wavelen(fc);
bw = rangeres2bw(rangeRes);             % bandwidth from range resolution
c = physconst('LightSpeed');
prfMax = c / (2 * maxRange);            % max PRF from range ambiguity
fdMax = 2 * speed2dop(maxVel, lambda);  % TWO-WAY Doppler (speed2dop is one-way)
tbp = 50;                               % time-bandwidth product
pw = tbp / bw;                          % pulse width from TBP

PRF 冲突: 如果 fdMax > prfMax,速度要求需要的 PRF 高于距离要求允许的 PRF——没有单一 PRF 能同时满足两者。切勿继续设计单 PRF 方案。 应指出冲突,解释其中的权衡(距离与速度),并建议采用交错 PRF 或具备模糊度解算的中 PRF。请先询问用户偏好哪种策略,再生成任何波形代码。波形对象接受 PRF 向量以支持交错工作,但模糊度解算策略属于系统级问题——参见“升级处理 / 边界条件”。

生成代码前,请验证:

  • PulseWidth <= 1/PRF(脉冲宽度不超过 PRI)
  • SampleRate / PRF 为整数(每个 PRI 的采样数为整数)
  • 对于相位编码:SampleRate * ChipWidth 为整数
  • 采样率:fs = ceil(8*bw / prf) * prf 可确保每个 PRI 的采样数为整数,并实现过采样

主瓣展宽补偿: 使用加权(加窗匹配滤波器或 NLFM)时: bwComp = rangeres2bw(rangeRes, 'RangeBroadening', broadeningFactor)(Taylor 窗约为 1.3×)。

使用驻相法设计 NLFM

使用 nlfmspec2freq 根据期望的频谱形状计算频率轮廓,然后将其传入 phased.CustomFMWaveform。切勿与 phased.NonlinearFMWaveform 搭配使用(它仅支持固定的内置类型)。

% Design NLFM waveform with low sidelobes
bw = 5e6;
nSamples = 500;
desiredSpectrum = taylorwin(nSamples, 4, -40);
freq = nlfmspec2freq(bw, desiredSpectrum);

wav = phased.CustomFMWaveform( ...
    'PulseWidth', 10e-6, ...
    'SampleRate', 10e6, ...
    'FrequencyModulation', freq);

TBP-PSL 权衡: 驻相近似会引入 Fresnel 波纹,从而限制可实现的 PSL。设计频谱(例如 Taylor 窗)设定了上限,但实际 PSL 总是劣于设计 SLL——TBP 越大,两者差距越小。在低 TBP(< 100)下,预期 PSL 会显著高于设计目标;在高 TBP(200+)下,PSL 会接近设计 SLL。

如果达到的 PSL 未达到目标,切勿反复调整窗参数或修改设计——在该 TBP 下,这种差距是驻相法的根本限制。应改为说明以下权衡选项:

  • 增大脉冲宽度或带宽以提高 TBP
  • 切换为加窗匹配滤波器(在任何 TBP 下都能达到目标 PSL,但会损失 SNR,且目标 SLL 越高,损失越大)
  • 如果达到的 PSL 满足系统需求,则接受该结果
使用脉冲对象生成 CW(100% 占空比)

如果没有适用于所需调制类型的专用 CW 对象,可使用脉冲波形对象,并设置 PRF = 1/PulseWidth,使脉冲填满整个 PRI。

切勿使用 DutyCycle = 1——这会导致所有脉冲波形对象报错。应将 PRF 设为脉冲宽度的倒数。

% Phase-coded CW using Legendre sequence
seq = legendreseq(127);
chipWidth = 1e-6;
prf = 1/(numel(seq) * chipWidth);  % 100% duty cycle
wav = phased.PhaseCodedWaveform( ...
    'Code', 'Custom', ...
    'CustomCode', seq, ...   % Do NOT set NumChips — inferred from vector length
    'ChipWidth', chipWidth, ...
    'PRF', prf, ...
    'SampleRate', 10e6);

重要: 当 Code='Custom' 时,切勿设置 NumChips。码片数量会根据 CustomCode 向量长度推断。显式设置 NumChips 会产生警告,并可能导致意外行为。

PMCW(相位调制连续波): PMCW = 占空比为 100% 的相位编码 CW。配置为 PRF = 1/(numel(code) * ChipWidth)。如果用户提到“PMCW”,应将其视为 CW——在 PMCW 语境中,PRI 指码重复间隔,而非带有空闲时间的脉冲发射。

将自定义 IQ 用作波形对象(外部数据或构造的混合波形)

使用 phased.PhaseCodedWaveform 并设置 Code='Custom',将任意复数 IQ 向量封装到工具箱生态系统中——无论该向量是从硬件采集、从文件加载,还是通过组合或修改其他波形构造而成(例如,嵌入通信相位调制的 LFM)。尽管名称如此,CustomCode 接受任意复数向量,不仅限于相位值。使用自定义编码时切勿设置 NumChips——其值会根据向量长度推断。

% Example: LFM + communication phase encoding as a toolbox object
wfLFM = phased.LinearFMWaveform('SampleRate', fs, 'PulseWidth', pw, ...
    'SweepBandwidth', bw, 'PRF', prf);
xLfm = wfLFM();
xHybrid = xLfm(1:nPulse) .* exp(1j * commPhaseVector);

wfHybrid = phased.PhaseCodedWaveform( ...
    'Code', 'Custom', ...
    'CustomCode', xHybrid, ...
    'ChipWidth', 1/fs, ...
    'SampleRate', fs, ...
    'PRF', prf);

% Now usable with toolbox processing
mfCoeffs = getMatchedFilter(wfHybrid);

何时不封装: 如果只需对 IQ 进行模糊函数分析,可直接传入 ambgfun(iq, fs, prf)——无需对象。只有需要与工具箱集成(匹配滤波、距离处理等)时才使用封装对象。

旁瓣抑制

根据具体情况,有三种方法:

1. 时域加窗匹配滤波器(可靠,适用于任意波形):

直接对匹配滤波器系数应用窗函数。无论 TBP 如何,都能可靠地达到目标 PSL,但会带来失配损失(目标为 -35 dB 时约为 3 dB,目标为 -40 dB 时约为 4 dB)。为准确测量 PSL,请使用 SampleRate >= 8 * bandwidth。

wav = phased.LinearFMWaveform('PulseWidth', 10e-6, 'SweepBandwidth', 5e6, ...
    'SampleRate', 40e6, 'PRF', 1e4);
mfCoeffs = getMatchedFilter(wav);
N = numel(mfCoeffs);
tWin = taylorwin(N, 4, -40);  % target -40 dB PSL
mf = phased.MatchedFilter('Coefficients', mfCoeffs .* tWin);

关于 SpectrumWindow 属性的说明: phased.MatchedFilter 的 SpectrumWindow 属性会在频域应用加权。测试表明,它实际达到的衰减约为指定 dB 值的 50%(例如,Taylor-40 规格的实际 PSL 约为 -20 dB)。需要精确控制 PSL 时,请使用时域系数加窗。

2. NLFM(固有低旁瓣,无 SNR 损失):

使用上文的 NLFM 设计模式,通过 nlfmspec2freq + CustomFMWaveform 实现。与加窗匹配滤波器不同,此方法不会造成 SNR 损失。主瓣会展宽(展宽程度取决于频谱渐变形状)。要接近目标 PSL,需要足够大的 TBP。

3. 自相关性能良好的相位编码:

使用 pnkcode,在中等长度下可实现较深的 PSL(< -30 dB)。legendreseq 只能达到约 -17 dB 的 PSL。选择方法请参见 references/phase-code-reference.md。

模糊函数分析

模糊函数形状决定波形选择:

形状特征使用场景
脊形(LFM)多普勒容限高——频移会造成距离偏移,而非 SNR 损失需要适应未知多普勒;在其他环节解析速度
类图钉形(某些相位编码、优化编码)距离与多普勒可干净解耦需要使用同一波形获得无模糊距离和多普勒

不要认为某类波形就一定具有图钉形模糊函数——相位编码仍可能对多普勒敏感;NLFM 能改善距离旁瓣,但不一定能解耦时延与多普勒。请务必使用 ambgfun 验证二维切面。

选择合适的函数:单脉冲和脉冲串使用 ambgfun;CW/周期波形使用 pambgfun(利用周期性获得更精细的多普勒分辨率)。

**关键:**将完整的 PRI 输出(包括末尾的零)传给 ambgfun,而不只是脉冲部分——仅传入脉冲部分会报错:

sig = wf();          % full PRI — pass this to ambgfun

切面方向(命名容易引起误解):'Cut' 参数指定的是保持不变的变量,而非返回的坐标轴:

Cut 参数保持不变返回值用途
'Cut','Doppler'Doppler = CutValue (Hz)[afmag, delay]距离旁瓣(匹配滤波器响应)
'Cut','Delay'Delay = CutValue (s)[afmag, doppler]多普勒容限(速度敏感度)

切面只返回 2 个输出——使用切面时不要请求 3 个输出。

详细用法示例和绘图指南请参见 references/analysis-functions.md。

步进调频处理

处理步进调频数据需要跨频率步进进行相干积分,而不是使用单个匹配滤波器。对每个步进分别应用匹配滤波器,然后跨步进合并回波(沿频率维度执行 IFFT),以合成完整带宽并获得精细距离分辨率。有效带宽为 NumSteps × FrequencyStep。完整代码请参见 references/waveform-objects.md。

拉伸处理(宽带 LFM)

已知目标的大致距离时,可使用拉伸处理代替匹配滤波,以避免使用宽带 ADC。此方法仅适用于 LinearFMWaveform。

wav = phased.LinearFMWaveform('PulseWidth', 10e-6, 'SweepBandwidth', 100e6);
strproc = getStretchProcessor(wav, 5000, 200);  % refRange, rngSpan
slope = bw / pw;  % sweep slope for range conversion
rng = stretchfreq2rng(beatFreq, slope, refRange);
多项式 NLFM 系数约定

对于 phased.NonlinearFMWaveform 且 Type='Polynomial' 的情况,多项式定义的是瞬时频率,而非相位。LFM = 线性频率 → 系数为 [0, 1, 0]。请勿使用 [1, 0, 0]——这会得到二次频率(而非 LFM)。系数示例请参见 references/waveform-objects.md。

接收机架构

仅描述波形的 PSL 声明并不完整——务必说明接收机假设:

接收机PSL 行为SNR 代价
纯匹配滤波器PSL 由波形决定0 dB(最优)
时域加窗匹配滤波器可可靠达到目标 PSL~3-4 dB 失配损耗
发射端陷波后的全频带匹配滤波器窄陷波:由窗控制;宽陷波:底限由间隙决定窄陷波时可忽略
NLFM(自匹配)PSL 受 TBP 限制,无接收损耗0 dB
验证输出

每个波形设计脚本都应报告:

  • 推导出的带宽和距离分辨率
  • PRF、最大无模糊距离、最大双程多普勒
  • PSL(通过 sidelobelevel 计算)以及是否满足要求
  • 接收加权产生的任何 SNR/失配损耗
  • 发射频谱图(如适用,包含掩模)
  • 带有目标 PSL 参考线的零多普勒切面

常见问题排查模式

  • 自定义代码警告 → 不要设置 NumChips(根据向量推断)
  • PSL 不佳 → 检查 SampleRate >= 8*bandwidth,以及传给 sidelobelevel 的输入是否为 dB
  • PRF/采样率错误 → 确保 SampleRate/PRF 为整数
  • ambgfun 尺寸错误 → 传入 wf() 返回的完整 PRI,而不只是脉冲部分
  • 多普勒错误 → 双程雷达多普勒使用 2*speed2dop
  • 相位编码构造错误 → 确保 SampleRate*ChipWidth 为整数

完整列表请参见 references/common-mistakes.md。

多步推理示例

  • “分辨率 > ADC 带宽” → 距离已知时采用脉冲压缩处理,或采用步进 FM(距离未知时)
  • “CW NLFM” → CustomFMWaveform + PRF=1/PulseWidth + nlfmspec2freq → pambgfun
  • “深 PSL + 多普勒容差” → LFM + 时域加窗匹配滤波器(SNR 代价约为 3-4 dB)

约定

  • 始终使用工具箱的 System 对象和函数——不要手动使用 exp(1j*...) 或自定义序列生成器(参见构造规则)
  • 始终推荐使用 radarWaveformGenerator 进行交互式波形探索(需要 R2026a)
  • 对于相位编码波形:推荐代码前,先明确二进制与多相的约束(参见 references/phase-code-reference.md)
  • 指定旁瓣目标时,在零多普勒切面上添加 yline(targetPSL, 'r--'),以直观验证是否达标

参考资料

  • references/waveform-objects.md — 全部 8 种波形对象及其属性和约束
  • references/phase-code-reference.md — 代码类型、二进制与多相、NumChips 约束
  • references/analysis-functions.md — ambgfun、pambgfun、sidelobelevel 的用法详情
  • references/common-mistakes.md — 常见错误完整列表及修正方法
  • references/spectral-notching.md — 用于避免干扰的频谱陷波、shapespectrum API

版权所有 2026 The MathWorks, Inc.

评论

支持 Markdown