通信对抗多类型干扰信号仿真生成系统 README
1. 项目简介
本项目是一套基于 MATLAB 平台开发的通用干扰信号生成与仿真工具,专为通信对抗、电子战(EW)环境模拟及雷达干扰测试设计。系统能够根据预设的系统参数,通过数字信号处理算法生成三种典型的压制性干扰信号:单音干扰、多音干扰以及噪声调频(Noise FM)干扰。
该仿真器不仅实现了信号的数学建模与生成,还集成了完整的时域/频域可视化分析模块,并具备标准化数据导出功能,可为抗干扰算法评估和硬件在环测试提供高精度的基带或射频数据源。
2. 功能特性
系统完全基于提供的 MATLAB 脚本实现,具备以下核心功能:
- 多类型干扰生成:支持单音(瞄准式)、多音(梳状谱)和噪声调频(阻塞式)三种模式。
- 高精度参数控制:支持自定义采样率、仿真时长、干扰功率(dBm)、中心频率、带宽、音调数量及频率间隔。
- 功率控制:内置
dbm2amp 转换算法,基于 50 欧姆阻抗模型实现精确的功率归一化控制。 - 可视化分析:自动生成包含时域波形图(局部放大)和功率谱密度图(PSD)的综合分析图表。
- 数据导出:支持将所有信号及参数保存为
.mat 文件,同时支持将特定宽带信号导出为二进制 .dat 文件(双精度浮点格式)。
3. 系统环境要求
- 软件:MATLAB R2018b 或更高版本。
- 工具箱:Signal Processing Toolbox(用于
butter 滤波器设计、bandpower 计算及频谱分析)。
4. 核心逻辑与实现细节
本节详细描述 main.m 脚本中实际运行的算法逻辑,与代码实现保持严格一致。
4.1 全局系统参数
仿真默认配置为:
- 采样率 (Fs):100 MHz
- 仿真时长:1 ms
- 采样点数:100,000 点
- 目标功率:10 dBm
4.2 干扰信号生成算法
#### A. 单音干扰 (Single-tone Jamming)
* 基于公式 $J(t) = A cos(2pi f_c t + phi)$ 生成。
* 默认中心频率设为 25 MHz,初始相位固定为 $pi/4$。
* 幅度 $A$ 由目标功率(10 dBm)换算得到。
#### B. 多音干扰 (Multi-tone Jamming)
- 功能描述:模拟由多个离散频点组成的梳状谱干扰。
- 实现逻辑:
*
频率配置:起始频率 10 MHz,间隔 5 MHz,共 5 个音调(即 10, 15, 20, 25, 30 MHz)。
*
功率分配:为了保证总功率与目标功率(10 dBm)一致,每个独立音调的幅度被设定为总幅度除以音调数量的平方根($A_{sub} = A_{total} / sqrt{N}$)。
*
相位处理:每个音调引入随机相位(0 到 $2pi$),以降低合成信号的峰均比(PAPR),避免非相干叠加导致的时域峰值过高。
*
合成方式:时域累加合成。
#### C. 噪声调频干扰 (Noise FM)
- 功能描述:采用噪声调频技术生成的恒包络、特定带宽的阻塞式干扰。
- 实现逻辑:
1.
噪声源:生成标准正态分布的高斯白噪声序列。
2.
基带整形:设定干扰带宽 B = 10 MHz。计算基带噪声截止频率 $B_n approx B / 2.5$,利用 6 阶巴特沃斯(Butterworth)低通滤波器对噪声进行滤波。
3.
幅度归一化:将滤波后的有色噪声标准化(std=1),以便精确控制调制指数。
4.
调频灵敏度计算:根据卡森带宽规则的逆运算估算调频灵敏度 $K_f$。代码中取有效带宽系数为 2.35,即 $K_f = B / 2.35$。
5.
相位生成:计算瞬时频偏 $Delta f(t) = K_f cdot n(t)$,通过累积求和(
cumsum)积分得到相位调制信号。
6.
正交调制:将相位代入载波公式 $A cos(2pi f_c t + phi_{mod}(t))$,生成中心频率为 40 MHz 的最终射频干扰信号。
4.3 辅助工具函数分析
* 用于将 dBm 转换为电压幅度(Vpeak)。
* 计算基于 50 欧姆负载:$V_{peak} = sqrt{2 times R times 10^{(P_{dBm}-30)/10}}$。
* 使用 FFT 计算信号频谱。
* 取模平方并归一化计算功率。
* 仅显示正半轴频谱,并将双边谱能量折算至单边谱,最后转换为 dB 刻度进行绘制。
* 仅绘制信号的前 200 或 500 个点,以便清晰观察载波细节,避免波形过密无法分辨。
5. 输出产物
运行脚本后,系统将在当前目录下生成以下文件:
- JammingData.mat:
* 包含所有生成的信号变量:
Sig_Single,
Sig_Multi,
Sig_NoiseFM。
* 包含对应的参数结构体:
Info_* 和系统参数
SysParams。
- NoiseFM_Jamming.dat:
* 仅导出了噪声调频干扰信号。
* 格式为纯二进制流,数据类型为
double(双精度浮点数),便于C++或FPGA仿真环境直接加载读取。
6. 使用方法
- 在 MATLAB 中打开
main.m 文件。 - 直接运行脚本(按 F5)。
- 等待控制台输出 "仿真完成"。
- 查看弹出的 "干扰信号综合分析" 图口,观察时频域特性。
- 在工作目录下查看生成的
.mat 和 .dat 数据文件。