关于 matlab-design-radar-waveform
使用 Phased Array System Toolbox 选择、配置和分析雷达波形的 MATLAB 技能。它依据感知需求推导波形方案,并强调使用工具箱生成和分析信号,而非手动构造。
主要功能
- 01根据需求选择波形对象
- 02依据感知约束推导波形参数
- 03使用工具箱对象和函数生成波形
- 04分析模糊函数、旁瓣和多普勒响应
- 05识别距离与速度需求之间的冲突
适用场景
- 01为雷达感知任务选择波形
- 02根据距离分辨率要求设定参数
- 03比较旁瓣和多普勒特性
- 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.yamlreferences/analysis-functions.mdcommon-mistakes.mdphase-code-reference.mdspectral-notching.mdwaveform-objects.md详细介绍
雷达波形设计
使用 Phased Array System Toolbox 设计和选择雷达波形。根据决策树,按照需求选择正确的波形对象,遵循正确的函数与对象配对方式,并避免常见错误。
适用场景
主要关键词(以下任一关键词都可单独触发此技能): 波形、信号、啁啾、LFM、NLFM、FMCW、PMCW、脉冲压缩、发射信号、M 序列、MLS、PN 码、扩频、相位码、雷达通信一体化、双功能波形
感知场景词(与主要关键词搭配时,可确认属于感知领域): 目标、干扰机、干扰、脉冲、脉冲串、频谱、旁瓣、多普勒、距离分辨率、检测、杂波、匹配滤波器、模糊度、扫频、PRF、PRI
触发逻辑:
- 主要关键词 + 感知场景词 → 直接使用此技能
- 仅有主要关键词 → 询问:是感知还是通信?(通信 → 此技能不适用)
- 感知场景词 + 模糊表述(“每次都会变化的信号”)→ 使用此技能
触发后,明确用途和范围:
-
用途 — 由应用驱动,还是用于探索/学习?
- 探索/学习(学生、论文复现、比较属性):使用给定参数继续,建议使用
radarWaveformGenerator。不要追问应用场景。 - 由应用驱动 → 明确以下维度。
- 探索/学习(学生、论文复现、比较属性):使用给定参数继续,建议使用
-
应用维度(询问尚未明确的内容,适用于任何感知应用): 距离范围 | 目标运动和速度 | 分辨率需求 | 环境(杂波、干扰机、干扰) | 硬件限制(ADC、占空比) | 主要指标(检测、分辨率、精度或无模糊)
-
需求 — 根据上述回答推导波形参数(见下表)
不适用场景
- 完整的雷达系统仿真(发射机 → 信道 → 接收机链路)
- 波束成形或阵列设计(使用相控阵技能)
- 目标检测 / CFAR 处理
- Simulink 波形生成模块
- 通信波形(OFDM、QAM 等)
升级处理 / 边界条件
请勿将波形选择描述为可以单独解决以下问题:
- 距离/速度模糊消解策略(交错 PRF 调度、中 PRF 处理)
- 跟踪器层面的多普勒/距离关联
- 详细的接收机链路设计(噪声系数、动态范围预算)
- 杂波抑制设计(MTI、STAP)
- 天线/阵列方向图问题
- CFAR 或检测器性能问题
相反,应说明这是系统级问题,并指出仍可处理哪些与波形相关的部分。
工作流
- 明确需求 — 收集用户尚未说明的信息(见下表)
- 选择波形对象 — 使用下方的决策树
- 配置波形 — 根据需求设置属性
- 分析 — 使用适当的分析函数(ambgfun、pambgfun、sidelobelevel)
- 建议交互式探索 — 推荐使用
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 | 生成近乎完美的自相关序列;传入长度 N | R2024a |
pnkcode | 生成长度为 N 的多相 P(n,k) 码:pnkcode(N, n, k) — 最适合获得深度 PSL | R2024a |
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