一套完整的雷达电子对抗信号处理系统,涵盖 波形生成、干扰模拟、干扰识别与抑制、信号处理 四大核心流程。支持 10 种干扰模式(转发型 + 生成型)的仿真与 6 种信号处理算法,所有参数通过外部 JSON 配置,无需重新编译。
┌─────────────────┐ ┌─────────────────┐
│ 模块 01 │ │ 模块 02 │
│ 波形生成 │ │ 干扰生成 │
│ (5 种模式) │ │ (10 种模式) │
│ │ │ │
│ · LFM/NLFM │ │ · 距离假目标(RDJ)│
│ · 跳频/相位编码 │ │ · 速度假目标(VDJ)│
│ · PRI 抖动 │ │ · 间歇采样(ISRJ) │
│ · 混合波形 │ │ · 窄带噪声(NNJ) │
│ · 复合波形 │ │ · RGPOJ/VGPOJ │
└────────┬────────┘ │ · DRFTJ/IPLE │
│ │ · SMSPJ/COMBJ │
│ └────────┬────────┘
│ │
└──────┐ ┌────────────┘
│ │
┌──────▼──▼──────┐ ┌─────────────────┐
│ 模块 04 │ │ 模块 03 │
│ 信号处理 │ │ 干扰检测抑制 │
│ (6 种模式) │ │ (5 种类型) │
│ │ │ │
│ · 匹配滤波 │ │ · ISDJ/ISRJ │
│ · STFT 分析 │ │ · ISCJ/NBJ │
│ · 干扰识别 │ │ · RDJ 检测 │
│ · 时频抑制 │ │ · 目标/干扰分离 │
│ · Tsallis 处理 │ │ · 时频域抑制 │
└─────────────────┘ └─────────────────┘
(独立运行,不依赖其他模块)
- 高精度信号模型 — 采用
frac(x)分数部分提取技术,避免fc·t ≈ 10⁶时的浮点精度丢失 - 热配置 — 修改
config.json即时生效,支持//和#行注释 - 级联处理 — C++ 模块间通过
.dat文件传递数据,模块 02 支持 10 种干扰的级联叠加;GUI 通过 pybind11 在内存中传递 numpy 数组 - Windows 原生 — 针对 Windows x64 编译,内置 FFTW 源码,MSVC/MinGW 工具链,支持 PyInstaller 单文件 exe 打包
- GUI 界面 — 四个独立 PySide6 桌面应用:波形生成 + 干扰生成 + 干扰识别 + 信号处理,pybind11 直调 C++ 引擎,支持 PyInstaller 打包为单文件 exe
- 轻量依赖 — 仅依赖 Eigen 和 FFTW 两个第三方库,JSON 解析和 Bessel 函数为自实现
# 克隆仓库
git clone -b feature/all-guis-windows https://github.com/15725ljh/signal_processing_system.git
cd signal_processing_system
# 运行 GUI (需要 Python 3.13+)
cd 01_GUI_waveform && pip install -r requirements.txt && python app.py
cd 02_GUI_jamming && pip install -r requirements.txt && python app.py
cd 03_GUI_detection && pip install -r requirements.txt && python app.py
cd 04_GUI_signal_processing && pip install -r requirements.txt && python app.pyC++ 源码已从仓库移除,备份为加密 zip 文件。解压后按 docs/BUILD_GUIDE.md 编译运行。
详细构建指南见 docs/BUILD_GUIDE.md
| 组件 | 技术 | 用途 |
|---|---|---|
| 语言 | C++17 | 核心信号处理算法 |
| 线性代数 | Eigen 3.4.0 | 矩阵运算 |
| FFT | FFTW 3.3.10 | 快速傅里叶变换 |
| 配置解析 | 自实现 mini JSON (~215行) | JSON 参数文件解析 |
| Bessel 函数 | 自实现 bessel_i0() Taylor 级数 |
Kaiser 窗函数 |
| 构建系统 | CMake 3.14+ | 跨平台构建 |
| GUI | PySide6 + pybind11 | 四 GUI 可视化界面 + exe 打包 |
| 类型 | 模式 | 缩写 | 原理 |
|---|---|---|---|
| 转发型 | Case 1 | RDJ | 距离假目标 — FFT + 频域时延相位 + IFFT |
| 转发型 | Case 2 | VDJ | 速度假目标 — 多普勒调制 + FFT + 时延相位 |
| 转发型 | Case 3 | ISRJ | 间歇采样转发 — 周期采样窗 + 多普勒切片重组 |
| 生成型 | Case 4 | NNJ | 窄带噪声 — 复高斯白噪声 + 载波调制 + 低通滤波 |
| 生成型 | Case 5 | RGPOJ | 距离波门拖引 — 三阶段策略(捕获→拖引→反转) |
| 生成型 | Case 6 | VGPOJ | 速度波门拖引 — 多普勒频移渐进变化 |
| 生成型 | Case 7 | DRFTJ | 密集复制转发 — 50 个等间隔假目标 |
| 生成型 | Case 8 | IPLESRJ | 脉内前沿切片重复 — 16 次转发等间隔假目标群 |
| 生成型 | Case 9 | SMSPJ | 频谱弥散 — 增强调频率子脉冲匹配滤波失配 |
| 生成型 | Case 10 | COMBJ | 梳状谱 — 7 个离散频率点对称分布 |
signal_processing_system/
├── config.json # 外部参数配置文件(所有模块共享)
├── CMakeLists.txt # C++ 顶层构建配置
├── build_all.bat # 一键构建全部 4 个 GUI exe
├── third_party.zip # 第三方库备份 (Eigen + FFTW + mini JSON, 解压后为 third_party/)
├── cmake/ # CMake 模块 (FindLibraries.cmake)
├── 01_GUI_waveform/ # PySide6 GUI (波形生成, 链接 libwaveform_core.a)
├── 02_GUI_jamming/ # PySide6 GUI (干扰生成, 链接 libjamming_core.a)
├── 03_GUI_detection/ # PySide6 GUI (干扰识别, 链接 libdetection_core.a)
├── 04_GUI_signal_processing/ # PySide6 GUI (信号处理, 链接 libsignal_processing_core.a + libwaveform_core.a)
├── 01_waveform_generation.zip # 模块1 C++ 源码备份 (加密)
├── 02_jamming_generation.zip # 模块2 C++ 源码备份 (加密)
├── 03_jamming_detection_suppression.zip # 模块3 C++ 源码备份 (加密)
├── 04_signal_processing.zip # 模块4 C++ 源码备份 (加密)
├── docs/ # 统一文档目录
├── build/ # C++ 构建输出目录
└── output/ # 运行输出目录
| 文档 | 说明 |
|---|---|
| 构建指南 | 编译运行 + GUI 打包手册 |
| C++ 模块详解 | 4 个 C++ 模块的算法与参数 |
| GUI 使用指南 | 4 个 GUI 的构建与使用 |
| GUI 共享组件 | 共享基础设施与配置参数分区 |
This project is licensed under the MIT License.